Ria Money Transfer is Ria Financial's consumer remittance Android client — a Euronet Worldwide brand — for people who send cash pickup, bank deposit, mobile-wallet payouts, home delivery, ATM pickup, PIX, UPI and debit-card payouts from the United States, Spain and other send markets to family abroad. Senders price a corridor on Calculator, fund with a stored debit or credit card (Adyen and Cardinal 3-D Secure), a Plaid-linked bank account, Fintoc open banking in Chile, Google Pay or a Ria wallet, then follow the transfer with an order PIN on Activity. The same logged-in shell holds saved recipients, Find Locations, Onfido / Veriff / Signicat identity checks, BlinkCard scan, promotions, ATM payout and in-app customer-care chat. It competes with Western Union, MoneyGram, Remitly, Xoom and Wise for US- and Europe-origin family remittances into Mexico, India, Brazil, Nigeria, Vietnam and Indonesia.
Quoted corridors return amountFrom, exchangeRate and transferFee per delivery method — cash pickup, bank deposit, mobile wallet, home delivery, ATM, PIX and UPI — plus promo and correspondent-payout fee splits when a code applies. Signed-in Activity rows page historical orders by OrderNo and Pin, with beneficiary names, DelivMethod, ShownOrderStatus and payout-agent ids; a tracking lookup then hydrates ETA, cancellation eligibility and event steps for the same PIN.
Recipient books expose bank routing, PIX/VPA identifiers and mobile-wallet account numbers used to pre-fill the next send, while payment-account snapshots keep masked debit cards and Plaid-verified bank accounts for checkout. KYC profile cards carry CustomerId, date of birth, identifications and HasKYCDone so a compliance desk can tell whether Onfido, Veriff or Signicat still has to run. Treasury, receive-side ops and location-finder tools consume the same quote, PIN, recipient and agent-location fields; openData Studio turns them into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Create anonymous session
GET
/v1/sessions/bootstrapopendataOpens the app's channel session used by every later quote, send, track and profile call, minting a JWT and resolving ISO/IP country plus feature flags.
Auth: Anonymous bootstrap (no Authorization header on the request). The returned authToken.jwtToken is then sent as Authorization: Bearer on later calls, together with channel, device-id, market and app-version headers.
- authToken.jwtToken
- authToken.tokenType
- authenticationResult
- versionInfo
- customerProfile
- featureFlags
- isoCode
- ipIsoCode
- cultureCode
- customerId
GET /v1/sessions/bootstrap?deviceId=a3f1c9e2&platform=android HTTP/1.1 X-Client-Channel: mobile X-Market: US Accept: application/json{ "authToken": { "jwtToken": "<session_token>", "tokenType": "Bearer" }, "authenticationResult": {"RetVal": 1, "RetMsg": "Success"}, "versionInfo": {"apiVersion": "4.0.0"}, "customerProfile": null, "featureFlags": {"new_send_money_flow": true}, "session": {"isoCode": "US", "ipIsoCode": "US", "cultureCode": "en-US", "customerId": null} }Sign in sender
POST
/v1/identity/loginosintAuthenticates the sender and returns the access/refresh token pair plus the UserId used to paint the dashboard and gate later customer calls.
Auth: Session token from the bootstrap call as a Bearer Authorization header. Body carries username, password, deviceToken, deviceId and sessionId. An HTTP 307 response signals an OTP step-up that continues on the challenge-verify call.
- access_token
- token_type
- refresh_token
- expires_in
- HasValidDeviceToken
- VerifiedDevice
- PhoneUpdateRequired
- BirthDateStepUpRequired
- UserId
- LoginName
- ReservedCustomerId
- IsLiteUser
- RetVal
POST /v1/identity/login HTTP/1.1 Authorization: Bearer <session_token> X-Client-Channel: mobile Content-Type: application/json { "username": "[email protected]", "password": "<password>", "deviceToken": "devtok_9c21", "deviceId": "a3f1c9e2", "sessionId": "sess_18af" }{ "Value": { "access_token": "at_7e21", "token_type": "Bearer", "refresh_token": "rt_4c90", "expires_in": 3600, "HasValidDeviceToken": true, "VerifiedDevice": "devtok_9c21", "PhoneUpdateRequired": false, "BirthDateStepUpRequired": false, "User": { "UserId": 8842103, "LoginName": "[email protected]", "ReservedCustomerId": 5510021, "IsLiteUser": false } }, "Result": {"RetVal": 1, "RetMsg": "Success"} }Validate login OTP
POST
/v1/identity/login/challenge/verifyosintConsumes the email/SMS one-time code issued after sign-in step-up and mints the same access_token pair as a password login.
Auth: Session token as a Bearer Authorization header. Completes the OTP step-up that follows sign-in, carrying referenceValue, code and securityCode.
- access_token
- token_type
- refresh_token
- expires_in
- HasValidDeviceToken
- RetVal
- RetMsg
POST /v1/identity/login/challenge/verify HTTP/1.1 Authorization: Bearer <session_token> X-Client-Channel: mobile Content-Type: application/json { "referenceValue": "ref_otp_331", "code": "482193", "securityCode": "sc_19" }{ "Value": { "access_token": "at_7e21", "token_type": "Bearer", "refresh_token": "rt_4c90", "expires_in": 3600, "HasValidDeviceToken": true }, "Result": {"RetVal": 1, "RetMsg": "Success"} }Read signed-in user profile
GET
/v1/senders/meosintReturns the signed-in user card — login name, linked CustomerId, lite/omni flags and KYC status — used to paint Account and gate send-money.
Auth: Bearer access_token (or the session token right after sign-in), plus channel, device-id and market headers.
- UserId
- ReservedCustomerId
- LoginName
- IsLiteUser
- IsLinkedToCustomer
- IsOmniCustomer
- emailVerified
- CustomerId
- CustomerNumber
- FirstName
- FirstLastName
- DateOfBirth
- HasKYCDone
- OnHold
- IdentityVerification.status
- kycResult
GET /v1/senders/me HTTP/1.1 Authorization: Bearer <access_token> X-Client-Channel: mobile X-Market: US Accept: application/json{ "UserId": 8842103, "ReservedCustomerId": 5510021, "LoginName": "[email protected]", "IsLiteUser": false, "IsLinkedToCustomer": true, "IsOmniCustomer": false, "MustAcceptedNewLicense": false, "emailVerified": true, "Customer": { "CustomerId": 5510021, "CustomerNumber": "C5510021", "FirstName": "Maria", "FirstLastName": "Santos", "DateOfBirth": "1991-04-18", "EmailAddress": "[email protected]", "CountryId": 1, "HasKYCDone": true, "OnHold": false, "City": "San Jose", "State": "CA", "PostalCode": "95131" }, "IdentityVerification": {"status": "Verified", "kycResult": "PASS", "attemptsLeft": 3} }Read customer KYC profile
GET
/v1/senders/me/kyc-profileosintLoads the editable customer profile used by Account Settings — address, DOB, occupation, tax-id flag and identification verification status.
Auth: Bearer access_token after sign-in.
- id
- firstName
- lastName
- address
- city
- state
- postalCode
- country
- dateOfBirth
- emailAddress
- nationality
- occupation
- hasTaxId
- disabled
- mobilePhone
- identification.documentVerificationStatus
- idVerificationRequired
GET /v1/senders/me/kyc-profile HTTP/1.1 Authorization: Bearer <access_token> X-Client-Channel: mobile X-Market: US Accept: application/json{ "id": 5510021, "firstName": "Maria", "middleName": "", "lastName": "Santos", "address": "2211 N 1st St", "city": "San Jose", "state": "CA", "postalCode": "95131", "country": "US", "dateOfBirth": "1991-04-18", "emailAddress": "[email protected]", "nationality": "US", "occupation": "Software engineer", "hasTaxId": true, "disabled": false, "mobilePhone": {"countryCode": "1", "number": "4155550123"}, "identification": { "documentVerificationStatus": "Verified", "idVerificationRequired": false }, "willReceiveSmsNotifications": true, "willReceiveEmailNotifications": true }Quote corridor fees
POST
/v1/quotes/estimateopenfinanceCalculator lookup: send/receive amounts, currencies and delivery method return FX, transfer fee, tax, promo and correspondent-payout fee used to paint the quote before booking.
Auth: A session token is enough for the logged-out Calculator; signed-in calls add the access_token. Reachable anonymously alongside the country catalog and feature lookups.
- amountFrom
- amountTo
- exchangeRate
- exchangeRatePromo
- transferFee
- originalCustomerFee
- promoAmount
- taxAmount
- totalFeesAndTaxes
- totalAmount
- isPromoValid
- sendAmountUSD
- isEarlyReleaseLikely
- correspondentPayoutFeeAmount
- sendAmountLimit
POST /v1/quotes/estimate HTTP/1.1 Authorization: Bearer <session_token> X-Client-Channel: mobile X-Market: US Content-Type: application/json { "selections": { "countryTo": "MX", "amountFrom": 200, "amountTo": null, "currencyFrom": "USD", "currencyTo": "MXN", "paymentMethod": "DebitCard", "deliveryMethod": "BankDeposit", "shouldCalcAmountFrom": false, "shouldCalcVariableRates": true, "shouldCalcFeesForPaymentMethods": ["DebitCard", "BankAccount"], "promoCode": "" } }{ "model": { "transferDetails": { "calculations": { "amountFrom": 200.00, "amountTo": 3704.00, "exchangeRate": 18.52, "exchangeRatePromo": 18.52, "transferFee": 3.99, "originalCustomerFee": 3.99, "promoAmount": 0, "taxAmount": 0, "totalFeesAndTaxes": 3.99, "totalAmount": 203.99, "isPromoValid": false, "sendAmountUSD": 200.00, "isEarlyReleaseLikely": true, "correspondentPayoutFeeAmount": 0, "sendAmountLimit": 2999.00 } } } }Page transfer activity
POST
/v1/senders/{customerId}/activity/searchopenbankingPages the Activity list for the signed-in customer — order number, PIN, amounts, beneficiary, delivery method and payout-agent ids used to track and cancel.
Auth: Bearer access_token. The path customerId is the ReservedCustomerId / CustomerId returned with the user profile.
- Id
- OrderNo
- Pin
- AmountFrom
- TransferAmount
- PaymentCurrency
- CurrencyTo
- CountryFrom
- CountryTo
- BeneficiaryFirstName
- BeneficiaryFirstLastName
- BenNameId
- DelivMethod
- DelivMethodName
- BankName
- PayAgentId
- ShownOrderStatus
- Cancellable
- EnteredTime
- TotalAmount
POST /v1/senders/5510021/activity/search HTTP/1.1 Authorization: Bearer <access_token> X-Client-Channel: mobile Content-Type: application/json { "Page": 0, "PageSize": 20 }[ { "Id": 90018422, "OrderNo": "US12345678", "Pin": "12345678", "AmountFrom": 200.00, "TransferAmount": 3704.00, "PaymentCurrency": "USD", "CurrencyTo": "MXN", "CountryFrom": "US", "CountryTo": "MX", "BeneficiaryFirstName": "Luis", "BeneficiaryFirstLastName": "Santos", "BenNameId": 44102, "DelivMethod": 2, "DelivMethodName": "BankDeposit", "BankName": "BBVA Mexico", "PayAgentId": 2044, "PayAgentLocId": 88121, "ShownOrderStatus": "Available", "OrderStatusCategory": 2, "Cancellable": true, "EnteredTime": "2026-10-18T16:04:11Z", "DateAvailablePayout": "2026-10-18T16:12:00Z", "TotalAmount": 203.99, "TaxAmount": 0, "Barcode": "*12345678*" } ]Track order by PIN
POST
/v1/orders/status-lookupopenbankingTrack Transfer detail for an order number / PIN — amounts, FX, fee, ETA, cancellation flag and the event timeline painted on Activity.
Auth: Bearer access_token (or the session token for a PIN typed into Track Transfer while logged out).
- orderId
- orderNumber
- pin
- amountFrom
- amountTo
- exchangeRate
- customerFee
- customerTax
- totalAmount
- shownOrderStatus
- isEligibleForCancellation
- eta
- agentToId
- cashPayoutType
- recipient.firstName
- events.event
- events.date
POST /v1/orders/status-lookup HTTP/1.1 Authorization: Bearer <access_token> X-Client-Channel: mobile Content-Type: application/json { "orderNumber": "US12345678", "getEventDetails": true, "getEta": true }{ "orderId": 90018422, "orderNumber": "US12345678", "pin": "12345678", "amountFrom": 200.00, "amountTo": 3704.00, "currencyFrom": "USD", "currencyTo": "MXN", "countryTo": "MX", "exchangeRate": 18.52, "customerFee": 3.99, "customerTax": 0, "totalAmount": 203.99, "shownOrderStatus": "Available", "isEligibleForCancellation": true, "isModifiable": false, "eta": "2026-10-18T18:00:00Z", "agentToId": 2044, "agentTo": {"name": "BBVA Mexico"}, "cashPayoutType": null, "recipient": {"id": 44102, "firstName": "Luis", "lastName1": "Santos"}, "events": [ {"event": "Created", "description": "Transfer created", "date": "2026-10-18T16:04:11Z"}, {"event": "Available", "description": "Ready for payout", "date": "2026-10-18T16:12:00Z"} ] }Book a new transfer
PUT
/v1/senders/{customerId}/orders/placementsopenfinancePlaces the remittance after Calculator and recipient selection; success returns OrderNo, PIN and barcode used on the receipt and Activity row.
Auth: Bearer access_token. customerId comes from the user profile. Strong-customer-authentication / 3-D Secure and scam-alert step-ups may follow on a separate order-completion call.
- BeneficiaryAsACustomerId
- DeliveryMethodId
- CountryTo
- SendAmount
- PayoutAmount
- ExchangeRate
- SendFee
- Tax
- CurrencyFrom
- CurrencyTo
- PayAgentId
- PayAgentLocId
- PaymentMethodId
- PromoCode
- RetVal
- OrderNo
- PIN
- Barcode
PUT /v1/senders/5510021/orders/placements HTTP/1.1 Authorization: Bearer <access_token> X-Client-Channel: mobile Content-Type: application/json { "BeneficiaryAsACustomerId": 44102, "DeliveryMethodId": "2", "CountryTo": "MX", "SendAmount": 200.00, "PayoutAmount": 3704.00, "ExchangeRate": 18.52, "SendFee": 3.99, "Tax": 0, "CurrencyFrom": "USD", "CurrencyTo": "MXN", "AmountTypeId": 1, "PayAgentId": 2044, "PayAgentLocId": 88121, "PaymentMethodId": "DebitCard", "PromoCode": "", "AcceptsTermsAndConditions": true, "DeviceTime": "2026-10-20T18:04:11Z", "ProvidedFields": [] }{ "Result": {"RetVal": 0, "RetMsg": "Success"}, "Value": { "OrderNo": "US12345678", "PIN": "12345678", "Barcode": "*12345678*" } }List saved recipients
GET
/v1/senders/me/payeesosintReturns the signed-in sender's recipient book — names, destination country and payout rails (bank, PIX, VPA, mobile wallet) used to pre-fill Send Money.
Auth: Bearer access_token.
- id
- firstName
- lastName1
- country
- bankName
- bankRoutingCode
- bankAccountNumber
- bankAccountType
- bankBicSwift
- pixIdType
- vpaIdType
- mobileWalletAccountNo
- bankAgentId
- bankLocationCity
GET /v1/senders/me/payees HTTP/1.1 Authorization: Bearer <access_token> X-Client-Channel: mobile X-Market: US Accept: application/json[ { "id": 44102, "firstName": "Luis", "middleName": "", "lastName1": "Santos", "lastName2": "", "country": "MX", "bankName": "BBVA Mexico", "bankRoutingCode": "012345678", "bankAccountNumber": "XXXXXX4411", "bankAccountType": "Checking", "bankBicSwift": "BCMRMXMM", "pixIdType": null, "vpaIdType": null, "mobileWalletAccountNo": null } ]List cash-pickup locations
GET
/v1/payout-pointsopendataFind Locations / cash-pickup picker: agent, city and amount return payout offices with address, geo, hours and phone.
Auth: A session token is enough (anonymous Calculator and Find Locations). Signed-in calls add the access_token.
- agentToId
- agentToName
- locationId
- locationName
- locationAddress
- locationCity
- locationState
- locationType
- latitude
- longitude
- phone
- businessHours
- currency
- payoutLocation
- collectionLocation
GET /v1/payout-points?agentToId=2044&cityId=9102&state=JAL&countryTo=MX&deliveryMethod=OfficePickup&transferAmount=3704¤cyTo=MXN&sendAmount=200 HTTP/1.1 Authorization: Bearer <session_token> X-Client-Channel: mobile Accept: application/json[ { "agentToId": 2044, "agentToName": "Elektra Guadalajara Centro", "locationId": 88121, "locationName": "Elektra Centro", "locationAddress": "Av. Juarez 120", "locationAddress2": "", "locationCity": "Guadalajara", "locationState": "JAL", "locationType": "Office", "latitude": 20.6767, "longitude": -103.3475, "phone": "+523334445566", "businessHours": "09:00-21:00", "currency": "MXN", "payoutLocation": true, "collectionLocation": true } ]List payment accounts
GET
/v1/senders/me/funding-instrumentsopenfinanceLoads stored funding instruments for checkout — Plaid-verified bank accounts and debit/credit cards with masked PAN, expiry and CVN-required flag.
Auth: Bearer access_token.
- bankAccounts
- cardAccounts
- accountId
- accountAlias
- bankName
- localRoutingCode
- maskedAccountNumber
- verificationStatus
- isDebit
- isCvnRequired
- accountExpirationMonth
- accountExpirationYear
- paymentMethod
GET /v1/senders/me/funding-instruments HTTP/1.1 Authorization: Bearer <access_token> X-Client-Channel: mobile X-Market: US Accept: application/json{ "bankAccounts": [ { "accountId": "ba_441", "accountAlias": "Chase checking", "accountCountry": "US", "accountCurrency": "USD", "accountType": "Checking", "bankName": "Chase", "localRoutingCode": "021000021", "maskedAccountNumber": "•••• 4411", "verificationStatus": "Verified", "paymentMethod": "BankAccount", "disabled": false } ], "cardAccounts": [ { "accountId": "ca_882", "accountType": "Visa", "isDebit": true, "isCvnRequired": true, "isExpired": false, "accountExpirationMonth": 12, "accountExpirationYear": 2028, "maskedAccountNumber": "•••• 4242", "paymentMethod": "DebitCard", "firstName": "Maria", "lastName": "Santos" } ] }List destination mobile wallets
GET
/v1/payout-rails/walletsopendataCatalog of mobile-wallet payout providers for a destination corridor, used by the Mobile Wallet delivery-method picker.
Auth: Session token or access_token as a Bearer Authorization header. Query parameters countryTo, currencyTo and currencyFrom.
- Wallets
- AggregatorId
- WalletId
- Name
- AgentName
GET /v1/payout-rails/wallets?countryTo=NG¤cyTo=NGN¤cyFrom=USD HTTP/1.1 Authorization: Bearer <session_token> X-Client-Channel: mobile Accept: application/json{ "Wallets": [ {"AggregatorId": 3102, "WalletId": 881, "Name": "MTN MoMo", "AgentName": "MTN Nigeria"}, {"AggregatorId": 3104, "WalletId": 882, "Name": "Airtel Money", "AgentName": "Airtel Nigeria"} ] }Load country catalog and payment methods
GET
/v1/catalog/marketsopendataBootstrap catalog for Calculator and registration: send-to / registration countries and the payment methods offered in the sender's country.
Auth: Session token as a Bearer Authorization header; readable anonymously, like the Calculator bootstrap and feature lookups.
- CountryId
- Countries
- Name
- NameAbbrev
- IsRegistrationCountry
- IsSendToCountry
- IsFavoriteSendToCountry
- PaymentMethods
GET /v1/catalog/markets?CountryId=1&locale=en-US HTTP/1.1 Authorization: Bearer <session_token> X-Client-Channel: mobile Accept: application/json{ "CountryId": 1, "Countries": [ {"Name": "Mexico", "NameAbbrev": "MX", "IsRegistrationCountry": false, "IsSendToCountry": true, "IsFavoriteSendToCountry": true}, {"Name": "United States", "NameAbbrev": "US", "IsRegistrationCountry": true, "IsSendToCountry": false, "IsFavoriteSendToCountry": false} ], "PaymentMethods": { "Value": [ {"id": "DebitCard", "name": "Debit card"}, {"id": "BankAccount", "name": "Bank account"} ] } }
Data categories
- quotes
- transfers
- recipients
- kyc-profile
- payment-accounts
- locations
Where teams use this data
Corridor quote reconciliation
A treasury desk pulls amountFrom, exchangeRate, transferFee and correspondentPayoutFeeAmount per delivery method before booking, and diffs them against the bank's own FX sheet for US-MX and ES-CO corridors.
PIN tracking for receive-side ops
A payout partner watches OrderNo / Pin plus shownOrderStatus, eta and events so an Elektra or BBVA cashier knows when a cash-pickup is Available without calling the sender.
Recipient-book prefill for send-again
A family-remittance CRM stores firstName, lastName1, bankRoutingCode and pixIdType from the recipient book so the next send skips bank-detail re-entry and still hits the same PayAgentId.
KYC gate for higher limits
A compliance workflow reads HasKYCDone, identification.documentVerificationStatus and IdentityVerification.kycResult before lifting sendAmountLimit, and only then lets NewTransaction accept a larger SendAmount.
Frequently asked questions
What quote fields does the Calculator expose?
The quote call returns amountFrom, amountTo, exchangeRate, transferFee, originalCustomerFee, taxAmount, totalAmount, promo flags, sendAmountUSD and correspondentPayoutFeeAmount per delivery method (cash pickup, bank deposit, mobile wallet, home delivery, ATM, PIX, UPI).
How is a booked transfer identified?
Placing a transfer returns OrderNo, PIN and Barcode. The Activity list pages the same OrderNo/Pin with ShownOrderStatus, and the order-status lookup adds eta, isEligibleForCancellation and the events timeline.
How does the app authenticate senders?
An anonymous session token is issued first, then the sender signs in with a username and password; an email or SMS one-time code can step the login up. Later calls send the token as a Bearer Authorization header together with channel, device-id and market headers.
Which payout rails show up on a recipient?
The recipient book carries bankName, bankRoutingCode, bankAccountNumber, bankBicSwift, pixIdType, vpaIdType and mobileWalletAccountNo, plus the PayAgentId used for cash pickup and mobile-wallet providers such as MTN MoMo.
Apps similar to Ria Money Transfer
- Western Union Send Money Now — Western Union sends money online, in its app, or at agent locations to bank accounts, mobile wallets, or cash pickup in 200 countries and territories.
- Remitly: Send Money & Transfer — Remitly is a Seattle-based online remittance service that sends to more than 170 countries, with payout as a bank deposit, mobile wallet, or cash pickup.
- Xoom: Send Money & Transfer — Xoom is PayPal's digital money-transfer service for sending from the United States, Canada, the United Kingdom and select European countries to bank accounts, mobile wallets or cash pickup in 160 countries.
- Wise: International Transfers — Wise (formerly TransferWise) is a London-based international money app that sends global transfers, holds a multi-currency account, and issues a Wise Multi-Currency Card.
- MoneyGram — MoneyGram is a Dallas-based peer-to-peer money-transfer company whose partners span more than 200 countries and territories for sending and receiving funds.
- WorldRemit — WorldRemit is a London-based digital remittance app, owned by Zepz, that sends money to more than 130 countries via bank transfer, cash pickup, mobile money, or airtime top-up.
- Taptap Send: Money Transfer — Taptap Send is an international remittance app for sending money to destinations in Africa, Asia and Latin America.
- Xe Money Transfer & Currency — Xe is a Canadian foreign-exchange site and app, a Euronet Worldwide subsidiary since 2015, that sends consumer transfers to over 170 countries in 100-plus currencies as a bank deposit, mobile wallet, or cash pickup.
Topics
- Ria Money Transfer API
- Ria remittance quotes
- Ria PIN tracking
- Ria recipient book
- Ria KYC profile
- Euronet Ria data API
- cash pickup locations API
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use