curl --request POST \
--url https://api.dots.dev/api/v2/payments \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"platform": "ach",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ach_info": {
"account_number": "<string>",
"routing_number": "<string>"
},
"account_id": "<string>",
"metadata": "<unknown>"
}
'import requests
url = "https://api.dots.dev/api/v2/payments"
payload = {
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"platform": "ach",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ach_info": {
"account_number": "<string>",
"routing_number": "<string>"
},
"account_id": "<string>",
"metadata": "<unknown>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
user_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
amount: 123,
platform: 'ach',
customer_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
ach_info: {account_number: '<string>', routing_number: '<string>'},
account_id: '<string>',
metadata: '<unknown>'
})
};
fetch('https://api.dots.dev/api/v2/payments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dots.dev/api/v2/payments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'user_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'amount' => 123,
'platform' => 'ach',
'customer_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'ach_info' => [
'account_number' => '<string>',
'routing_number' => '<string>'
],
'account_id' => '<string>',
'metadata' => '<unknown>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dots.dev/api/v2/payments"
payload := strings.NewReader("{\n \"user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"platform\": \"ach\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ach_info\": {\n \"account_number\": \"<string>\",\n \"routing_number\": \"<string>\"\n },\n \"account_id\": \"<string>\",\n \"metadata\": \"<unknown>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dots.dev/api/v2/payments")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"platform\": \"ach\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ach_info\": {\n \"account_number\": \"<string>\",\n \"routing_number\": \"<string>\"\n },\n \"account_id\": \"<string>\",\n \"metadata\": \"<unknown>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dots.dev/api/v2/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"platform\": \"ach\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ach_info\": {\n \"account_number\": \"<string>\",\n \"routing_number\": \"<string>\"\n },\n \"account_id\": \"<string>\",\n \"metadata\": \"<unknown>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created": "2023-11-07T05:31:56Z",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"external_data": {
"account_id": "<string>",
"external_id": "<string>"
},
"transactions": [
{
"id": 123,
"amount": 123,
"created": "2023-11-07T05:31:56Z",
"source_name": "<string>",
"destination_name": "<string>",
"metadata": "<string>",
"transfer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"transfer": "<unknown>"
}
],
"payout_link_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"metadata": "<string>"
}Create a Payment
Creates a transaction from a user or a payment customer to the app. User the /users/{user_id}/payout-methods route to get a user’s stored payment methods.
curl --request POST \
--url https://api.dots.dev/api/v2/payments \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"platform": "ach",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ach_info": {
"account_number": "<string>",
"routing_number": "<string>"
},
"account_id": "<string>",
"metadata": "<unknown>"
}
'import requests
url = "https://api.dots.dev/api/v2/payments"
payload = {
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"platform": "ach",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ach_info": {
"account_number": "<string>",
"routing_number": "<string>"
},
"account_id": "<string>",
"metadata": "<unknown>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
user_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
amount: 123,
platform: 'ach',
customer_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
ach_info: {account_number: '<string>', routing_number: '<string>'},
account_id: '<string>',
metadata: '<unknown>'
})
};
fetch('https://api.dots.dev/api/v2/payments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dots.dev/api/v2/payments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'user_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'amount' => 123,
'platform' => 'ach',
'customer_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'ach_info' => [
'account_number' => '<string>',
'routing_number' => '<string>'
],
'account_id' => '<string>',
'metadata' => '<unknown>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dots.dev/api/v2/payments"
payload := strings.NewReader("{\n \"user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"platform\": \"ach\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ach_info\": {\n \"account_number\": \"<string>\",\n \"routing_number\": \"<string>\"\n },\n \"account_id\": \"<string>\",\n \"metadata\": \"<unknown>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dots.dev/api/v2/payments")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"platform\": \"ach\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ach_info\": {\n \"account_number\": \"<string>\",\n \"routing_number\": \"<string>\"\n },\n \"account_id\": \"<string>\",\n \"metadata\": \"<unknown>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dots.dev/api/v2/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"platform\": \"ach\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ach_info\": {\n \"account_number\": \"<string>\",\n \"routing_number\": \"<string>\"\n },\n \"account_id\": \"<string>\",\n \"metadata\": \"<unknown>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created": "2023-11-07T05:31:56Z",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"external_data": {
"account_id": "<string>",
"external_id": "<string>"
},
"transactions": [
{
"id": 123,
"amount": 123,
"created": "2023-11-07T05:31:56Z",
"source_name": "<string>",
"destination_name": "<string>",
"metadata": "<string>",
"transfer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"transfer": "<unknown>"
}
],
"payout_link_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"metadata": "<string>"
}Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Body
- Option 1
- Option 2
ach Specifies the bank account to draw the payment from. This can be used as an alternative to a stored account ID.
Show child attributes
Show child attributes
The user's ACH account ID.
Response
Created
The transfer object.
created, pending, failed, completed, reversed, canceled, flagged The type of this transfer.
refill- refill of an API App or Organization's Dots Walletpayout- payout to a Userbalance- balance transfer between Dots Wallets, such as from an API App to a User's Dots Walletpayment- payment from a User to an API Appsettlement- legacy, currently unusedpayable- payable for Accounts Payable
refill, payout, balance, payment, settlement, payable Show child attributes
Show child attributes
Show child attributes
Show child attributes
ID of the payout-link that the transfer belongs to.
Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
Was this page helpful?

