Quickstart
Prepare to start using the Transfers API
To start using Fintoc's Transfer API, you just need to have an account on our Dashboard and follow these steps:
- Get your test API Keys
- Generate your JWS Keys and upload them to our Dashboard.
- Get your accounts
- Send your first transfer
Step 1: Get your test API Keys
Every interaction with the Fintoc API must be authenticated with your Fintoc API Keys. If any interaction with the API doesn't include your API Key or uses an incorrect one, Fintoc will return an error.
Every Fintoc account has two key pairs: one is used for test mode, while the other is used for the production environment. Every resource is stored either in test mode or live mode, and resources from one environment cannot be manipulated by resources from the other.
Your API Keys will be available in the Dashboard, where you will have to sign up. Once your Fintoc account has been created, you will be able to get your API Keys. In this case, you must use the Secret Key for test mode. We added the prefix sk_test_
so you can easily identify it.
Step 2: Register your JWS Keys
To make requests to Transfers endpoints that move money, you need to include a JSON Web Signature (JWS). JWS is a standard for digitally signing data to ensure its integrity and authenticity.
To register your JWS keys, follow this guide.
Step 3: Get your accounts
Using your test Secret Key, get your Accounts via API like this:
curl --request GET \
--url https://api.fintoc.com/v2/accounts \
--header 'Authorization: sk_test_9c8d8CeyBTx1VcJzuDgpm4H' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
The response should look like this:
[
{
"id": "acc_23JlasHas241",
"object": "account",
"mode": "test",
"description": "My root account",
"root_account_number": "738969123456789120",
"root_account_number_id": "acno_Kasf91034gj1AD",
"available_balance": 0
"currency": "MXN",
"entity": {
"id": "ent_4324qwkalsds",
"holder_name": "ACME Inc.",
"holder_id": "ND"
}
}
]
Using our SDK
If you’re using Python, you can install our SDK to make it easier to interact with our API. The SDK automatically generates the JWS signature, handles pagination, and offers many other helpful features.
First install our SDK:
pip install fintoc
Now list your accounts:
from fintoc import Fintoc
# You can provide a path to your PEM file or pass the PEM key directly as a string.
# jws_private_key = os.environ.get('JWS_PRIVATE_KEY')
jws_private_key = "./private_key.pem"
client = Fintoc("sk_test_ZmHdrkZGYby32tsVYdf4wrYxKRt2gD3g", jws_private_key=jws_private_key)
for account in client.v2.accounts.list():
print(account.id, account.description, account.root_account_number, account.available_balance)
Step 4: Make your first transfer
Now, we’ll create a transfer. In live mode, this will actually move money to your customers’ accounts. Since we’re in test mode, no money will be moved—but you’ll use the exact same API that you’ll use in your production environment.
Before creating a transfer, you need to generate a JWS Signature. This signature ensures the integrity and authenticity of the API call. Each transfer requires a unique signature—you cannot reuse signatures between transfers. Additionally, each signature is valid for only two minutes, to prevent the processing of outdated requests.
To learn how to generate a JWS Signature, follow this guide .
Once you’ve generated your JWS Signature, use the account_id
you got from Step 3 to create a transfer of $590.13 MXN:
curl --request POST \
--url https://api.fintoc.com/v2/transfers \
--header 'Authorization: YOUR_API_KEY' \
--header 'Fintoc-JWS-Signature: YOUR_JWS_SIGNATURE' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"amount": 59013,
"currency": "mxn",
"account_id": "acc_M8sKf230BgHjD4",
"comment": "Pago de credito 10451",
"reference_id": "150195",
"counterparty": {
"account_number": "012969123456789120"
},
}
Currencies are represented as integers
The Fintoc API represents currencies in its smallest possible units with no decimals (as an integer). That means that an amount of MXN $590.13 gets represented by Fintoc as 59013.
If you are making a transfer in Chilean peso, because there are no decimals, if you want to transfer $59013 you just represent that amount as
59013
.You can read more about currencies here..
Using our SDK
If you are using our Python SDK, you can create the transfer like this:
transfer = client.v2.transfers.create(
amount=59013,
currency="mxn",
account_id="acc_M8sKf230BgHjD4",
comment="Pago de credito 10451",
reference_id="150195",
counterparty={"account_number": "014180655091438298"},
)
✅ Congratulations! You just made your first transfer! For real-world applications, there are several other features you should consider using—for example:
- Idempotency Keys to safely repeat requests without the risk of creating two objects
- Account Numbers to easily reconcile incoming transfers
- Metadata to attach custom data to your Fintoc objects
You'll learn all about these features in our guides on receiving transfers and sending transfers. If you want to further understand how transfers work and high level concepts, check our overview guide.
Updated 4 days ago