Skip to main content
This guide walks you through everything you need to make your first successful payment with RemitFlex. By the end, you’ll have fetched a live conversion quote, created a payment, and confirmed its status — using the sandbox so no real funds are involved.

Prerequisites

Before you start, make sure you have:
  • A RemitFlex account. Sign up at dashboard.remitflex.com if you don’t have one yet.
  • An API key from your dashboard. The Authentication guide explains how to create one.
  • curl installed, or a JavaScript/Node.js environment ready.
All examples on this page use the sandbox base URL and a test API key (prefixed rf_test_). Sandbox payments never move real funds. When you’re ready to go live, swap in your live key and the production base URL.
The API base URL for all requests is:
https://api.remitflex.com/v1

1

Get Your API Key

Log in to the RemitFlex Dashboard, navigate to Settings → API Keys, and click Create new key. Give the key a descriptive name (for example, quickstart-test) and select the Sandbox environment.Copy the key immediately — it is only shown once. Store it in an environment variable so you never hard-code it in your source files:
export REMITFLEX_API_KEY="rf_test_YOUR_KEY_HERE"
Using an environment variable from the start builds the right habit before you move to production keys. See the Authentication guide for a full security checklist.
2

Fetch a Conversion Quote

Before creating a payment, request a quote to see the exact exchange rate, converted amount, and fee that will apply. Quotes expire after five minutes, so request one immediately before you intend to create a payment.
curl --request POST \
  --url https://api.remitflex.com/v1/conversions/quote \
  --header "Authorization: Bearer $REMITFLEX_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "from_currency": "USDC",
    "to_currency": "USD",
    "amount": 1000
  }'
A successful response looks like this:
{
  "quote_id": "qt_01HX4N2Q...",
  "from_currency": "USDC",
  "to_currency": "USD",
  "amount": 1000,
  "converted_amount": 999.50,
  "exchange_rate": 0.9995,
  "fee": 0.50,
  "expires_at": "2024-01-15T10:35:00Z"
}
Note the quote_id — you can optionally attach it to your payment request to lock in this rate. If you omit it, RemitFlex generates a fresh quote at the moment of payment creation.
3

Create a Payment

With a quote in hand, create your first payment. This example sends 500 USDC from the US to a EUR bank account in Spain.
curl --request POST \
  --url https://api.remitflex.com/v1/payments \
  --header "Authorization: Bearer $REMITFLEX_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "amount": 500,
    "currency": "USDC",
    "destination_currency": "EUR",
    "recipient": {
      "name": "Maria Garcia",
      "account_number": "ES9121000418401234567891",
      "bank_code": "CAIXESBBXXX"
    },
    "reference": "Invoice #INV-2024-001",
    "corridor": "US-EU"
  }'
RemitFlex returns a payment object immediately with a pending status:
{
  "id": "pmt_01HX4N3R...",
  "status": "pending",
  "amount": 500,
  "currency": "USDC",
  "destination_currency": "EUR",
  "converted_amount": 461.25,
  "exchange_rate": 0.9225,
  "fee": 2.50,
  "recipient": {
    "name": "Maria Garcia",
    "account_number": "ES9121000418401234567891"
  },
  "created_at": "2024-01-15T10:30:00Z",
  "estimated_delivery": "2024-01-15T14:30:00Z"
}
Save the id field (here pmt_01HX4N3R...) — you’ll use it to track the payment’s progress.
4

Check Payment Status

Poll the payment endpoint or listen for a webhook event to track when the payment moves through processing, conversion, and settlement. To fetch the current status directly:
curl --request GET \
  --url https://api.remitflex.com/v1/payments/pmt_01HX4N3R... \
  --header "Authorization: Bearer $REMITFLEX_API_KEY"
The status field progresses through these values as the payment settles:
StatusMeaning
pendingPayment received and queued for processing
processingConversion and routing in progress
in_transitFunds sent to the recipient’s bank
completedRecipient’s bank confirmed delivery
failedPayment could not be completed — check failure_reason
In production, we recommend subscribing to webhook events rather than polling. Webhooks deliver real-time status updates to your server the moment a payment changes state.

Next Steps

You’ve made your first RemitFlex payment. Here’s where to go from here:

Send a Payment

Dive deeper into payment creation — corridors, recipient validation, idempotency keys, and error handling.

API Reference

Browse the complete API reference for every endpoint, request parameter, and response field.