curl --request POST \
--url https://api.fintoc.com/v2/simulate/receive_transfer \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"account_number_id": "acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN",
"amount": 1500,
"currency": "CLP",
"comment": "Test deposit",
"reference_id": "1234567",
"counterparty_account_number": "646180111800000004",
"counterparty_account_type": "checking_account",
"counterparty_institution_id": "cl_banco_santander",
"counterparty_holder_id": "11.111.111-1",
"counterparty_holder_name": "Test Customer 1"
}
'import requests
url = "https://api.fintoc.com/v2/simulate/receive_transfer"
payload = {
"account_number_id": "acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN",
"amount": 1500,
"currency": "CLP",
"comment": "Test deposit",
"reference_id": "1234567",
"counterparty_account_number": "646180111800000004",
"counterparty_account_type": "checking_account",
"counterparty_institution_id": "cl_banco_santander",
"counterparty_holder_id": "11.111.111-1",
"counterparty_holder_name": "Test Customer 1"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
account_number_id: 'acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN',
amount: 1500,
currency: 'CLP',
comment: 'Test deposit',
reference_id: '1234567',
counterparty_account_number: '646180111800000004',
counterparty_account_type: 'checking_account',
counterparty_institution_id: 'cl_banco_santander',
counterparty_holder_id: '11.111.111-1',
counterparty_holder_name: 'Test Customer 1'
})
};
fetch('https://api.fintoc.com/v2/simulate/receive_transfer', 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.fintoc.com/v2/simulate/receive_transfer",
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([
'account_number_id' => 'acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN',
'amount' => 1500,
'currency' => 'CLP',
'comment' => 'Test deposit',
'reference_id' => '1234567',
'counterparty_account_number' => '646180111800000004',
'counterparty_account_type' => 'checking_account',
'counterparty_institution_id' => 'cl_banco_santander',
'counterparty_holder_id' => '11.111.111-1',
'counterparty_holder_name' => 'Test Customer 1'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.fintoc.com/v2/simulate/receive_transfer"
payload := strings.NewReader("{\n \"account_number_id\": \"acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN\",\n \"amount\": 1500,\n \"currency\": \"CLP\",\n \"comment\": \"Test deposit\",\n \"reference_id\": \"1234567\",\n \"counterparty_account_number\": \"646180111800000004\",\n \"counterparty_account_type\": \"checking_account\",\n \"counterparty_institution_id\": \"cl_banco_santander\",\n \"counterparty_holder_id\": \"11.111.111-1\",\n \"counterparty_holder_name\": \"Test Customer 1\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.fintoc.com/v2/simulate/receive_transfer")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_number_id\": \"acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN\",\n \"amount\": 1500,\n \"currency\": \"CLP\",\n \"comment\": \"Test deposit\",\n \"reference_id\": \"1234567\",\n \"counterparty_account_number\": \"646180111800000004\",\n \"counterparty_account_type\": \"checking_account\",\n \"counterparty_institution_id\": \"cl_banco_santander\",\n \"counterparty_holder_id\": \"11.111.111-1\",\n \"counterparty_holder_name\": \"Test Customer 1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fintoc.com/v2/simulate/receive_transfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_number_id\": \"acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN\",\n \"amount\": 1500,\n \"currency\": \"CLP\",\n \"comment\": \"Test deposit\",\n \"reference_id\": \"1234567\",\n \"counterparty_account_number\": \"646180111800000004\",\n \"counterparty_account_type\": \"checking_account\",\n \"counterparty_institution_id\": \"cl_banco_santander\",\n \"counterparty_holder_id\": \"11.111.111-1\",\n \"counterparty_holder_name\": \"Test Customer 1\"\n}"
response = http.request(request)
puts response.read_body{
"id": "tr_2daFu0zqqDtZGJaSi2TGI2Mm1nN",
"object": "transfer",
"account_number": {
"id": "acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN",
"object": "account_number",
"account_id": "acc_2hQ9vBmKpR7xLtZ3sWn1fJ4dGcA",
"created_at": "2026-03-01T12:00:00.000Z",
"deleted_at": null,
"description": "Payouts CLABE",
"is_root": false,
"last_transfer_at": null,
"metadata": {
"invoice_id": "12345"
},
"mode": "test",
"number": "646180111800000004",
"options": {
"min_amount": 1000,
"max_amount": 1000000
},
"status": "enabled",
"updated_at": "2026-03-01T12:00:00.000Z"
},
"amount": 50000,
"comment": "Payout March",
"counterparty": {
"account_number": "132000000000000004",
"account_type": "clabe",
"email": null,
"holder_id": null,
"holder_name": "Test Customer 1",
"institution": {
"id": "40132",
"name": "MULTIVA BANCO",
"country": "mx"
}
},
"currency": "MXN",
"direction": "outbound",
"entity": {
"id": "ent_2eGhTp1rLqWnXkZbYc4JsKmAvD9",
"holder_id": "000000000",
"holder_name": "Test Customer 1",
"is_root": true
},
"metadata": {
"test_key": "test_value"
},
"error_reason": null,
"mode": "test",
"post_date": null,
"receipt_url": null,
"reject_reason": null,
"reference_id": null,
"return_reason": null,
"reversed_at": null,
"failed_at": null,
"rejected_at": null,
"status": "succeeded",
"tracking_key": null,
"transaction_date": "2026-03-01T12:00:00.000Z"
}{
"error": {
"type": "invalid_request_error",
"code": "invalid_request",
"message": "Amount must be greater than 0"
}
}{
"error": {
"type": "authentication_error",
"code": "invalid_api_key",
"message": "Invalid API Key: invalid-*oken"
}
}Simulate receiving a transfer
Test-mode helper that simulates an inbound transfer into one of your account numbers, so you can exercise incoming-transfer flows. Only available with a test API key.
curl --request POST \
--url https://api.fintoc.com/v2/simulate/receive_transfer \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"account_number_id": "acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN",
"amount": 1500,
"currency": "CLP",
"comment": "Test deposit",
"reference_id": "1234567",
"counterparty_account_number": "646180111800000004",
"counterparty_account_type": "checking_account",
"counterparty_institution_id": "cl_banco_santander",
"counterparty_holder_id": "11.111.111-1",
"counterparty_holder_name": "Test Customer 1"
}
'import requests
url = "https://api.fintoc.com/v2/simulate/receive_transfer"
payload = {
"account_number_id": "acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN",
"amount": 1500,
"currency": "CLP",
"comment": "Test deposit",
"reference_id": "1234567",
"counterparty_account_number": "646180111800000004",
"counterparty_account_type": "checking_account",
"counterparty_institution_id": "cl_banco_santander",
"counterparty_holder_id": "11.111.111-1",
"counterparty_holder_name": "Test Customer 1"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
account_number_id: 'acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN',
amount: 1500,
currency: 'CLP',
comment: 'Test deposit',
reference_id: '1234567',
counterparty_account_number: '646180111800000004',
counterparty_account_type: 'checking_account',
counterparty_institution_id: 'cl_banco_santander',
counterparty_holder_id: '11.111.111-1',
counterparty_holder_name: 'Test Customer 1'
})
};
fetch('https://api.fintoc.com/v2/simulate/receive_transfer', 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.fintoc.com/v2/simulate/receive_transfer",
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([
'account_number_id' => 'acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN',
'amount' => 1500,
'currency' => 'CLP',
'comment' => 'Test deposit',
'reference_id' => '1234567',
'counterparty_account_number' => '646180111800000004',
'counterparty_account_type' => 'checking_account',
'counterparty_institution_id' => 'cl_banco_santander',
'counterparty_holder_id' => '11.111.111-1',
'counterparty_holder_name' => 'Test Customer 1'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.fintoc.com/v2/simulate/receive_transfer"
payload := strings.NewReader("{\n \"account_number_id\": \"acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN\",\n \"amount\": 1500,\n \"currency\": \"CLP\",\n \"comment\": \"Test deposit\",\n \"reference_id\": \"1234567\",\n \"counterparty_account_number\": \"646180111800000004\",\n \"counterparty_account_type\": \"checking_account\",\n \"counterparty_institution_id\": \"cl_banco_santander\",\n \"counterparty_holder_id\": \"11.111.111-1\",\n \"counterparty_holder_name\": \"Test Customer 1\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.fintoc.com/v2/simulate/receive_transfer")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_number_id\": \"acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN\",\n \"amount\": 1500,\n \"currency\": \"CLP\",\n \"comment\": \"Test deposit\",\n \"reference_id\": \"1234567\",\n \"counterparty_account_number\": \"646180111800000004\",\n \"counterparty_account_type\": \"checking_account\",\n \"counterparty_institution_id\": \"cl_banco_santander\",\n \"counterparty_holder_id\": \"11.111.111-1\",\n \"counterparty_holder_name\": \"Test Customer 1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fintoc.com/v2/simulate/receive_transfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_number_id\": \"acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN\",\n \"amount\": 1500,\n \"currency\": \"CLP\",\n \"comment\": \"Test deposit\",\n \"reference_id\": \"1234567\",\n \"counterparty_account_number\": \"646180111800000004\",\n \"counterparty_account_type\": \"checking_account\",\n \"counterparty_institution_id\": \"cl_banco_santander\",\n \"counterparty_holder_id\": \"11.111.111-1\",\n \"counterparty_holder_name\": \"Test Customer 1\"\n}"
response = http.request(request)
puts response.read_body{
"id": "tr_2daFu0zqqDtZGJaSi2TGI2Mm1nN",
"object": "transfer",
"account_number": {
"id": "acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN",
"object": "account_number",
"account_id": "acc_2hQ9vBmKpR7xLtZ3sWn1fJ4dGcA",
"created_at": "2026-03-01T12:00:00.000Z",
"deleted_at": null,
"description": "Payouts CLABE",
"is_root": false,
"last_transfer_at": null,
"metadata": {
"invoice_id": "12345"
},
"mode": "test",
"number": "646180111800000004",
"options": {
"min_amount": 1000,
"max_amount": 1000000
},
"status": "enabled",
"updated_at": "2026-03-01T12:00:00.000Z"
},
"amount": 50000,
"comment": "Payout March",
"counterparty": {
"account_number": "132000000000000004",
"account_type": "clabe",
"email": null,
"holder_id": null,
"holder_name": "Test Customer 1",
"institution": {
"id": "40132",
"name": "MULTIVA BANCO",
"country": "mx"
}
},
"currency": "MXN",
"direction": "outbound",
"entity": {
"id": "ent_2eGhTp1rLqWnXkZbYc4JsKmAvD9",
"holder_id": "000000000",
"holder_name": "Test Customer 1",
"is_root": true
},
"metadata": {
"test_key": "test_value"
},
"error_reason": null,
"mode": "test",
"post_date": null,
"receipt_url": null,
"reject_reason": null,
"reference_id": null,
"return_reason": null,
"reversed_at": null,
"failed_at": null,
"rejected_at": null,
"status": "succeeded",
"tracking_key": null,
"transaction_date": "2026-03-01T12:00:00.000Z"
}{
"error": {
"type": "invalid_request_error",
"code": "invalid_request",
"message": "Amount must be greater than 0"
}
}{
"error": {
"type": "authentication_error",
"code": "invalid_api_key",
"message": "Invalid API Key: invalid-*oken"
}
}Autorizaciones
Cuerpo
Account number that receives the simulated transfer.
"acno_2daFu0zqqDtZGJaSi2TGI2Mm1nN"
Amount to receive, in the smallest currency unit. For MXN this is centavos; CLP has no minor unit. The minimum is 1.
1500
Currency of the transfer. One of CLP, MXN.
CLP, MXN "CLP"
Comment to attach to the simulated transfer.
"Test deposit"
Numeric reference shown in the counterparty statement in Mexico. Up to 7 digits.
"1234567"
Account number of the simulated sender. In Mexico, Fintoc derives the sender's account type and institution from this value. Use a standardized Mexican bank account number (CLABE), debit card number, mobile phone number, or a Chilean bank account number; defaults to a Fintoc test counterparty when omitted.
"646180111800000004"
Type of the simulated sender account, used in Chile. One of checking_account, sight_account, or savings_account.
"checking_account"
Identifier of the simulated sender's financial institution, used in Chile. Use a bank public ID such as cl_banco_santander. In Mexico, Fintoc ignores this value and derives the institution from counterparty_account_number.
"cl_banco_santander"
Tax ID of the simulated sender. Use a Chilean tax ID (RUT) in Chile, or a Mexican tax ID (RFC) in Mexico.
"11.111.111-1"
Name of the simulated sender account holder.
"Test Customer 1"
Respuesta
The simulated inbound transfer.
A movement of money between one of your accounts and a counterparty. A transfer is outbound when you send money to a counterparty, or inbound when money arrives in one of your account numbers. Fintoc settles transfers over local payment rails in Chile and Mexico.
Unique identifier of the transfer.
"tr_2daFu0zqqDtZGJaSi2TGI2Mm1nN"
Type of the object. Always transfer.
Show child attributes
Show child attributes
Amount of the transfer, in the smallest currency unit. For MXN this is centavos; CLP has no minor unit.
50000
Comment shown to the counterparty, or null.
"Payout March"
Details of the counterparty of the transfer.
Show child attributes
Show child attributes
Currency of the transfer. One of CLP, MXN.
CLP, MXN "MXN"
Whether the transfer is inbound or outbound.
inbound, outbound "outbound"
Entity that owns the account involved in the transfer. For an inbound transfer this is the entity that received the money; for an outbound transfer, the entity that sent it.
Show child attributes
Show child attributes
Set of key-value pairs attached to the transfer.
{ "test_key": "test_value" }
Reason code for a failed transfer, or null. This field is available for Chilean transfers only. One of recipient_account_disabled_for_tef, recipient_institution_timeout, recipient_institution_unavailable, invalid_recipient_account, recipient_account_closed, invalid_recipient_holder_id, invalid_holder_id_account_relationship, account_type_not_enabled, recipient_account_not_found, product_account_not_enabled, recipient_account_credit_restricted, recipient_institution_amount_limit_exceeded, system_amount_limit_exceeded, and unknown.
recipient_account_disabled_for_tef, recipient_institution_timeout, recipient_institution_unavailable, invalid_recipient_account, recipient_account_closed, invalid_recipient_holder_id, invalid_holder_id_account_relationship, account_type_not_enabled, recipient_account_not_found, product_account_not_enabled, recipient_account_credit_restricted, recipient_institution_amount_limit_exceeded, system_amount_limit_exceeded, unknown, null null
Whether the transfer is live or test data.
live, test "test"
Time the transfer was posted, as an ISO 8601 datetime in UTC, or null.
null
URL of the transfer receipt, or null.
null
Reason code for a rejected transfer, or null. This field is available for Chilean transfers only. One of recipient_account_closed, recipient_account_credit_restricted, and unknown.
recipient_account_closed, recipient_account_credit_restricted, unknown, null null
Numeric reference shown in the counterparty statement in Mexico, or null.
null
Reason code when the transfer was returned, or null.
null
Time the transfer was reversed, as an ISO 8601 datetime in UTC, or null. This field is available for Chilean transfers only.
null
Time the transfer failed, as an ISO 8601 datetime in UTC, or null. This field is available for Chilean transfers only.
null
Time the transfer was rejected, as an ISO 8601 datetime in UTC, or null. This field is available for Chilean transfers only.
null
Lifecycle status of the transfer. One of pending (being processed), succeeded (settled), partially_succeeded (only part of the amount settled), rejected (rejected before settling), failed (could not be processed), returned (settled, then returned to the sender), return_pending (a return is in progress), reject_failed (the rejection could not be completed), reverse_pending (a reversal is in progress), or reversed (settled, then reversed). A Chilean transfer can move from succeeded to reverse_pending and then reversed when a payment network issue requires a reversal. partially_succeeded, reverse_pending, and reversed occur for Chilean transfers only.
pending, succeeded, failed, returned, return_pending, rejected, reject_failed, partially_succeeded, reverse_pending, reversed "succeeded"
Interbank tracking key (clave de rastreo) of the transfer, or null.
null
Time the transfer occurred, as an ISO 8601 datetime in UTC, or null.
"2026-03-01T12:00:00.000Z"
¿Esta página le ayudó?