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,
"settled_amount": 50000,
"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,
"settled_amount": 50000,
"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"
}
}Body
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"
Response
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.
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
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
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"
Was this page helpful?