Skip to main content
By the end, you will have signed your requests with a JSON Web Signature (JWS), funded a test Account, and sent your first Transfer.

Step 1: Get your test API keys

In the Dashboard, go to Developers β†’ API Keys. You’ll see keys for test (sk_test_...) and live (sk_live_...) modes. Copy the test secret key.

Step 2: Register JWS keys

Money-moving endpoints require signed requests. These endpoints create transfers, return transfers, or verify a standardized Mexican bank account number. Follow Generate JWS keys to create a key pair and upload the public key. Return to this page when you’re done.

Step 3: List your accounts

Every organization starts with a root Account. Fetch it with a GET request to /v2/accounts:
cURL
The response looks like this:
JSON

Use an SDK

If you’re using Node or Python, install the Node SDK or Python SDK to call the API. The SDK signs each request with JWS and handles pagination. Install an SDK:
List your accounts:
Keep the id (acc_...) and root_account_number_id (acno_...) from the response. Use root_account_number_id to fund the test Account. Use id to create the outbound Transfer.

Step 4: Fund your test account

Your test Account starts empty. Simulate an inbound transfer so you have money to send:
cURL
The response is the simulated inbound Transfer that funds your Account:
JSON
Currencies are represented as integersThe Fintoc API represents money in the smallest currency unit as an integer with no decimals. An amount of 590.13MXNisβ€˜59013β€˜.CLPhasnominorunit,soanamountof590.13 MXN is `59013`. CLP has no minor unit, so an amount of 59,013 CLP is also 59013.See Currencies.
See Test your integration for simulations of failures, returns, and rejected payouts.

Step 5: Send your first transfer

Create an outbound Transfer from the test Account you funded.
cURL
The response is the outbound Transfer you created:
JSON

Step 6: Create a webhook endpoint

Webhooks notify your server when a transfer settles, so you don’t need to poll for status. Go to Developers β†’ Webhooks in the Dashboard. Add your URL, then subscribe to transfer.inbound.succeeded and transfer.outbound.succeeded.

Test the integration

Confirm the full flow worked end to end:
  1. After Step 4, list your accounts again and confirm available_balance increased by 59013.
  2. Confirm the Step 5 transfer returns "status": "succeeded".
  3. After Step 6, repeat Steps 4 and 5. Confirm your endpoint receives a transfer.outbound.succeeded webhook for the new outbound transfer.