Skip to main content

Admin (Tenant Management)

Get All Tenants

Create Tenant

Retrieve a Tenant

Soft delete a Tenant

Update a Tenant

This endpoint updates the Tenant data.

Default Tenant

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.

Authentication

Log In

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.

Refresh Token

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.

Provide Multi-Factor Authentication

Governs the multi-factor authentication process for SDP user login, including the ability to remember the device so MFA is not always required.

Forgot Password

Sends an email with a token to an SDP user who has gone through the Forgot Password process.

Reset Rassword

Allows an SDP user who has gone through the Forgot Password process to set their new password with a token sent via email.

API Keys

List API Keys

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.

Create API Key

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.

Get API Key Details

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.

Update API Key

Updates an existing API key's permissions and IP restrictions. The API key name and expiration date cannot be modified after creation.

Delete API Key

Permanently deletes an API key. This action cannot be undone. Once deleted, the API key will no longer be able to authenticate API requests.

Balances

Get Organization (Circle) Balances

ATTENTION, this endpoint is only enabled when the tenant distribution account type is `CIRCLE`.

Bridge Integration

Get Bridge Integration Status

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.

Update Bridge Integration Status

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

Disbursements

List All Disbursements

Fetches all disbursements the organization has created. This endpoint supports pagination. The response includes basic aggregations on payments within the disbursement.

Create Disbursement

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 `.

Retrieve a Disbursement

Fetches information on a specific disbursement by `id `.

Deletes a Draft Disbursement

Deletes a Disbursement in Draft or Ready Status by `id`.

List All Disbursement Receivers

Fetches a list of receivers within a specific disbursement using the disbursement `id `. This endpoint supports pagination and sorting.

Download Disbursement Instructions

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.

Upload Disbursement Instructions

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.

Update a Disbursement Status

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.

List Registration Contact Types

Returns the supported registration contact types for disbursement instructions.

Distribution Wallets

List Distribution Accounts

Lists the distribution accounts the caller has access to. Owners see every account in the tenant. Archived accounts are included so historical records stay resolvable.

Create Distribution Account

Creates and provisions a new distribution account. The account is generated, funded, and given its own signing key, isolated from the tenant's other accounts. Owner only. Available only to tenants using the `DISTRIBUTION_ACCOUNT.STELLAR.DB_VAULT` account type, up to a maximum of 20 accounts.

Get Total Balance

Returns the combined live balances of every distribution account the caller has access to, summed per asset. This is the Total Balance shown on the dashboard.

Get Distribution Account

Retrieves a single distribution account. Owner only.

Get Account Balance

Returns one distribution account's live on-chain balances. An account the caller has no access to is indistinguishable from one that does not exist; both return 404.

Get Account Capabilities

Reports what the caller may do on one distribution account, combining their tenant-wide role with the role they hold on that account. Owners can also ask what a third party could do, by passing `user_id`. Add `role` alongside it to ask hypothetically what that user could do if granted that role. `role` cannot be sent on its own and returns 400 without `user_id`. This backs the dashboard's access-granting picker, which warns when a grant would be inert because the user's tenant-wide role already excludes the action.

List Account Access

Lists the users who have access to a distribution account, and the role each holds. Owner only.

Grant Account Access

Grants a user a role on a distribution account. Owner only. The Owner role cannot be granted here, since it is always tenant-wide. An archived account takes no new grants.

Revoke Account Access

Revokes a user's access to a distribution account. Owner only. The grant history is preserved in the account's audit trail.

Get Account Access History

Returns the grants and revokes recorded against a distribution account, newest first, from an append-only audit table. Owner only. Archived accounts remain queryable. Capped at the 100 most recent entries, with no pagination, so older entries are not returned.

Archive Distribution Account

Archives a distribution account. Owner only. Archived accounts accept no new disbursements but keep serving reads, so past records stay resolvable. Two accounts cannot be archived and return 400: the tenant's default, which requires promoting another account first, and the last remaining active account.

Promote Account To Default

Makes this the tenant's default distribution account. Owner only. The previous default becomes an ordinary active account. Only an active account can be promoted; archived or still-provisioning accounts return 400.

Organization

Get Organization Info

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.

Update Organization Profile

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.

Retrieve Organization Logo

Retrieves the logo of the organization for display in the UI navbar.

Circle Account Setup

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.

Get All Assets

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.

Create Asset

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.

Delete Asset

This endpoint is used to soft delete an asset.

Payments

List All Payments

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.

Create Direct Payment

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.

Retrieve a Payment

Fetches detailed information on a specific payment by `id `.

Retry Payments

Retries failed payments by ID.

Update Payment Status

Cancels a payment by setting its status to `CANCELED`.

Profile

Get Profile

Fetches the individual information of the logged in user to populate the Profile page.

Update User Profile

Updates the profile details of the logged in user. Note: all fields are optional but at least one should be sent in the request.

Reset Password

Updates the password for the logged in user.

Receivers

List Verification Types

Returns the supported receiver verification types.

List All Receivers

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.

Create Receiver

Creates a new Receiver. Allows clients to create a single receiver record, which can later be referenced in payments or disbursements.

Retrieve a Receiver

Fetches detailed information on a specific receiver by `id `, including all associated wallets.

Update a Receiver

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.

Update Receiver Wallet

Updates a receiver wallet's Stellar address and memo for user-managed wallets.

Update Receiver Wallet Status

Updates a receiver wallet's status. Only `READY` is supported.

Registration

Get Receiver Registration Info

Returns the registration context for the receiver, including organization details and reCAPTCHA configuration.

Send One-Time Passcode

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.

Verify Receiver Registration

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.

Start Wallet Registration

Serves the SEP-24 interactive registration UI.

Retrieve Stellar Info File

Allows the wallet to fetch the SEP-10 server url, SEP-10 signing public key and SEP-24 server url.

Request Challenge Transaction

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.

Provide Signed Challenge Transaction

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.

SEP-24 Info

Returns supported assets and feature flags for SEP-24 registration deposits.

Request Registration URL

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).

Statistics

Retrieve All Statistics

Fetches all metrics on all disbursements the organization has created. The response includes basic aggregations on payments, receivers, receiver wallets, and assets.

Retrieve Disbursement Statistics

Fetches metrics on a specific disbursement by `id `.

Users

Get All Users

Fetches all SDP users within the organization, whether they are active yet or not.

Create User

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.

Update User Activation Status

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.

Get All Roles

Fetches available SDP roles, such as owner, financial controller, business user, and developer.

Update User Role

Updates an SDP user’s role by `user_ID `.

Exports

Export Disbursements

Exports a CSV file of disbursements.

Export Payments

Exports a CSV file of payments.

Export Receivers

Exports a CSV file of receivers.

Wallets

Get All Wallets

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.

Create Wallet

Creates a new wallet provider that can be used for disbursements. The wallet must be configured with supported assets and proper authentication domains.

Update Wallet

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.

Delete Wallet

Soft deletes a wallet provider.