API Reference
API Reference
View all Stellar Disbursement Platform API information.
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.