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.

POST /api/v1/wallet/deposits/new

Parameter
Required
Description

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

Method
Exchange Rate
Amount Required
Rate Lock

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 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&currency=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.

Parameter
Query
Example

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

1

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"
}
2

Without Quote ID

Single step with current market rate:

POST /api/v1/wallet/deposits/new
{
    "gateway": 22,
    "amount": 11,
    "currency": "CLP"
}

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}}