Pular para o conteúdo principal
Create a Bank Account
curl --request POST \
  --url https://api.spherepay.co/v2/bank-account \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "customerId": "customer_66c4168d418a410eae282b83883bdc39",
  "bankName": "Bank of America",
  "accountName": "Checking Account",
  "currency": "usd",
  "accountDetails": "<unknown>",
  "accountOwner": {
    "accountHolderName": "Sarah Johnson",
    "address": {
      "line1": "233 South Wacker Drive",
      "city": "Chicago",
      "country": "USA",
      "line2": "Suite 4700",
      "state": "IL",
      "postalCode": "60606"
    },
    "relationship": "self"
  },
  "networks": [
    "wire",
    "ach"
  ]
}
'
import requests

url = "https://api.spherepay.co/v2/bank-account"

payload = {
"customerId": "customer_66c4168d418a410eae282b83883bdc39",
"bankName": "Bank of America",
"accountName": "Checking Account",
"currency": "usd",
"accountDetails": "<unknown>",
"accountOwner": {
"accountHolderName": "Sarah Johnson",
"address": {
"line1": "233 South Wacker Drive",
"city": "Chicago",
"country": "USA",
"line2": "Suite 4700",
"state": "IL",
"postalCode": "60606"
},
"relationship": "self"
},
"networks": ["wire", "ach"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customerId: 'customer_66c4168d418a410eae282b83883bdc39',
bankName: 'Bank of America',
accountName: 'Checking Account',
currency: 'usd',
accountDetails: '<unknown>',
accountOwner: {
accountHolderName: 'Sarah Johnson',
address: {
line1: '233 South Wacker Drive',
city: 'Chicago',
country: 'USA',
line2: 'Suite 4700',
state: 'IL',
postalCode: '60606'
},
relationship: 'self'
},
networks: ['wire', 'ach']
})
};

fetch('https://api.spherepay.co/v2/bank-account', 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.spherepay.co/v2/bank-account",
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([
'customerId' => 'customer_66c4168d418a410eae282b83883bdc39',
'bankName' => 'Bank of America',
'accountName' => 'Checking Account',
'currency' => 'usd',
'accountDetails' => '<unknown>',
'accountOwner' => [
'accountHolderName' => 'Sarah Johnson',
'address' => [
'line1' => '233 South Wacker Drive',
'city' => 'Chicago',
'country' => 'USA',
'line2' => 'Suite 4700',
'state' => 'IL',
'postalCode' => '60606'
],
'relationship' => 'self'
],
'networks' => [
'wire',
'ach'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.spherepay.co/v2/bank-account"

payload := strings.NewReader("{\n \"customerId\": \"customer_66c4168d418a410eae282b83883bdc39\",\n \"bankName\": \"Bank of America\",\n \"accountName\": \"Checking Account\",\n \"currency\": \"usd\",\n \"accountDetails\": \"<unknown>\",\n \"accountOwner\": {\n \"accountHolderName\": \"Sarah Johnson\",\n \"address\": {\n \"line1\": \"233 South Wacker Drive\",\n \"city\": \"Chicago\",\n \"country\": \"USA\",\n \"line2\": \"Suite 4700\",\n \"state\": \"IL\",\n \"postalCode\": \"60606\"\n },\n \"relationship\": \"self\"\n },\n \"networks\": [\n \"wire\",\n \"ach\"\n ]\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
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.spherepay.co/v2/bank-account")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerId\": \"customer_66c4168d418a410eae282b83883bdc39\",\n \"bankName\": \"Bank of America\",\n \"accountName\": \"Checking Account\",\n \"currency\": \"usd\",\n \"accountDetails\": \"<unknown>\",\n \"accountOwner\": {\n \"accountHolderName\": \"Sarah Johnson\",\n \"address\": {\n \"line1\": \"233 South Wacker Drive\",\n \"city\": \"Chicago\",\n \"country\": \"USA\",\n \"line2\": \"Suite 4700\",\n \"state\": \"IL\",\n \"postalCode\": \"60606\"\n },\n \"relationship\": \"self\"\n },\n \"networks\": [\n \"wire\",\n \"ach\"\n ]\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.spherepay.co/v2/bank-account")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customerId\": \"customer_66c4168d418a410eae282b83883bdc39\",\n \"bankName\": \"Bank of America\",\n \"accountName\": \"Checking Account\",\n \"currency\": \"usd\",\n \"accountDetails\": \"<unknown>\",\n \"accountOwner\": {\n \"accountHolderName\": \"Sarah Johnson\",\n \"address\": {\n \"line1\": \"233 South Wacker Drive\",\n \"city\": \"Chicago\",\n \"country\": \"USA\",\n \"line2\": \"Suite 4700\",\n \"state\": \"IL\",\n \"postalCode\": \"60606\"\n },\n \"relationship\": \"self\"\n },\n \"networks\": [\n \"wire\",\n \"ach\"\n ]\n}"

response = http.request(request)
puts response.read_body
{
  "id": "bankAccount_ce745ef7f3df4b9a8bff1301ce24b045",
  "status": "active",
  "customerId": "customer_66c4168d418a410eae282b83883bdc39",
  "created": "2025-01-01T00:00:00Z",
  "updated": "2025-01-01T00:00:00Z",
  "bankName": "Bank of America",
  "accountName": "Checking Account",
  "currency": "usd",
  "accountDetails": {
    "accountNumber": "****7890",
    "routingNumber": "021000021",
    "accountType": "checking"
  },
  "accountOwner": {
    "accountHolderName": "John Doe",
    "relationship": "self"
  },
  "networks": [
    "wire",
    "ach"
  ]
}
{
"status": 400,
"detail": "Invalid request parameters",
"code": "address/invalid",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}
{
"status": 404,
"detail": "Resource not found",
"code": "resource/not-found",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}
{
"status": 422,
"detail": "Validation failed",
"code": "validation/failed",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"errors": [
{
"detail": "Invalid email format",
"pointer": "/email"
},
{
"detail": "Name is required",
"pointer": "/name"
}
]
}
Use este endpoint para registrar a conta bancária fiat existente de um cliente no SpherePay. O SpherePay não abre nem gerencia contas bancárias — ele vincula uma conta que seu cliente já possui ao perfil do SpherePay para que possa ser usada como origem ou destino em transferências fiat. Você deve registrar pelo menos uma conta bancária (bank_account) antes de criar uma transferência que envolva moeda fiat. O cliente deve ter pelo menos um perfil de verificação aprovado antes que você possa registrar uma conta bancária em seu nome.

Autorizações

Authorization
string
header
obrigatório

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Corpo

application/json
customerId
string
obrigatório

The unique identifier of the customer who owns this bank account.

Minimum string length: 1
Exemplo:

"customer_66c4168d418a410eae282b83883bdc39"

bankName
string
obrigatório

The name of the financial institution where the account is held.

Minimum string length: 1
Exemplo:

"Bank of America"

accountName
string
obrigatório

A descriptive name for this bank account (e.g., "Checking Account", "Business Account").

Minimum string length: 1
Exemplo:

"Checking Account"

currency
enum<string>
obrigatório

The currency of the bank account. When set to usd, accountDetails must contain either (accountNumber, routingNumber, accountType) for ACH/Wire or (accountNumber, bic) for SWIFT.

Opções disponíveis:
usd
Exemplo:

"usd"

accountDetails
any
obrigatório

USD account details. For ACH/Wire: accountNumber, routingNumber, accountType. For SWIFT: accountNumber, bic.

accountOwner
object
obrigatório

Information about the account owner, including their name, address, and relationship to the customer.

networks
obrigatório

The payment networks supported by this bank account. For USD ACH/Wire accounts, must include at least one of "ach" or "wire". For USD SWIFT accounts, must be exactly ["swift"].

Minimum array length: 1
Opções disponíveis:
ach,
wire
Exemplo:
["wire", "ach"]

Resposta

id
string
obrigatório

The unique identifier of the bank account.

Exemplo:

"bankAccount_ce745ef7f3df4b9a8bff1301ce24b045"

status
enum<string>
obrigatório

The current status of the bank account.

Opções disponíveis:
pending,
active,
inactive,
invalid
Exemplo:

"active"

customerId
string
obrigatório

The unique identifier of the customer who owns this bank account.

Exemplo:

"customer_66c4168d418a410eae282b83883bdc39"

created
string
obrigatório

The ISO 8601 timestamp when the bank account was created.

Exemplo:

"2025-01-01T00:00:00Z"

updated
string
obrigatório

The ISO 8601 timestamp when the bank account was last updated.

Exemplo:

"2025-01-01T00:00:00Z"

bankName
string
obrigatório

The name of the financial institution where the account is held.

Exemplo:

"Bank of America"

accountName
string
obrigatório

A descriptive name for this bank account.

Exemplo:

"Checking Account"

currency
enum<string>
obrigatório

The currency of the bank account.

Opções disponíveis:
usd
Exemplo:

"usd"

accountDetails
object
obrigatório

USD account details. For ACH/Wire: accountNumber, routingNumber, accountType. For SWIFT: accountNumber (masked), bic.

accountOwner
object
obrigatório

Information about the account owner, including their name and relationship to the customer.

networks
obrigatório

The payment networks supported by this bank account. For USD ACH/Wire accounts, includes at least one of "ach" or "wire". For USD SWIFT accounts, is exactly ["swift"].

Opções disponíveis:
ach,
wire
Exemplo:
["wire", "ach"]
Última modificação em 22 de junho de 2026