curl --request DELETE \
--url https://api.spherepay.co/v2/transfer/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spherepay.co/v2/transfer/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.spherepay.co/v2/transfer/{id}', 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/transfer/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.spherepay.co/v2/transfer/{id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.spherepay.co/v2/transfer/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spherepay.co/v2/transfer/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"created": "2021-01-01T00:00:00.000Z",
"customer": "customer_b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7",
"depositAccount": {
"bankDetails": {
"accountHolderName": "John Doe",
"accountNumber": "1234567890",
"accountType": "savings",
"bankAddress": "123 Main St, Anytown, USA",
"bankName": "Bank of America",
"beneficiaryAddress": "123 Main St, Anytown, USA",
"bic": "1234567890",
"brCode": "00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"clabe": "012345678901234567",
"iban": "1234567890",
"memo": "BBE6C7EB4A3F",
"pixKey": "+5511999999999",
"routingNumber": "1234567890"
},
"type": "bank_account"
},
"destination": {
"currency": "usdc",
"id": "wallet_e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2",
"network": "sol",
"type": "wallet",
"amount": "<string>",
"exchangeRate": "5.455"
},
"id": "payout_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"source": {
"id": "bankAccount_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"type": "bank_account"
},
"status": "pendingFunding",
"statusHistory": [
{
"status": "pendingFunding",
"transitionedAt": "2026-06-20T14:03:21.000Z"
},
{
"status": "processing",
"transitionedAt": "2026-06-20T14:05:10.000Z"
}
],
"type": "on_ramp",
"updated": "2021-01-01T00:00:00.000Z",
"externalId": "merchant_ref_123",
"fees": {
"integratorFee": {
"bpsAmount": "0.10",
"bpsRate": "10",
"currency": "usd",
"fixedAmount": "1.00",
"totalAmount": "1.10"
},
"platformFee": {
"bpsAmount": "0.10",
"bpsRate": "10",
"currency": "usd",
"fixedAmount": "2.00",
"totalAmount": "2.10"
}
},
"paymentDescription": "INV-2026-004 - Q1 software services",
"paymentReason": "professional_services",
"quote": {
"expiresAt": "2021-01-01T00:00:00.000Z",
"id": "quote_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
},
"tracking": {
"destination": {
"imad": "20250224MMQFMP0B000012",
"omad": "123456789012345678901234",
"speiTrackingKey": "CR20260716TITAN0000000000000000001",
"traceNumber": "021000021234567",
"transactionId": "4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b",
"uetr": "097B365480122XK9"
},
"source": {
"imad": "20250224MMQFMP0B000012",
"omad": "123456789012345678901234",
"speiTrackingKey": "CR20260716TITAN0000000000000000001",
"traceNumber": "021000021234567",
"transactionId": "4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b",
"uetr": "097B365480122XK9"
}
}
}{
"code": "address/invalid",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Invalid request parameters",
"status": 400
}{
"code": "resource/not-found",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Resource not found",
"status": 404
}{
"code": "validation/failed",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Validation failed",
"errors": [
{
"detail": "Invalid email format",
"pointer": "/email"
},
{
"detail": "Name is required",
"pointer": "/name"
}
],
"status": 422
}Cancelar una Transferencia Pendiente Sin Fondos
Cancel a specific transfer.
curl --request DELETE \
--url https://api.spherepay.co/v2/transfer/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spherepay.co/v2/transfer/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.spherepay.co/v2/transfer/{id}', 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/transfer/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.spherepay.co/v2/transfer/{id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.spherepay.co/v2/transfer/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spherepay.co/v2/transfer/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"created": "2021-01-01T00:00:00.000Z",
"customer": "customer_b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7",
"depositAccount": {
"bankDetails": {
"accountHolderName": "John Doe",
"accountNumber": "1234567890",
"accountType": "savings",
"bankAddress": "123 Main St, Anytown, USA",
"bankName": "Bank of America",
"beneficiaryAddress": "123 Main St, Anytown, USA",
"bic": "1234567890",
"brCode": "00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"clabe": "012345678901234567",
"iban": "1234567890",
"memo": "BBE6C7EB4A3F",
"pixKey": "+5511999999999",
"routingNumber": "1234567890"
},
"type": "bank_account"
},
"destination": {
"currency": "usdc",
"id": "wallet_e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2",
"network": "sol",
"type": "wallet",
"amount": "<string>",
"exchangeRate": "5.455"
},
"id": "payout_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"source": {
"id": "bankAccount_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"type": "bank_account"
},
"status": "pendingFunding",
"statusHistory": [
{
"status": "pendingFunding",
"transitionedAt": "2026-06-20T14:03:21.000Z"
},
{
"status": "processing",
"transitionedAt": "2026-06-20T14:05:10.000Z"
}
],
"type": "on_ramp",
"updated": "2021-01-01T00:00:00.000Z",
"externalId": "merchant_ref_123",
"fees": {
"integratorFee": {
"bpsAmount": "0.10",
"bpsRate": "10",
"currency": "usd",
"fixedAmount": "1.00",
"totalAmount": "1.10"
},
"platformFee": {
"bpsAmount": "0.10",
"bpsRate": "10",
"currency": "usd",
"fixedAmount": "2.00",
"totalAmount": "2.10"
}
},
"paymentDescription": "INV-2026-004 - Q1 software services",
"paymentReason": "professional_services",
"quote": {
"expiresAt": "2021-01-01T00:00:00.000Z",
"id": "quote_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
},
"tracking": {
"destination": {
"imad": "20250224MMQFMP0B000012",
"omad": "123456789012345678901234",
"speiTrackingKey": "CR20260716TITAN0000000000000000001",
"traceNumber": "021000021234567",
"transactionId": "4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b",
"uetr": "097B365480122XK9"
},
"source": {
"imad": "20250224MMQFMP0B000012",
"omad": "123456789012345678901234",
"speiTrackingKey": "CR20260716TITAN0000000000000000001",
"traceNumber": "021000021234567",
"transactionId": "4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b",
"uetr": "097B365480122XK9"
}
}
}{
"code": "address/invalid",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Invalid request parameters",
"status": 400
}{
"code": "resource/not-found",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Resource not found",
"status": 404
}{
"code": "validation/failed",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Validation failed",
"errors": [
{
"detail": "Invalid email format",
"pointer": "/email"
},
{
"detail": "Name is required",
"pointer": "/name"
}
],
"status": 422
}pendingFunding — una vez que SpherePay detecta un depósito entrante y la transferencia avanza a fundsReceived o más allá, ya no puede ser cancelada. Si los fondos llegan después de la cancelación, SpherePay intentará devolverlos y la transferencia puede transicionar a returned o pendingRefundInformation.
pendingFunding. Verifica el estado de la transferencia con GET /v2/transfer/ antes de intentar la cancelación.Autorizaciones
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Parámetros de ruta
Respuesta
The datetime the transfer was created.
"2021-01-01T00:00:00.000Z"
The customer ID.
"customer_b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7"
The deposit bank account for an on ramp transfer.
- Deposit Bank Account
- Deposit Wallet
Show child attributes
Show child attributes
A unique identifier for transfer.
^payout_[a-z0-9]{32}$"payout_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
The source of an on ramp transfer.
- Source Bank Account
- Source Wallet
Show child attributes
Show child attributes
{
"id": "bankAccount_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"type": "bank_account"
}
The transfer status. See Transfer Lifecycle for status definitions and transitions.
pendingFunding, pendingReview, fundsReceived, processing, succeeded, undeliverable, returned, pendingRefundInformation, failed, canceled, refunded, unexpectedError, failedPrecondition, expired, unfunded "pendingFunding"
Timeline of status transitions for this transfer, ascending by transitionedAt.
Show child attributes
Show child attributes
[
{
"status": "pendingFunding",
"transitionedAt": "2026-06-20T14:03:21.000Z"
},
{
"status": "processing",
"transitionedAt": "2026-06-20T14:05:10.000Z"
}
]
The transfer type.
on_ramp, off_ramp, fiat_to_fiat, unmatched_deposit, microdeposit "on_ramp"
The last datetime the transfer was updated.
"2021-01-01T00:00:00.000Z"
The external reference (not stored as unique).
"merchant_ref_123"
Fee breakdown for the transfer. For floating-rate BRL transfers, this is omitted until settlement is complete.
Show child attributes
Show child attributes
A free-text description of the payment purpose. Present on third-party off-ramp transfers.
"INV-2026-004 - Q1 software services"
The reason for the payment. Present on BRL transfers and third-party off-ramp transfers.
"professional_services"
The quote used for this transfer, if any. When present, the locked exchange rate from the quote was applied to the destination amount and exchange rate.
Show child attributes
Show child attributes
Tracking references for the transfer. Only included when at least one reference exists.
Show child attributes
Show child attributes