curl --request POST \
--url https://api.example.com/spi/v1/transfers/cashout/process \
--header 'Authorization: Bearer demo-access-token' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: pix-demo-20260903-000001' \
--header 'X-Account-Id: 019606a1-3b4c-7d8e-9f01-234567890abc' \
--header 'X-End-To-End-Id: E12345678202605061030abcdef12345' \
--data '{
"amount": "100.00",
"initiationId": "019606a1-3b4c-7d8e-9f01-234567890abc"
}'import requests
url = "https://api.example.com/spi/v1/transfers/cashout/process"
payload = {
"amount": "100.00",
"initiationId": "019606a1-3b4c-7d8e-9f01-234567890abc"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"X-Account-Id": "<x-account-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'X-Account-Id': '<x-account-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({amount: '100.00', initiationId: '019606a1-3b4c-7d8e-9f01-234567890abc'})
};
fetch('https://api.example.com/spi/v1/transfers/cashout/process', 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.example.com/spi/v1/transfers/cashout/process",
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([
'amount' => '100.00',
'initiationId' => '019606a1-3b4c-7d8e-9f01-234567890abc'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"X-Account-Id: <x-account-id>"
],
]);
$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.example.com/spi/v1/transfers/cashout/process"
payload := strings.NewReader("{\n \"amount\": \"100.00\",\n \"initiationId\": \"019606a1-3b4c-7d8e-9f01-234567890abc\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("X-Account-Id", "<x-account-id>")
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.example.com/spi/v1/transfers/cashout/process")
.header("Idempotency-Key", "<idempotency-key>")
.header("X-Account-Id", "<x-account-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"100.00\",\n \"initiationId\": \"019606a1-3b4c-7d8e-9f01-234567890abc\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/spi/v1/transfers/cashout/process")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["X-Account-Id"] = '<x-account-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": \"100.00\",\n \"initiationId\": \"019606a1-3b4c-7d8e-9f01-234567890abc\"\n}"
response = http.request(request)
puts response.read_body{
"accountId": "019606a0-1a2b-7c3d-8e4f-567890123abc",
"aliasId": "019606a1-3b4c-7d8e-9f01-234567890abc",
"amount": "100.00",
"createdAt": "2026-05-06T10:30:00Z",
"currency": "BRL",
"description": "Pagamento de aluguel",
"destination": {
"account": {
"branch": "0001",
"number": "0007654321",
"participant": "87654321",
"type": "CACC"
},
"key": "+5511999998888",
"owner": {
"document": "12345678901",
"name": "João da Silva",
"tradeName": "Empresa Exemplo LTDA",
"type": "NATURAL_PERSON"
}
},
"endToEndId": "E12345678202605061030abcdef12345",
"feeCharge": {
"applied": true,
"calculationType": "FIXED",
"fees": [
{
"amount": "1.50",
"calculationType": "FIXED",
"calculationValue": "1.50",
"creditAccount": "019606a3-5d6e-7f80-1a2b-345678901bcd",
"feeLabel": "PIX_TRANSFER_FEE"
}
],
"netAmount": "98.50",
"totalAmount": "1.50"
},
"id": "019606a2-4c5d-7e8f-90a1-345678901bcd",
"initiatedAt": "2026-05-06T10:30:00Z",
"initiationType": "DICT",
"ledger": {
"destinationOperationId": "019606a5-7f80-7182-3c4d-56789012cdf1",
"revert": {
"destinationOperationId": "019606a5-7f80-7182-3c4d-56789012cdf1",
"sourceOperationId": "019606a5-7f80-7182-3c4d-56789012cdf0",
"transactionId": "019606a5-7f80-7182-3c4d-56789012cdef"
},
"sourceOperationId": "019606a5-7f80-7182-3c4d-56789012cdf0",
"transactionId": "019606a5-7f80-7182-3c4d-56789012cdef"
},
"metadata": {
"field": "field-example"
},
"paymentType": "PIX",
"purpose": "IACT",
"source": {
"account": {
"branch": "0001",
"number": "0007654321",
"participant": "87654321",
"type": "CACC"
},
"key": "+5511999998888",
"owner": {
"document": "12345678901",
"name": "João da Silva",
"tradeName": "Empresa Exemplo LTDA",
"type": "NATURAL_PERSON"
}
},
"status": "COMPLETED",
"type": "OUTBOUND",
"updatedAt": "2026-05-06T10:30:05Z",
"urgency": "HIGH"
}{
"code": "PIX-0030",
"title": "Idempotency Key Required",
"message": "The Idempotency-Key header is required for this operation and must be within the accepted length."
}{
"code": "PIX-0031",
"title": "Idempotency Key Conflict",
"message": "The Idempotency-Key was already used with a different request."
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}Procesar y confirmar una transferencia Pix (paso 2)
Confirma una transferencia iniciada previamente, debita la cuenta de origen y envía el pago Pix para su procesamiento.
curl --request POST \
--url https://api.example.com/spi/v1/transfers/cashout/process \
--header 'Authorization: Bearer demo-access-token' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: pix-demo-20260903-000001' \
--header 'X-Account-Id: 019606a1-3b4c-7d8e-9f01-234567890abc' \
--header 'X-End-To-End-Id: E12345678202605061030abcdef12345' \
--data '{
"amount": "100.00",
"initiationId": "019606a1-3b4c-7d8e-9f01-234567890abc"
}'import requests
url = "https://api.example.com/spi/v1/transfers/cashout/process"
payload = {
"amount": "100.00",
"initiationId": "019606a1-3b4c-7d8e-9f01-234567890abc"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"X-Account-Id": "<x-account-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'X-Account-Id': '<x-account-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({amount: '100.00', initiationId: '019606a1-3b4c-7d8e-9f01-234567890abc'})
};
fetch('https://api.example.com/spi/v1/transfers/cashout/process', 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.example.com/spi/v1/transfers/cashout/process",
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([
'amount' => '100.00',
'initiationId' => '019606a1-3b4c-7d8e-9f01-234567890abc'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"X-Account-Id: <x-account-id>"
],
]);
$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.example.com/spi/v1/transfers/cashout/process"
payload := strings.NewReader("{\n \"amount\": \"100.00\",\n \"initiationId\": \"019606a1-3b4c-7d8e-9f01-234567890abc\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("X-Account-Id", "<x-account-id>")
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.example.com/spi/v1/transfers/cashout/process")
.header("Idempotency-Key", "<idempotency-key>")
.header("X-Account-Id", "<x-account-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"100.00\",\n \"initiationId\": \"019606a1-3b4c-7d8e-9f01-234567890abc\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/spi/v1/transfers/cashout/process")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["X-Account-Id"] = '<x-account-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": \"100.00\",\n \"initiationId\": \"019606a1-3b4c-7d8e-9f01-234567890abc\"\n}"
response = http.request(request)
puts response.read_body{
"accountId": "019606a0-1a2b-7c3d-8e4f-567890123abc",
"aliasId": "019606a1-3b4c-7d8e-9f01-234567890abc",
"amount": "100.00",
"createdAt": "2026-05-06T10:30:00Z",
"currency": "BRL",
"description": "Pagamento de aluguel",
"destination": {
"account": {
"branch": "0001",
"number": "0007654321",
"participant": "87654321",
"type": "CACC"
},
"key": "+5511999998888",
"owner": {
"document": "12345678901",
"name": "João da Silva",
"tradeName": "Empresa Exemplo LTDA",
"type": "NATURAL_PERSON"
}
},
"endToEndId": "E12345678202605061030abcdef12345",
"feeCharge": {
"applied": true,
"calculationType": "FIXED",
"fees": [
{
"amount": "1.50",
"calculationType": "FIXED",
"calculationValue": "1.50",
"creditAccount": "019606a3-5d6e-7f80-1a2b-345678901bcd",
"feeLabel": "PIX_TRANSFER_FEE"
}
],
"netAmount": "98.50",
"totalAmount": "1.50"
},
"id": "019606a2-4c5d-7e8f-90a1-345678901bcd",
"initiatedAt": "2026-05-06T10:30:00Z",
"initiationType": "DICT",
"ledger": {
"destinationOperationId": "019606a5-7f80-7182-3c4d-56789012cdf1",
"revert": {
"destinationOperationId": "019606a5-7f80-7182-3c4d-56789012cdf1",
"sourceOperationId": "019606a5-7f80-7182-3c4d-56789012cdf0",
"transactionId": "019606a5-7f80-7182-3c4d-56789012cdef"
},
"sourceOperationId": "019606a5-7f80-7182-3c4d-56789012cdf0",
"transactionId": "019606a5-7f80-7182-3c4d-56789012cdef"
},
"metadata": {
"field": "field-example"
},
"paymentType": "PIX",
"purpose": "IACT",
"source": {
"account": {
"branch": "0001",
"number": "0007654321",
"participant": "87654321",
"type": "CACC"
},
"key": "+5511999998888",
"owner": {
"document": "12345678901",
"name": "João da Silva",
"tradeName": "Empresa Exemplo LTDA",
"type": "NATURAL_PERSON"
}
},
"status": "COMPLETED",
"type": "OUTBOUND",
"updatedAt": "2026-05-06T10:30:05Z",
"urgency": "HIGH"
}{
"code": "PIX-0030",
"title": "Idempotency Key Required",
"message": "The Idempotency-Key header is required for this operation and must be within the accepted length."
}{
"code": "PIX-0031",
"title": "Idempotency Key Conflict",
"message": "The Idempotency-Key was already used with a different request."
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}Autorizaciones
JWT bearer token issued by the identity provider.
Encabezados
Clave generada por el cliente para reintentar exactamente la misma solicitud de forma segura.
1 - 64UUID de la cuenta asociada a la operación.
"019606a1-3b4c-7d8e-9f01-234567890abc"
Idempotency key — caller-supplied 32-char BCB endToEndId. Omit to let SPI generate one.
"E12345678202605061030abcdef12345"
Cuerpo
Respuesta
Created
"100.00"
"2026-05-06T10:30:00Z"
"E12345678202605061030abcdef12345"
"019606a2-4c5d-7e8f-90a1-345678901bcd"
"COMPLETED"
"OUTBOUND"
"2026-05-06T10:30:05Z"
"019606a0-1a2b-7c3d-8e4f-567890123abc"
Cross-mechanism settled and reserved refund amount. Returned only for INBOUND transfers.
"60.00"
"BRL"
"Pagamento de aluguel"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
"2026-05-06T10:30:00Z"
"DICT"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
"PIX"
"IACT"
Amount minus alreadyRefundedAmount. Returned only for INBOUND transfers and can be negative.
"40.00"
Show child attributes
Show child attributes
"HIGH"
¿Esta página le ayudó?

