Payins
You can create a payin either via a payment link or an Omnibus deposit. Omnibus deposits are only supported for Argentina, Guatemala, Costa Rica and Panama.
Create Payin (Payment Link)
POST /api/v1/wallet/deposits/new
gateway
Yes
ID of the payin gateway
amount
Conditional
Amount to be deposited (required if no quote_id)
currency
Yes
Currency of the deposit
customer_id
No
Pass the customer ID if the deposit is for a customer wallet
quote_id
No
Quote ID from exchange-rate endpoint (valid for 5 minutes)
redirect_url
No
URL to redirect user after transaction completion
Option 1: Using Quote ID (Recommended)
When using a quote_id, the amount and exchange rate are already locked from the quote generation.
{
"gateway": 22,
"currency": "CLP",
"quote_id": "4a72ecf8-6c8a-4e38-9971-8aabe9f785ed",
"customer_id": "xxxxxx-xxxx-xxxx-xxxxxx", // optional
"redirect_url": "https://example.com/success" // optional
}Option 2: Without Quote ID (Current Market Rate)
When no quote_id is provided, the current market rate is used and amount is required.
{
"gateway": 22,
"amount": 11,
"currency": "CLP",
"customer_id": "xxxxxx-xxxx-xxxx-xxxxxx" // optional
}Creating a Quote First
To use the quote_id option, first generate a quote using the exchange-rate endpoint:
POST /api/v1/exchange-rate
{
"from_currency": "CLP",
"to_currency": "USD",
"method_id": 22,
"method_type": "payin",
"amount": 11000
}This returns a quote_id that can be used in the payin request within 5 minutes.
Key Differences
With quote_id
Locked from quote
No (from quote)
5 minutes
Without quote_id
Current market rate
Yes
None
Omnibus Deposit (Deprecated)
Before using this endpoint, you must first enroll your customer for this service. If your customer is not enrolled for Omnibus, the request will fail.
Note: Your customer pays in the local fiat currency, and we settle the funds to your USD balance.
POST {{base_url}}/api/v1/epay/deposit
{
"customer_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"amount": "1000",
"coin": "ARS" ////(ARS,CRC,PUSD,GTQ)
}Retrieve Gateway ID (Payment Links)
Retrieve Supported Countries
GET /payment-methods/payin/countries
This endpoint retrieves a list of countries available for payin methods.
Example Response
{
"status": "success",
"status_code": 200,
"message": "Request successful",
"data": [
{
"iso3": "ATG",
"name": "antigua and barbuda"
},
{
"iso3": "ARG",
"name": "argentina"
},
{
"iso3": "AUS",
"name": "australia"
},
{
"iso3": "AUT",
"name": "austria"
},
{
"iso3": "BHS",
"name": "bahamas the"
},
{
"iso3": "BRB",
"name": "barbados"
},
{
"iso3": "BEL",
"name": "belgium"
}
]
}Retrieve ID by Currency and Country
GET {{base_url}}api/v1/payment-methods/payin?country=chl¤cy=clp
Example: CHL = Chile iso3, CLP = Chilean Pesos iso3
Example Response
{
"status": "success",
"status_code": 200,
"message": "Request successful",
"data": [
{
"id": 21,
"method_name": "Bank Transfer",
"country": "CHL",
"currency": "CLP",
"payment_mode_code": null,
"Working_hours_start": null,
"Working_hours_end": null,
"required_extra_data": null,
"base_currency": "CLP"
},
{
"id": 22,
"method_name": "Bank Transfer",
"country": "CHL",
"currency": "CLP",
"payment_mode_code": null,
"Working_hours_start": null,
"Working_hours_end": null,
"required_extra_data": null,
"base_currency": "CLP"
},
{
"id": 23,
"method_name": "Bank Transfer",
"country": "CHL",
"currency": "CLP",
"payment_mode_code": null,
"Working_hours_start": null,
"Working_hours_end": null,
"required_extra_data": null,
"base_currency": "USD"
}
]
}Get All Payins (History)
GET {{base_url}}/api/v1/wallet/deposits/ (authenticated)
Example Response
{
"status": "success",
"status_code": 200,
"message": "Records retrieved successfully",
"data": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
"user_id": 4,
"amount": 8.736,
"gateway": "20",
"currency": "BRL",
"created_at": "2025-02-19T21:54:20.000000Z",
"updated_at": "2025-02-19T22:02:07.000000Z",
"raw_data": null,
"status": "success",
"deposit_currency": "USD",
"receive_amount": "1.5253056",
"deposit_gateway": {
"id": 20,
"method_name": "Pix",
"country": "BRA",
"currency": "BRL",
"payment_mode_code": null,
"Working_hours_start": null,
"Working_hours_end": null,
"required_extra_data": null,
"base_currency": "BRL,USD"
}
}
],
"pagination": {
"total": 7,
"per_page": 10,
"current_page": 1,
"last_page": 1,
"next_page_url": null,
"prev_page_url": null
}
}Get Payins by Filter
To filter payins, add query parameters to the GET request.
gateway
gateway id value
23
currency
currency
CLP
start_date
the date to start the filter
2025-04-27
end_date
the date to end the filter
2025-04-27
GET {{base_url}}/api/v1/wallet/deposits?{{parameter}}={{query}}
Example Response (filtered)
{
"status": "success",
"status_code": 200,
"message": "Records retrieved successfully",
"data": [
{
"id": "xxxx",
"user_id": xxxx,
"amount": 2000,
"gateway": "23",
"currency": "CLP",
"created_at": "2025-04-28T11:11:30.000000Z",
"updated_at": "2025-04-28T11:11:33.000000Z",
"raw_data": null,
"status": "pending",
"deposit_currency": "CLP",
"receive_amount": "2030",
"customer_id": xxxx,
"deposit_gateway": {
"id": 23,
"method_name": "Bank Transfer",
"country": "CHL",
"currency": "CLP",
"payment_mode_code": null,
"Working_hours_start": null,
"Working_hours_end": null,
"required_extra_data": null,
"base_currency": "USD"
}
}
// ... more records
],
"pagination": {
"total": 6,
"per_page": 10,
"current_page": 1,
"last_page": 1,
"next_page_url": null,
"prev_page_url": null
}
}Best Practices for Payin
Using Quote ID vs Direct Amount
Recommended: Use Quote ID
Provides rate certainty for 5 minutes
Shows exact fees upfront
Better user experience with transparent pricing
Prevents rate fluctuation during payment process
Alternative: Direct Amount
Uses current market rate
Rate may change between API call and payment completion
Simpler for basic integrations
Workflow Comparison
With Quote ID (Recommended)
Step 1: Generate quote
POST /api/v1/exchange-rate
{
"from_currency": "CLP",
"to_currency": "USD",
"method_id": 22,
"method_type": "payin",
"amount": 11000
}Step 2: Create payin using quote_id
POST /api/v1/wallet/deposits/new
{
"gateway": 22,
"currency": "CLP",
"quote_id": "4a72ecf8-6c8a-4e38-9971-8aabe9f785ed"
}Stablecoin Funding
If you are looking to fund your Yativo USD balance using stablecoins (for payouts or fees), these endpoints will help.
Generate wallet address
POST {{base_url}}/api/v1/crypto/create-wallet
Request body:
{
"currency": "USDC_SOL" // or EURC_SOL
}Example response
{
"status": "success",
"status_code": 200,
"message": "Request successful",
"data": {
"id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx",
"is_customer": 1,
"customer_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx",
"coin_name": "USDC_SOL",
"wallet_address": "7Tzxxxxxxxx",
"wallet_currency": "USDC_SOL",
"wallet_network": "SOL",
"wallet_status": "active",
"wallet_balance": "0",
"created_at": "2024-11-05T07:15:37.000000Z",
"customer": {
"customer_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx",
"customer_name": "Jacob Customer",
"customer_email": "[email protected]",
"customer_phone": "+xxxxxx",
"customer_country": "xxxxxx",
"customer_address": {
"city": "xxxxx",
"state": "xxxxxx",
"number": "30",
"street": "Elm Street",
"country": "xxxxxx",
"zipcode": "241240"
},
"can_create_vc": 0,
"can_create_va": 0,
"customer_status": "pending",
"created_at": "2024-10-31T10:14:52.000000Z"
}
}
}Retrieve funding wallet address
GET {{base_url}}/api/v1/crypto/get-wallets
Wallet Address Funding History
GET all crypto funding history:
GET {{base_url}}/api/v1/crypto/deposit-histories
Get funding history for a particular wallet address:
GET {{base_url}}/api/v1/crypto/wallet/deposit/histories/{{wallet_address}}