- Maintain full branding and user experience control
- Collect user information through their own UI
- Minimize direct payee interactions with Dots
- Customize the payout flow to match their product
Requirements
Before creating a payout using the Dots API, you must have:- A Dots developer dashboard account.
- An App that has been approved.
1. Create a User
The first step is to create a user. You must first capture user information through your system, including first name, last name, email, country code, and phone number. After capturing the user information, you can create a user using the Create a User endpoint. The required parameters are:first_namelast_nameemailcountry_codephone_number
id. See the Metadata page for details. You can also update the user later using the Update a User endpoint.
Request and response examples:
id.
2. Submit Compliance Information
Depending on the user’s location, you may need to capture and submit their compliance information:- For users based in the United States, you must provide W-9 information.
- For international users, you must provide W-8BEN information.
user_id, which is the same id received in step 1.
While this step is not strictly required in all cases, we strongly recommend providing compliance information upfront to reduce your integration complexity and facilitate a frictionless, white-labeled payout experience. If this information is not provided upfront, it will need to be collected later if a user triggers a condition that requires collection (e.g., if a U.S.-based user exceeds the annual 1099 threshold for payouts).
3. Verify the User
Next, you need to verify the user. First, send a verification code to the user’s phone using the Send a Verification Token endpoint. The user will receive a verification code at their registered phone number. The Send a Verification Token endpoint will return a 202 HTTP response for successful requests. After sending the verification code, you must provide a UI for the user to enter the verification code. Capture the code the user enters and use it to verify their account using the Verify a User endpoint. Successful requests will return a 200 HTTP response.4. Add a Default Payout Method
To enable users to withdraw their transferred funds, they should set a default payout method. The API doesn’t provide a way to determine which payout methods are available for a user to add based on their location. Therefore, before creating the first payout, you should use a Flow to enable the user to set a default payout method. Then you can use the API to create a payout using the default payout method chosen by the user. To add a default payout method to the user’s account, use the Create a Flow endpoint to create a Flow with themanage-payouts step. You must provide the user_id you received in Step 1. Request and response examples:
link to embed the Flow into an iframe within your application or redirect the user.
To start the Flow, Dots will send a verification code to the user’s phone to confirm their identity. Once verified, all available payout methods will be displayed. The user can then select their preferred payout method and provide the necessary information. At the end of the process, there is an option to set this as the default payment method, which is selected by default. If the user has a default payout method in their account, funds can be transferred automatically using this method.
5. Create a Payout
You can create the payout using one of two methods:- Two Steps: Create a transfer from the app wallet to a user wallet, and then create a payout from the user wallet using the default payment method.
- Single Step: Create a payout with
fund: trueto transfer the funds from the app wallet to the user wallet and automatically create a payout from the user wallet using the default payment method.
Two Steps
For a two-step process, first use the Create a Transfer endpoint to transfer funds from your app wallet to the user’s wallet. You need to provide theamount and the user_id you received in Step 1. Request and response examples:
amount, user_id, and platform. For the amount, you can specify a different value than the one used when creating the transfer. However, if the user doesn’t have enough funds, the transaction will fail. For the platform, if the user has a default payout method, you can set platform: default. If the user hasn’t defined a default payout method, you must collect their preferences and payout information and include the information in the request to the Create a Payout endpoint. Request and response examples:
Single Step
To create the payout in a single step, use the Create a Payout endpoint. Provide the following parameters:amount: The payout amount the user will receive.user_id: The user ID you received in Step 1.platform: If the user has a default payout method, you can setplatform: default. If the user hasn’t defined a default payout method, you must collect their preferences and payout information.fund: Set totrueto enable Dots to create a transfer for the amount to the user before creating the payout. The funds are returned if the payout does not succeed.

