Getting Started

Authentication

The Ria API uses two main types of authentication, however an additional header value of ClientIpAddress is required for each API call.

Basic Authentication

Basic authentication is required for all Ria API calls that do not need customer authentication. It is obtained by using your API username and password provided by RIA, combining them so that you have a string like username:password, then Base 64 encoding it.

For Example, if my Ria API username is: 'MySampleUser' and my password is: 'MySamplePassword', you would obtain the basic authentication header by base 64 encoding the string 'MySampleUser:MySamplePassword' to produce the value: TXlTYW1wbGVVc2VyOk15U2FtcGxlUGFzc3dvcmQ=

Then you would pass this in as a header value: Authorization Basic TXlTYW1wbGVVc2VyOk15U2FtcGxlUGFzc3dvcmQ=

Sample (C#):

using (var httpClient = new HttpClient { BaseAddress = new Uri(ConfigConstants.ApiBaseUri) }) { httpClient.DefaultRequestHeaders.Add("ClientIpAddress", IpAddressHelper.GetIpAddress().ToString()); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes("MySampleUser:MySamplePassword"))); ... }

Customer Authentication

API calls that deal with customer-specific data require customer authentication. This is obtained by providing the customer's username and password (in conjunction with basic authentication from above) to the /Authenticate endpoint to get a customer token.

The customer token is then added to the header for every subsequent API call, identifying you and the customer to the Ria API. The tokens are unique and expire after 15 minutes, providing a mock "session" to the RESTful Ria API.

Sample (C#):

using (var httpClient = new HttpClient { BaseAddress = new Uri(ConfigConstants.ApiBaseUri) }) { httpClient.DefaultRequestHeaders.Add("ClientIpAddress", IpAddressHelper.GetIpAddress().ToString()); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes("MySampleUser:MySamplePassword"))); httpClient.DefaultRequestHeaders.Add("CustomerId", username); httpClient.DefaultRequestHeaders.Add("CustomerPassword", password); var httpResponseMessage = httpClient.GetAsync("/Authenticate").Result; var token = httpResponseMessage.Headers.GetValues("Token").Single(); }

The token is returned in the response body of /Authenticate. Once the customer token is obtained, pass it into the authorization header following the word 'Session' to receive a response from API calls that require it.

Sample (C#):

using (var httpClient = new HttpClient { BaseAddress = new Uri(ConfigConstants.ApiBaseUri) }) { httpClient.DefaultRequestHeaders.Add("ClientIpAddress", IpAddressHelper.GetIpAddress().ToString()); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Session", Token); ... }

Sample Calls

Here are a few simple sample calls to help get you up and running.

Get available send-to countries (C#):

using (var httpClient = new HttpClient { BaseAddress = new Uri(ConfigConstants.ApiBaseUri) }) { httpClient.DefaultRequestHeaders.Add("ClientIpAddress", IpAddressHelper.GetIpAddress().ToString()); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes("MySampleUser:MySamplePassword"))); var httpResponseMessage = httpClient.GetAsync("Location/GetSendToCountries").Result; string rawResponse = httpResponseMessage.Content.ReadAsStringAsync().Result; var countries = JsonConvert.DeserializeObject<CountryResponse>(rawResponse); }

Get previous orders for a customer (C#):

using (var httpClient = new HttpClient { BaseAddress = new Uri(ConfigConstants.ApiBaseUri) }) { httpClient.DefaultRequestHeaders.Add("ClientIpAddress", IpAddressHelper.GetIpAddress().ToString()); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Session", Token); var httpResponseMessage = httpClient.GetAsync("Payment/GetAvailablePaymentMethods").Result; string rawResponse = httpResponseMessage.Content.ReadAsStringAsync().Result; var customerPaymentAccounts = JsonConvert.DeserializeObject<CustomerPaymentAccountsResponse>(rawResponse); }

Error Codes

Click here For a list of exceptions and error codes generated by Ria Web Services

Endpoints

= Customer authentication is required

PushNotification

Method
Endpoint
Description
Security
POST

No documentation available.

Open
PUT

No documentation available.

Open

Location

Method
Endpoint
Description
Security
GET

Gets all countries available to send money to.

Open
GET

Gets all countries with at least one send to agent. Does not take into account restrictions or filtering.

Open
GET

Gets all countries available to send money to.

Open
GET

Gets all EU accepted countries for cards

Open
PUT

Gets all countries available to send money to

Open
PUT

Returns a list of available currencies that the country pays out in

Open
PUT

Returns a list of available delivery methods that a country supports

Open
PUT

Returns a list of cities where correpsondent locations are present for a given country. This method may be made obsolete by SearchAgentPayoutCities. This query does NOT include CityId in the result.

Open
PUT

Returns a list of available payout cities where correpsondent locations are present for a given country. This query includes CityId in the result.

Open
PUT

Returns a collapsed list of agent locations. For example, if a given brand contains 20 locations in a given city the results list will contain one entry with LocationCount = 20

Open
PUT

Returns an expanded list of agent locations. For example, if a given brand contains 20 locations in a given city the results list will contain 20 entries

Open
PUT

Search for agents based off of lat/long and get a list back sorted by nearest distance

Open
PUT

Get the percentage of agents with good geolocation data for a given country

Open
PUT

Pass in as much as you can about an address and get a lat/long value back

Open
PUT

Returns details for a given agent

Open
PUT

Returns details for an individual location

Open
PUT

Returns business hours for an individual location

Open
PUT

Get the brand logo for an agent

Open
PUT

Returns a list of cities for a given country.

Open
PUT

Get agent locations from core API This endpoint should not be in use, as references to them were removed from Public API and CST

Open

Ping

Method
Endpoint
Description
Security
PUT

Logs a message

Open

General

Method
Endpoint
Description
Security
PUT

Releases an IP address from the blocked list

PUT

No documentation available.

Open
PUT

No documentation available.

Open
PUT

No documentation available.

Payment

Method
Endpoint
Description
Security
GET

Gets available payment methods for use to fund a transaction

Open
GET

Gets all payment accounts associated with the current customer

PUT

Gets the base payment account information by ID associated with the current customer

PUT

Checks if the payment account can be added to the customer's account or not. Will throw an exception if the account cannot be added, explaining why not.

PUT

Adds a credit or debit card to the customers account

PUT

Update limited information about a customers credit or debit cards

POST

Validates a bank routing code and account number

PUT

Adds a bank account to the customers account

PUT

Update limited information about a customer's bank account

PUT

Verifies the bank account belongs to the customer via micro deposits

PUT

Deletes a payment account

PUT

Gets information about a card (ex. debit or credit) using BIN (first six numbers).

Open
PUT

Check if the card is enrolled in payer authentication.

PUT

Get the PayerAuth Setup response

PUT

Increments a payment account's AccountVerificationAttemtps count. Throws a PaymentAccountDisabledException if the payment account has exceeded the maximum number of attempts configured from 'maxAccountVerificationAttempts' in the Agents.config

PUT

Resets a payment account's AccountVerificationAttemtps count.

PUT

Resets a payment account's itemloginrequired status

Partner

Method
Endpoint
Description
Security
POST

Create a customer without login information.

Open
POST

Update a customer that is not tied to any login information.

GET

Get the customer's recipients.

POST

Create a recipient for a customer.

POST

Update a recipient's information

POST

Remove a recipient from a customer's account.

POST

Ensure that the money transfer order is valid. This will create a pre-order audit and return an identifier to be passed into the order creation call.

POST

Take the pre-order values generated from the validate order call, and insert an order with those details.

PUT

Gets the status of a Pre-Order

PUT

Finalizes an order by sending a confirm command.

POST

Cancel a money transfer order.

POST

Calculate the fee depending on transfer details.

Open
GET

Get order history for the customer

POST

No documentation available.

POST

Returns a customer order receipt in PDF format.

POST

No documentation available.

FeaturesFlag

Method
Endpoint
Description
Security
GET

Preview features release status

Open
GET

Get current user variant group of feature flag

Open
GET

Get All Features flag that setup in Posthog

Open
POST

Get All Features flag that setup in Posthog

Open
POST

Preview Enforce feature flag refresh status

Open

Pricing

Method
Endpoint
Description
Security
PUT

Calculate the fee required for the customer to send the given transaction

PUT

No documentation available.

PUT

No documentation available.

PUT

Load available services for a given situation

PUT

Load the exchange rate for the given transaction

PUT

Uses the exchange rate to calculate a pay-out amount given an amount to send

PUT

Uses the exchange rate to calculate a pay-in amount given an amount to receive

PUT

Validate the agent against the passed parameters. This will check limits and blocks.

Open
PUT

Return the amounts around the current order

Open
PUT

Check if a promotional code is valid for the transaction

Open
PUT

Get the min/max limit for the transaction details provided

Open
PUT

Get the TalonOne promocode for selected campaign

Open
PUT

Set the TalonOne promocode in cache

Open
PUT

Get the TalonOne promocode from cache

Open

Bank

Method
Endpoint
Description
Security
PUT

Searches for a bank in a given country. Either BankName (partial like 'ban' is ok) or BankCode (CLABE, routing number, swift code, IFSC) can be used

Open
PUT

Searches for bank locations given a specific BankId and Country, State, City

Open
PUT

Search for bank information and throw an exception if a matching bank is not found

Open
PUT

Validate that a bank code (CLABE, IFSC, routing number, etc) exists in the Ria database and can be used for bank deposit

Open

Customer

Method
Endpoint
Description
Security
GET

Get any special requirements or fields for customer registration.

Open
GET

Get any special requirements or fields for recipient registration.

Open
PUT

Request for a password reset if the customer is locked out of their account. Will send an email with password reset instructions

PUT

Request for a password reset if the customer is locked out of their account. Will send an email with password reset instructions

Open
PUT

This new endpoint is to make reset password backwards compatible with RMT2.0 FE and Mobile app. Request for a password reset if the customer is locked out of their account. Will send an email with password reset instructions

Open
PUT

After a password reset request has been made, use the customer code sent in email and the customer's new password to reset their password

Open
PUT

Validates a customer support code that is entered into the user's notes field. This is used during forgot password for customer's that don't have 3 security questions and can't get identity verification questions

Open
PUT

Change an account password with email, and old password (provide new password)

GET

Verify a customers account exists

PUT

Load a recipient that belongs to the currently authenticated customer

GET

Load all recipients for the current logged in customer

PUT

Load recipients for the current logged in customer filtered by CountryTo

PUT

Add a recipient to the currently authenticated customer

PUT

Update the given recipient attached to the currently authenticated customer

PUT

Update the given recipient attached to the currently authenticated customer

PUT

Save (insert or update) the recipient bank deposit details. Will also validate bank deposit details.

PUT

No documentation available.

Open
PUT

Add or update the customer's security questions.

PUT

Load the security questions tied to the customer account. Used for unathenticated request

Open
PUT

Load the compliance questions for registration (e.g. PoliticallyExposedPersons, PEP).

Open
PUT

Get the customer email from their unique user code (GUID)

Open
GET

Load the security questions tied to the current customer. Customer identity is read from authenticated token

PUT

Load the occupations available. Used for customer profile.

Open
GET

No documentation available.

Open
PUT

Load the occupations available based on the countryId.

Open
PUT

Verify the customer's security question/answer combination

Open
PUT

Verify a customer's security question/answer combination

PUT

Register a temporary customer. The customer can become a real customer through the customer matching process.

Open
POST

No documentation available.

Open
POST

Send verification code for an unauthenticated user

Open
POST

Send verification code for an already authenticated user.

POST

Verify MfaCode for an unauthenticated user

Open
POST

Send mfa emails.

Open
POST

Verify MfaCode for an authenticated user

PUT

Register a customer to use the online money transfer system

Open
POST

No documentation available.

Open
PUT

Add the current customer's personal information like name, date of birth, address and phone number.

PUT

Update the current customer's personal information like address and phone number.

PUT

No documentation available.

PUT

Update the current customer's email address.

GET

Validates a customer to ensure that they have filled out the required information to make an order. If no exceptions are thrown the customer is validated to make a money transfer online.

PUT

For registraiton: quickly checks to see if an email address is available or if it already belongs to a customer in our system.

Open
PUT

Pass in some fields to attempt to match this customer with an offline customer that has created ordres through a physical store

Open
PUT

Verify the customer's authentication code to ensure the device they received the code on is theirs

GET

Check the status/progress of the customer's authentication code verification.

GET

Generates a random customer's authentication code (to be sent to customer's mobile device which he/she can enter on the website for confirmation)

Open
GET

Send the device authorization code to the customer

PUT

Returns marketing info about a customer

PUT

No documentation available.

Open
POST

No documentation available.

Open
PUT

No documentation available.

GET

No documentation available.

GET

No documentation available.

Open
GET

No documentation available.

PUT

Get beneficiary details by BenId from Core api

POST

Get Customer on hold status

Open
POST

Validates customer personal info, used on expired fields update process

Logging

Method
Endpoint
Description
Security
POST

Log specific API request/responses from client side

Open
POST

Logs all the Segment Events in Private API coming from external sources

Open

Order

Method
Endpoint
Description
Security
PUT

Gets the fields required for a money transfer order

PUT

Remove Beneficiary item from cache

PUT

Gets the recipient-specific fields required for a money transfer order

PUT

Gets the recipients for the current logged in customer filtered by CountryTo and the recipient-specific fields required for a money transfer order

PUT

Gets the current fields required to enter or modify a new recipient for a bank deposit money transfer order

Open
PUT

No documentation available.

Open
PUT

Gets the unitary bank deposit settings for a country

Open
PUT

Gets the orders for the current customer between the date range provided

PUT

No documentation available.

PUT

No documentation available.

PUT

Gets the details of an order with the credentials of a logged in customer for use on track a transfer page

PUT

Checks if an order is eligible to edit the recipient name

PUT

Gets the details of a Pre-Order

PUT

Run the order through all of the back end validation logic. Fraud checks, agent limits, etc.

PUT

Initiates a Direct Bank Transaction, an offsite payment url will be returned with this call to complete payment.

PUT

Saves in cache the status for the transaction with a specific externalTransactionId.

PUT

Initiates a Fintoc Transaction, a Widget Token be returned with this call to complete payment.

POST

Get the status of the payment intent for Fintoc Direct Bank.

PUT

No documentation available.

Open
PUT

The main way to create a money transfer order. This must be called after order validation to receive a transaction id to pass into this endpoint. This will be obsolete when RMT2, Incomm are migrated over to RMT3.

PUT

Endpoint to complete the creation of order for a client-side authorized transaction.

PUT

The main way to create a money transfer order. This must be called after order validation to receive a transaction id to pass into this endpoint.

PUT

Finalizes an order by sending a confirm command.

PUT

Returns a customer order receipt in PDF format.

POST

Allows a third party to update the order decisioning result.

PUT

Gets the rejected orders for a particular day

PUT

Refund an order if it is eligible to be refunded(not already paid out)

PUT

Cancel a money transfer order.

GET

Process order status change notifications.

POST

Submit customer feedback for the transaction

Open
PUT

Logs the client side card authorization request. Returns logId

PUT

No documentation available.

PUT

Cancel incomplete money transfer order initiated by the client automatically.

PUT

Get order details by OrderId from Core api

PUT

Endpoint to complete the indefinite ACH order which is deemed not ER by accertify.

PUT

Cancel incomplete ACH ER money transfer order initiated by the client automatically.

PUT

End point to Confirm Adyen Order

Open
PUT

End point to Cancel Adyen Order , called from remittance webhook this is when capture settlement fails

Open
PUT

End point to Capture Adyen Order

Open
POST

Send the KYC response for Fraud decisioning

GET

Returns a count of customer's digital orders.

POST

No documentation available.

IdentityVerification

Method
Endpoint
Description
Security
PUT

No documentation available.

PUT

Gets the identity verification score for a customer

PUT

Gets the result of the answers to the identity verification questions

PUT

Verifies customer documentation (ex. picture of a driver license)

GET

Check to see if the current customer's ID is past expiration or is invalid in any way

PUT

Get a list of available id document types

PUT

Get details about id document types for the given conditions If you don't know the generic type yet, use GetAvailableDocumentTypes()

GET

Gets a list of provider-specific document types to be used for upload

POST

No documentation available.

Open

Email

Method
Endpoint
Description
Security
PUT

Sends an email for a user for the reset password

PUT

Sends an email for a user for success of Reset password

PUT

Sends an email for a user that has the SendEmail claim (to be used by core IT)

PUT

No documentation available.

PUT

Sends an email to customer service

PUT

Sends an email from the Send Together form

Open
PUT

Sends a contact us email

Open
PUT

Opts in a customer for promotional communications

Open
PUT

Opts in a customer for sweepstakes

Open
PUT

Sends the CCPA form to an email

Open
PUT

Sends an email based on the email request type

Open
PUT

Test version 2 of SendEmail

Open