The Rapyd Developer Hub

Welcome to the Rapyd developer hub. You'll find comprehensive guides and documentation to help you start working with Rapyd as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    SUPPORT
Suggest Edits

Rapyd Payment API Overview

 

This document describes the Rapyd eWallet and Payment API for developers. Use the API to manage customers and transactions.

The API consists of REST messages to communicate with the Rapyd servers. These messages have the following layers of protection against interception and tampering:

  • Messages and replies are sent with the HTTPS protocol.
  • All messages to the Rapyd servers are signed. See Request Signatures.

The API messages fall into the following logical groups:

eWallet

  • User - Methods for handling eWallet users.
  • Address - Methods for handling eWallet user addresses.
  • Identification - Special methods for verifying identities of users.
  • Account - Methods for handling eWallet accounts.
  • Funds - Methods for paycodes and refund codes.
  • Bank Account - Methods for handling eWallet bank accounts.
  • Card - Methods for handling cards associated with eWallet accounts.
  • Resource Methods - Methods for querying the Rapyd database.
  • WebHooks - Webhooks generated by eWallet internal processes.
  • Error Codes - Error codes generated by eWallet messages.

Payments - Information about the collection process.

  • Payment - Initiation and tracking of the collection of payments from the customer.
  • Refund - Refunds that are made against specific payments.
  • Payment Method - Methods of payment other than cards that the customer can use to make payments.

Customer Setup - Information about customers maintained in the system.

  • Customer - Identification and all other information relevant to the customer.
  • Address - The customer's address.
  • Card - One or more credit or debit cards for the customer.
  • Token - A token that represents a payment method for the customer. Relevant to merchants that do not have PCI Level 1 status.
  • Discount - A discount that applies to the customer or one of the customer's subscriptions.

Product and Service Setup - Information about the products and services that the merchant offers to customers.

  • Product - Details about goods and services.
  • SKU - Additional information relevant to physical goods.
  • Plan - Pricing structures.

Subscriptions - Arrangements for periodic payments.

  • Subscription - Framework for recurring payments.
  • Subscription Item - Goods and services that appear as line items in the subscription.
  • Coupon - Definitions of discounts offered to customers for goods or services.

Invoicing - Collecting charges to start the collection process.

  • Invoice - Summaries of the charges originating from subscriptions.
  • Invoice Item - Individual one-time charges that are included for collection together with subscription charges.

Metadata - Optional information designed by the merchant and included in any message.

Point of Sale API

  • Sessions - Methods for basic communication with the Rapyd servers.
  • Deposit - Methods related to paycodes and topup authorizations.
  • Withdrawal - Methods related to withdrawals and refund codes.

Testing - Techniques for running tests in the Point-of-Sale API.

Glossary - Terms used in this document.

 
Suggest Edits

Request Signatures

 

When you send an HTTP request to the Rapyd API servers, you must sign it.

The signing process helps secure requests in the following ways:

  • Verifies that the requester is an authorized user.
  • Protects data from tampering in transit. When Rapyd receives the request, the servers perform the same signature calculation using the header values transmitted with the request, and also with the secret key associated with the access key. If the values do not match, the request is denied.

The signature is calculated as a hash of a concatenation of specific strings, according to the following formula:

signature = BASE64 ( HASH ( salt + timestamp + access_key + secret_key + body_string ) )

where:

  • HASH is the SHA-256 hash function.
  • salt is a random numeric string for each request. Length: 8-16 digits.
  • timestamp is the time of the request, in Unix time.
  • access_key is a unique string for each user, assigned by Rapyd.
  • secret_key is a unique string for each user, assigned by Rapyd. The secret key is like a password, and is transmitted only as part of the calculated signature.
  • body_string is a valid JSON string (relevant to requests that contain a body).

CAUTION: You must not transmit the secret key in plaintext. Treat it like a password.

Int salt = 95188462337              // Randomly generated for each request.
Int timestamp = 1519037248
String accessKey = "1a2b2c59845de"; // The access key received from Rapyd.
String secretKey = "aee984befae64"; // The secret key received from Rapyd.
String bodyString = "{
'key1':'value1',
'key2':'value2'
}";

String hashCode = sha256( Integer.toString(salt) +
                          Integer.toString(timestamp) +
                          accessKey +
                          secretKey +
                          bodyString);
String signature = Base64.encode(hashCode); // The signature parameter to send.
function sign(input) {
	let crypto = require('crypto');
	let hash = crypto.createHash('sha256');
	hash.update(input);
	let signature = Buffer.from(hash.digest('hex')).toString('base64');
	return signature; }

let salt = '95188462337'; // Random numeric string.
let timestamp = Math.floor(new Date().getTime() / 1000);
let access_key = '1a2b2c59845de'; // Unique string for each user, assigned by Rapyd.
let secret_key = 'aee984befae64'; // Unique string for each user, assigned by Rapyd.

let body = {
	key1: 'value1',
	key2: 'value2'
};

let toSign = salt + timestamp + access_key + secret_key + JSON.stringify(body);
let signature = sign(toSign);
console.log(toSign: ${toSign});
console.log(signature: ${signature});
// This example shows how you might transmit the headers, including the signature.

curl -H "access_key: 1a2b2c59845de"
     -H "Content-Type: application/json"
     -H "salt: 95188462337"
     -H "signature: A1ZTJhOWM3ZDc5MDAw"
     -H "timestamp: 1519037248"
Suggest Edits

User Object - eWallet

 

The User object describes an eWallet user.

The eWallet User object contains the following fields:

Field
Type
Description

id

string

ID of the User object. Read-only.

email

string

Customer's email address.

first_name

string

Customer's first name.

last_name

string

Customer's family name.

phone_number

string

Phone number of the customer, in E.164 format.

 
Suggest Edits

Create eWallet User

Use the POST method to create an eWallet user.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/user

Body Params

email
string

Customer's email address. Optional.

first_name
string

Customer's first name. Optional.

last_name
string

Customer's family name. Optional.

phone_number
string

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/user
var request = require("request");

var options = { method: 'POST', url: 'https://sandboxapi.rapyd.net/v1/user' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/user");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "4a7c734e-a883-4d44-acb2-940d0c97cdb0"
    },
    "data": {
        "phone_number": "+447777777778",
        "email": "stainlessman@rapyd.net",
        "first_name": "Tony",
        "last_name": "Spark",
        "status": "ACT",
        "accounts": [
            {
                "id": "a7ed92e6-a806-11e7-9273-0ef1982c1e4a",
                "currency": "GBP",
                "alias": "GBP",
                "balance": 212.31
            },
            {
                "id": "fc00d8bc-a808-11e7-9273-0ef1982c1e4a",
                "currency": "USD",
                "alias": "USD",
                "balance": 50
            }
        ]
    }
}
 
Suggest Edits

Sync eWallet User OTP

Use the POST method to sync an eWallet user's one-time password (OTP).

This method validates the user OTP synchronization based on the shared key received on ‘User Creation’ or ‘OTP Reset’ methods against the Rapyd server.

Add description for OTP generation algorithm.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/user/otp

Body Params

otp
string

One-time password code generated using shared key.

phone_number
string

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/user/otp
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/user/otp' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/otp")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/user/otp");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/otp"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "00000000-0000-0000-0000-000000000000"
    }
}
 
Suggest Edits

Update eWallet User

Use the PUT method to update an eWallet user.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://sandboxapi.rapyd.net/v1/user

Body Params

email
string

Customer's email address. Optional.

first_name
string

Customer's first name. Optional.

last_name
string

Customer's family name. Optional.

phone_number
string

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request PUT \
  --url https://sandboxapi.rapyd.net/v1/user
var request = require("request");

var options = { method: 'PUT', url: 'https://sandboxapi.rapyd.net/v1/user' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://sandboxapi.rapyd.net/v1/user");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "4a7c734e-a883-4d44-acb2-940d0c97cdb0"
    },
    "data": {
        "phone_number": "+447777777778",
        "email": "stainlessman@rapyd.net",
        "first_name": "Tony",
        "last_name": "Spark",
        "status": "ACT",
        "accounts": [
            {
                "id": "a7ed92e6-a806-11e7-9273-0ef1982c1e4a",
                "currency": "GBP",
                "alias": "GBP",
                "balance": 212.31
            },
            {
                "id": "fc00d8bc-a808-11e7-9273-0ef1982c1e4a",
                "currency": "USD",
                "alias": "USD",
                "balance": 50
            }
        ]
    }
}
 
Suggest Edits

Disable eWallet User

Use the PUT method to disable an eWallet user.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://sandboxapi.rapyd.net/v1/user/disable

Body Params

phone_number
string

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request PUT \
  --url https://sandboxapi.rapyd.net/v1/user/disable
var request = require("request");

var options = { method: 'PUT',
  url: 'https://sandboxapi.rapyd.net/v1/user/disable' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/disable")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://sandboxapi.rapyd.net/v1/user/disable");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/disable"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "00000000-0000-0000-0000-000000000000"
    }
}
 
Suggest Edits

Enable eWallet User

Use the PUT method to enable an eWallet user that was previously disabled.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://sandboxapi.rapyd.net/v1/user/enable

Body Params

phone_number
string

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request PUT \
  --url https://sandboxapi.rapyd.net/v1/user/enable
var request = require("request");

var options = { method: 'PUT',
  url: 'https://sandboxapi.rapyd.net/v1/user/enable' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/enable")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://sandboxapi.rapyd.net/v1/user/enable");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/enable"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "00000000-0000-0000-0000-000000000000"
    }
}
 
Suggest Edits

Retrieve eWallet User

Use the GET method to retrieve an eWallet user.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/user

Path Params

phone_number
string
required

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/user
var request = require("request");

var options = { method: 'GET', url: 'https://sandboxapi.rapyd.net/v1/user' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/user");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "4a7c734e-a883-4d44-acb2-940d0c97cdb0"
    },
    "data": {
        "phone_number": "+447777777778",
        "email": "stainlessman@rapyd.net",
        "first_name": "Tony",
        "last_name": "Spark",
        "status": "ACT",
        "accounts": [
            {
                "id": "a7ed92e6-a806-11e7-9273-0ef1982c1e4a",
                "currency": "GBP",
                "alias": "GBP",
                "balance": 212.31
            },
            {
                "id": "fc00d8bc-a808-11e7-9273-0ef1982c1e4a",
                "currency": "USD",
                "alias": "USD",
                "balance": 50
            }
        ]
    }
}
 
Suggest Edits

Reset eWallet User OTP Shared Key

Use the GET method to reset an eWallet user's one-time password (OTP) shared key.

This method resets the OTP shared key for recycling the OTP generation.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/user/phone_number/otp

Path Params

phone_number
string
required

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/user/phone_number/otp
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/user/phone_number/otp' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/phone_number/otp")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/user/phone_number/otp");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/phone_number/otp"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "7cb19150-1921-4766-93a6-c8d6942f9549"
    },
    "data": {
        "otp_shared_key": "NEW_SHARED_KEY"
    }
}
 
Suggest Edits

Delete eWallet User

Use the DELETE method to delete an eWallet user.

This method allows a 3rd party partner to delete a user via the Rapyd API.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://sandboxapi.rapyd.net/v1/user/phone_number/otp

Path Params

phone_number
string
required

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request DELETE \
  --url https://sandboxapi.rapyd.net/v1/user/phone_number/otp
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://sandboxapi.rapyd.net/v1/user/phone_number/otp' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/phone_number/otp")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://sandboxapi.rapyd.net/v1/user/phone_number/otp");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/phone_number/otp"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "00000000-0000-0000-0000-000000000000"
    }
}
 
 
 
Suggest Edits

Address Object - eWallet

 

The Address object describes the address of an Ewallet customer.

The Address object contains the following fields:

Field
Type
Description

id

string

ID of the address object. Read-only.

city

string

City portion of the address.

country

string

The two-letter ISO 3166-1 ALPHA-2 code for the country.

To determine the code for a country, see List Countries.

line_1

string

Street and number.

metadata

Metadata object

A JSON object defined by the Rapyd partner.

phone_number

string

Phone number of the customer, in E.164 format.

postal_code

string

Postal code portion of the address.

state

string

State or province.

type

string

Type of address. One of the following:

  • billing
  • shipping
  • other
 
Suggest Edits

Create eWallet Address

Use the POST method to create an eWallet address.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/user

Path Params

user_id
string
required

Phone number of the customer, in E.164 format.

Body Params

line_1
string

Street and number.

city
string

City portion of the address.

state
string

State or province.

country
string

The two-letter ISO 3166-1 ALPHA-2 code for the country.

postal_code
string

Postal code portion of the address.

type
string

Type of address. One of the following: billing, shipping, other

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/user
var request = require("request");

var options = { method: 'POST', url: 'https://sandboxapi.rapyd.net/v1/user' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/user");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "4a7c734e-a883-4d44-acb2-940d0c97cdb0"
    },
    "data": {
        "id": "addr_761ac9763de5cb50fcf5acb2fd1c4fe8",
        "phone_number": "+447777777778",
        "line_1": "1234 Silicon Valley Drive",
        "city": "San Jose",
        "state": "CA",
        "country": "US",
        "type": "billing",
        "postal_code": "94102"
    }
}
 
Suggest Edits

Update eWallet Address

Use the PUT method to update an eWallet address.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://sandboxapi.rapyd.net/v1/user/user_id/address/address_id

Path Params

user_id
string
required

Phone number of the customer, in E.164 format.

address_id
string
required

ID of the eWallet Address object.

Body Params

line_1
string

Street and number.

city
string

City portion of the address.

state
string

State or province.

country
string

The two-letter ISO 3166-1 ALPHA-2 code for the country.

postal_code
string

Postal code portion of the address.

type
string

Type of address. One of the following: billing, shipping, other

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request PUT \
  --url https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id
var request = require("request");

var options = { method: 'PUT',
  url: 'https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "4a7c734e-a883-4d44-acb2-940d0c97cdb0"
    },
    "data": {
        "id": "addr_761ac9763de5cb50fcf5acb2fd1c4fe8",
        "phone_number": "+447777777778",
        "line_1": "1234 Silicon Valley Drive",
        "city": "San Jose",
        "state": "CA",
        "country": "US",
        "type": "shipping",
        "postal_code": "94102"
    }
}
 
Suggest Edits

Retrieve eWallet Address

Use the GET method to retrieve an eWallet address.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/user/user_id/address/address_id

Path Params

user_id
string
required

Phone number of the customer, in E.164 format.

address_id
string
required

ID of the eWallet Address object.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "4a7c734e-a883-4d44-acb2-940d0c97cdb0"
    },
    "data": {
        "id": "addr_761ac9763de5cb50fcf5acb2fd1c4fe8",
        "phone_number": "+447777777778",
        "line_1": "1234 Silicon Valley Drive",
        "city": "San Jose",
        "state": "CA",
        "country": "US",
        "type": "billing",
        "postal_code": "94102"
    }
}
 
Suggest Edits

Delete eWallet Address

Use the DELETE method to delete an eWallet address.

This method allows a 3rd party partner to delete an address via the Rapyd API.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://sandboxapi.rapyd.net/v1/user/user_id/address/address_id

Path Params

user_id
string
required

Phone number of the customer, in E.164 format.

address_id
string
required

ID of the eWallet Address object.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request DELETE \
  --url https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/user_id/address/address_id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "00000000-0000-0000-0000-000000000000"
    }
}
 
Suggest Edits

Identification Object

 

The eWallet Identification object represents the types of information that is available in various types of identification documents, such as passports, ID cards and other documents that are considered legally valid for establishing identity.

id

string

Rapyd ID. Read-only.

back_side_image

Base-64-encoded image of the back of the ID document.

back_side_image_mime_type

string

MIME type of the front side image of the identification document. One of the following:

  • image/jpeg - JPEG image. This is the default.
  • image/png - PNG image.

country

string

The two-letter ISO 3166-1 ALPHA-2 code for the country.

document_type

string

Type of the identification document. One of the following:

  • PA - Passport.
  • DL - Driver's license.

ewallet

string

ID of the customer's eWallet.

extract_fields

array of strings

Names of the fields to extract from the ID document. One or more of the following:

  • address - Address.
  • date_of_birth - Date of birth. Format YYYY-MM-DD
  • expiration_date - Date of expiration of the ID document, in Unix time.
  • face_match
  • first_name - First name.
  • id_number - ID number as shown on the document.
  • last_name - Family name.
  • personal_number - Additional identifying number on the document.
  • state - Political subdivision of the country, in ISO 3166-2 format.

face_image

Base-64-encoded image of the face.

face_image_mime_type

string

MIME type of the front side image. One of the following:

  • image/jpeg - This is the default.
  • image/png

front_side_image

Base-64-encoded image of the front of the identification document.

front_side_image_mime_type

string

MIME type of the front side image of the identification document. One of the following:

  • image/jpeg - JPEG image. This is the default.
  • image/png - PNG image.

is_address_extractable

Boolean

Indicates whether the person's address can be extracted from the document. Read-only.

is_back_required

Boolean

Indicates whether the back of the document is required to establish identity. Read-only.

reference_id

string

ID provided by the merchant.

send_callback

Boolean

Determines whether a WebHook is sent with the results of the verification request.

type

string

Type of the identification document. Read-only. One of the following:

  • PA - Passport.
  • DL - Driver's license.
 
Suggest Edits

Verify Identity

Use the POST method to verify the identity of an individual.

 
post/identities

Path Params

country
string
required

2-letter ISO code for the country.

Body Params

back_side_image
string

Base-64-encoded image of the back of the identity document. Optional.

back_side_image_mime_type
string

MIME type of the back side image of the identity document. Optional.

country
string

The two-letter ISO 3166-1 ALPHA-2 code for the country.

document_type
string

Type of the identification document.

ewallet
string

ID of the customer's eWallet.

extract_fields
string

Names of the fields to extract from the ID document. Optional.

face_image
string

Base-64-encoded image of the face. Optional.

face_image_mime_type
string

MIME type of the face image. Optional.

front_side_image
string

Base-64-encoded image of the front of the identity document.

front_side_image_mime_type
string

MIME type of the front side image of the identity document. Optional.

reference_id
string

ID provided by the merchant.

send_callback
string

Determines whether a WebHook is sent with the results of the verification request.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url http://example.com/identities
var request = require("request");

var options = { method: 'POST', url: 'http://example.com/identities' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/identities")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://example.com/identities");

xhr.send(data);
import requests

url = "http://example.com/identities"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "00000000-0000-0000-0000-000000000000"
    },
    "data": [
        {
            "country": "US",
            "type": "PA",
            "name": "Passport",
            "is_back_required": false,
            "is_address_extractable": false
        },
        {
            "country": "US",
            "type": "DL",
            "name": "Driver License",
            "is_back_required": true,
            "is_address_extractable": true
        }
    ]
}
 
Suggest Edits

List Identification Documents by Country

Use the GET method to retrieve a list of the types of valid identification documents for a country.

 
get/identities/types?country=country

Path Params

country
string
required

2-letter ISO code for the country.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url 'http://example.com/identities/types?country=country'
var request = require("request");

var options = { method: 'GET',
  url: 'http://example.com/identities/types',
  qs: { country: 'country' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/identities/types?country=country")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://example.com/identities/types?country=country");

xhr.send(data);
import requests

url = "http://example.com/identities/types"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "00000000-0000-0000-0000-000000000000"
    },
    "data": [
        {
            "country": "US",
            "type": "PA",
            "name": "Passport",
            "is_back_required": false,
            "is_address_extractable": false
        },
        {
            "country": "US",
            "type": "DL",
            "name": "Driver License",
            "is_back_required": true,
            "is_address_extractable": true
        }
    ]
}
 
Suggest Edits

Account Object - eWallet

 

The Account object describes an eWallet account.

The eWallet Account object contains the following fields:

Field
Type
Description

id

string

ID of the Account object. Read-only.

amount

integer

Amount of the transaction, in minor currency units.

bank_account_id

string

ID of the bank account to transfer money to.

buy_amount

integer

Amount of currency to buy, in minor currency units of the buy_currency.

buy_currency

string

Three-letter ISO 4217 code for the currency to buy.

currency

string

Three-letter ISO 4217 code for the currency used in the amount field.

destination_phone_number

string

Phone number of the customer receiving the money, in E.164 format.

forward_date

integer

Forward date, in Unix time.

phone_number

string

Phone number of the customer in E.164 format.

sell_currency

string

Three-letter ISO 4217 code for the currency the customer is paying with.

source_phone_number

string

Phone number of the customer sending the money, in E.164 format.

status

string

Status of the transfer. One of the following:

  • accept - The transferee accepted the transfer.
  • cancel - The sender canceled the transaction.
  • decline - The transferee refused to accept the transfer.
 
Suggest Edits

Add Funds to eWallet Account

Use the POST method to add funds to an eWallet account.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/account/deposit

Body Params

amount
int32

Amount of the transaction, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount parameter.

phone_number
string

Customer phone number, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/account/deposit
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/account/deposit' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/account/deposit")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/account/deposit");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/account/deposit"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "da0acbf9-b5c2-4e0c-9e49-e7175e512f78"
    },
    "data": {
        "id": "a7ef951b-a806-11e7-9273-0ef1982c1e4a",
        "account_id": "a7ed92e6-a806-11e7-9273-0ef1982c1e4a",
        "phone_number": "+447777777778",
        "amount": 250,
        "currency": "GBP"
    }
}
 
Suggest Edits

Remove Funds From eWallet Account

Use the POST method to remove funds from an eWallet account.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/account/withdraw

Body Params

amount
int32

The amount of the transaction, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount parameter.

phone_number
string

Phone number in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/account/withdraw
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/account/withdraw' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/account/withdraw")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/account/withdraw");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/account/withdraw"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "8230ad55-3441-4043-abfb-5753a2605def"
    },
    "data": {
        "id": "218b7ce5-a807-11e7-9273-0ef1982c1e4a",
        "account_id": "a7ed92e6-a806-11e7-9273-0ef1982c1e4a",
        "phone_number": "+447777777778",
        "amount": 50,
        "currency": "GBP"
    }
}
 
Suggest Edits

Transfer Funds Between eWallet Users

Use the POST method to transfer funds between eWallet users.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/account/transfer

Body Params

amount
int32

Amount of the transaction, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount parameter.

destination_phone_number
string

Phone number of the customer receiving the money, in E.164 format.

source_phone_number
string

Phone number of the customer sending the money, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/account/transfer
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/account/transfer' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/account/transfer")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/account/transfer");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/account/transfer"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "8b52d6ed-7dbc-49af-b396-3e025e09859f"
    },
    "data": {
        "id": "82d3aa7f-a807-11e7-9273-0ef1982c1e4a",
        "status": "PEN",
        "amount": 15,
        "currency_code": "GBP",
        "destination_phone_number": "+447777777779",
        "transfer_response_at": 0,
        "created_at": 1507013587
    }
}
 
Suggest Edits

Set Transfer Response

Use the POST method to respond to a funds transfer between eWallet users.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/account/transfer/response

Body Params

id
string

ID of the transfer transaction.

status
string

"accept": The transferee accepted. | "decline": The transferee refused to accept. | "cancel": The sender canceled the transfer.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/account/transfer/response
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/account/transfer/response' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/account/transfer/response")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/account/transfer/response");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/account/transfer/response"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "b7d063bb-fdbb-4a54-b03e-544fc1c765f7"
    },
    "data": {
        "id": "173daddc-a808-11e7-9273-0ef1982c1e4a",
        "status": "DEC",
        "amount": 30,
        "currency_code": "GBP",
        "destination_phone_number": "",
        "transfer_response_at": 1507013852,
        "created_at": 1507013836
    }
}
{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "e49815b8-0023-461a-9f8b-68a8ef8d781e"
    },
    "data": {
        "id": "82d3aa7f-a807-11e7-9273-0ef1982c1e4a",
        "status": "CLO",
        "amount": 15,
        "currency_code": "GBP",
        "destination_phone_number": "",
        "transfer_response_at": 1507013689,
        "created_at": 1507013587
    }
}
{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "df36f799-f380-4e2e-ac22-be6245f4df49"
    },
    "data": {
        "id": "de9f4958-a807-11e7-9273-0ef1982c1e4a",
        "status": "CAN",
        "amount": 30,
        "currency_code": "GBP",
        "destination_phone_number": "",
        "transfer_response_at": 0,
        "created_at": 1507013741
    }
}
 
Suggest Edits

Transfer Funds to Bank Account from eWallet Account

Use the POST method to transfer funds to a bank account from an eWallet account.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/account/transfer/bankaccount

Body Params

amount
int32

Amount of the transaction, in minor currency units.

bank_account_id
string

ID of the bank account to transfer the funds to.

currency
string

Three-letter ISO 4217 code for the currency used in the amount parameter.

phone_number
string

Phone number of the customer in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/account/transfer/bankaccount
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/account/transfer/bankaccount' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/account/transfer/bankaccount")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/account/transfer/bankaccount");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/account/transfer/bankaccount"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "64c92c84-f167-4923-9ba1-b3828b3ced63"
    },
    "data": {
        "id": "50c5d9e2-a816-11e7-9273-0ef1982c1e4a"
    }
}
 
Suggest Edits

Get Quote to Purchase Currency - eWallet

Use the POST method to request a quote to purchase currency through an eWallet bank account.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/account/quote

Body Params

buy_amount
int32

Amount of currency to buy, in minor currency units of the buy_currency.

buy_currency
string

Three-letter ISO 4217 code for the currency to buy.

forward_date
string

Forward date, in Unix time.

phone_number
string

Phone number of the customer in E.164 format.

sell_currency
string

Three-letter ISO 4217 code for the currency the customer is paying with.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/account/quote
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/account/quote' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/account/quote")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/account/quote");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/account/quote"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "9f0e5ba5-2be7-40ba-abf7-6630913899a2"
    },
    "data": {
        "quote_id": "871a51e3-a80d-11e7-9273-0ef1982c1e4a",
        "sell_currency": "GBP",
        "buy_currency": "USD",
        "amount": 50,
        "price": 37.66,
        "rate": 0.7532,
        "expired_at": 1507016471261,
        "expired_in_ms": 300000
    }
}
 
Suggest Edits

Purchase Currency After Quote - eWallet

Use the POST method to purchase currency through an eWallet bank account after you have requested a quote.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/account/quote/buy

Body Params

id
string

ID of the currency exchange quote.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/account/quote/buy
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/account/quote/buy' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/account/quote/buy")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/account/quote/buy");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/account/quote/buy"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "2ebe9286-ec83-4bb9-8349-7fe48bb1b85f"
    },
    "data": {
        "id": "a12d2912-a80d-11e7-9273-0ef1982c1e4a",
        "quote_id": "871a51e3-a80d-11e7-9273-0ef1982c1e4a",
        "sell_currency": "GBP",
        "buy_currency": "USD",
        "amount": 50,
        "price": 37.66,
        "rate": 0.7532,
        "status": "CLO",
        "created_at": 1507016215
    }
}
 
Suggest Edits

Get Details of Add Funds Request

Use the GET method to retrieve details of a specific Add Funds request.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/account/deposit

Path Params

id
string
required

ID of the Add Funds request.

Body Params

amount
string

Amount of the transaction, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount parameter.

phone_number
string

Phone number of the customer in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/account/deposit
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/account/deposit' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/account/deposit")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/account/deposit");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/account/deposit"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "1d25e1c2-ecba-4ae4-9fdf-42f923acbe41"
    },
    "data": {
        "id": "a7ef951b-a806-11e7-9273-0ef1982c1e4a",
        "account_id": "a7ed92e6-a806-11e7-9273-0ef1982c1e4a",
        "phone_number": "+447777777778",
        "amount": 250,
        "currency": "GBP"
    }
}
 
Suggest Edits

Get Details of Remove Funds Request

Use the GET method to retrieve details of a specific Remove Funds request.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/account/withdraw

Path Params

id
string
required

ID of the Remove Funds request.

Body Params

amount
string

Amount of the transaction, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount field.

phone_number
string

Phone number of the customer in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/account/withdraw
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/account/withdraw' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/account/withdraw")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/account/withdraw");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/account/withdraw"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "59cef55e-14eb-49b4-a403-46d3668641fd"
    },
    "data": {
        "id": "218b7ce5-a807-11e7-9273-0ef1982c1e4a",
        "account_id": "a7ed92e6-a806-11e7-9273-0ef1982c1e4a",
        "phone_number": "+447777777778",
        "amount": 50,
        "currency": "GBP"
    }
}
 
Suggest Edits

Funds Object - eWallet

 

A Funds object is used for payment-related activities.

The eWallet Funds object contains the following fields:

Field
Type
Description

id

string

ID of the Funds object. Read-only.

amount

integer

Amount of the paycode or refundcode, in minor currency units.

cart

array of strings

paycode cart (for example: product a = 10, product b = 20 and etc

currency

string

Three-letter ISO 4217 code for the currency used in the amount parameter.

email

string

Customer's email address.

expired_at

integer

Time of expiration of the paycode, in Unix time.

paycode

paycode content

phone_number

string

Phone number of the customer, in E.164 format.

pos_id

The ID of the Rapyd location where the paycode or refundcode was used.

refundcode

refundcode content

refundcode_expiration

string

Time of expiration of the refundcode, in Unix time.

status

confirm paycode or refundcode (valid/invalid)

timestamp

integer

unix timestamp seconds of refundcode usage time (GMT)

type

Webhook type

used_at

integer

Indicates the time the paycode or refund code was used.

 
Suggest Edits

Create Paycode - eWallet

Use the POST method to create an eWallet paycode.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/paycode

Body Params

amount
int32

Amount of the paycode, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount field.

email
string

Customer's email address.

expired_at
int32

Time of expiration of the paycode, in Unix time.

paycode
string

paycode

paycode_cart
array of strings

paycode cart (for example: product a = 10, product b = 20 and etc

phone_number
string

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/paycode
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/paycode' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/paycode")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/paycode");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/paycode"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "19ee5aa5-989a-4234-b09b-6b3349cef37e"
    },
    "data": {
        "id": "f3dc7095-a81d-11e7-9273-0ef1982c1e4a"
    }
}
 
Suggest Edits

Create Refund Code - eWallet

Use the POST method to create an eWallet refund code.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/refundcode

Body Params

amount
int32

Amount of the refundcode, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount field.

email
string

Customer's email address.

phone_number
string

Phone number of the customer, in E.164 format.

refundcode
string

Refund code

refundcode_expiration
int32

Time of expiration of the refundcode, in Unix time.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/refundcode
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/refundcode' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/refundcode")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/refundcode");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/refundcode"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "9cd156f8-6d77-4aed-b091-81cbf50fc53e"
    },
    "data": {
        "id": "8bc0205f-a81e-11e7-9273-0ef1982c1e4a"
    }
}
 
Suggest Edits

Retrieve Paycode Details

Use the GET method to retrieve details of a paycode.

This method requires the id or the paycode. If you provide both, the id parameter is used.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/bankaccount/id/paycode

Path Params

id
string
required

paycode reference id

paycode
string
required

paycode content

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/bankaccount/id/paycode
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/bankaccount/id/paycode' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/bankaccount/id/paycode")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/bankaccount/id/paycode");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/bankaccount/id/paycode"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "f3d9fd56-ffcd-4a79-8287-5a6eb8e867dc"
    },
    "data": {
        "id": "f3dc7095-a81d-11e7-9273-0ef1982c1e4a",
        "type": 1,
        "code": "RAPYD+12345678",
        "status": "ACT",
        "amount": 100,
        "currency_code": "GBP",
        "expired_at": 0,
        "phone_number": "+447777777778",
        "pos_id": "",
        "used_at": null,
        "created_at": 1507023225,
        "cart": [
            {
                "name": "item1",
                "price": 49.5,
                "description": "sample",
                "quantity": 1,
                "external_id": "any_id"
            },
            {
                "name": "item1",
                "price": 50.5,
                "description": "sample",
                "quantity": 1,
                "external_id": "any_id"
            }
        ],
        "description": ""
    }
}
 
Suggest Edits

Retrieve Paycode Report

Use the GET method to generate a PayCode usage report.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/paycode/report/start_time/end_time

Path Params

end_time
string
required

unix timestamp seconds of report end time (GMT)

start_time
string
required

unix timestamp seconds of report start time (GMT)

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/paycode/report/start_time/end_time
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/paycode/report/start_time/end_time' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/paycode/report/start_time/end_time")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/paycode/report/start_time/end_time");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/paycode/report/start_time/end_time"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "7a83ed1a-e35d-4d16-abd8-478deaf902a0"
    },
    "data": [
        {
            "id": "421f175a-97b7-11e7-9273-0ef1982c1e4a",
            "type": 1,
            "code": "RAPYD12356",
            "status": "DEL",
            "amount": 20,
            "currency_code": "USD",
            "expired_at": null,
            "phone_number": "",
            "pos_id": "",
            "used_at": null,
            "created_at": 1505219900,
            "cart": [],
            "description": ""
        },
        {
            "id": "e11e1081-97b9-11e7-9273-0ef1982c1e4a",
            "type": 1,
            "code": "RAPYD123456",
            "status": "CLO",
            "amount": 20.32,
            "currency_code": "EUR",
            "expired_at": null,
            "phone_number": "",
            "pos_id": "00000000-0000-1100-0000-000000000000",
            "used_at": 1506242045,
            "created_at": 1505221025,
            "cart": [],
            "description": ""
        }
    ]
}
 
Suggest Edits

Retrieve Refund Code Details

Use the GET method to retrieve an existing RefundCode details in Rapyd.

This method requires the id or the refundcode. If you provide both, the id parameter is used.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/refundcode/id/refundcode

Path Params

id
string
required

refundcode reference id

refundcode
string
required

refundcode content

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/refundcode/id/refundcode
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/refundcode/id/refundcode' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/refundcode/id/refundcode")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/refundcode/id/refundcode");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/refundcode/id/refundcode"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "bdb42099-8af1-42ad-9405-a0deba72f805"
    },
    "data": {
        "id": "8bc0205f-a81e-11e7-9273-0ef1982c1e4a",
        "type": 2,
        "code": "RAPYD+987654321",
        "status": "ACT",
        "amount": 100,
        "currency_code": "GBP",
        "expired_at": 0,
        "phone_number": "+447777777778",
        "pos_id": "",
        "used_at": null,
        "created_at": 1507023480,
        "cart": [],
        "description": ""
    }
}
 
Suggest Edits

Retrieve Refund Code Report

Use the GET method to generate a refund code usage report.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/refundcode/report/start_time/end_time

Path Params

end_time
string
required

unix timestamp seconds of report end time (GMT)

start_time
string
required

unix timestamp seconds of report start time (GMT)

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/refundcode/report/start_time/end_time
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/refundcode/report/start_time/end_time' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/refundcode/report/start_time/end_time")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/refundcode/report/start_time/end_time");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/refundcode/report/start_time/end_time"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "7a83ed1a-e35d-4d16-abd8-478deaf902a0"
    },
    "data": [
        {
            "id": "421f175a-97b7-11e7-9273-0ef1982c1e4a",
            "type": 2,
            "code": "RAPYD12356",
            "status": "DEL",
            "amount": 20,
            "currency_code": "USD",
            "expired_at": null,
            "phone_number": "",
            "pos_id": "",
            "used_at": null,
            "created_at": 1505219900,
            "cart": [],
            "description": ""
        },
        {
            "id": "e11e1081-97b9-11e7-9273-0ef1982c1e4a",
            "type": 2,
            "code": "RAPYD123456",
            "status": "CLO",
            "amount": 20.32,
            "currency_code": "EUR",
            "expired_at": null,
            "phone_number": "",
            "pos_id": "00000000-0000-1100-0000-000000000000",
            "used_at": 1506242045,
            "created_at": 1505221025,
            "cart": [],
            "description": ""
        }
    ]
}
 
Suggest Edits

Delete Paycode

Use the DELETE method to delete a PayCode.

This method requires the id or the paycode. If you provide both, the id parameter is used.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://sandboxapi.rapyd.net/v1/paycode/id/paycode

Path Params

id
string
required

paycode reference id

paycode
string
required

paycode content

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request DELETE \
  --url https://sandboxapi.rapyd.net/v1/paycode/id/paycode
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://sandboxapi.rapyd.net/v1/paycode/id/paycode' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/paycode/id/paycode")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://sandboxapi.rapyd.net/v1/paycode/id/paycode");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/paycode/id/paycode"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "8bd278da-3d2c-4eb8-aa9f-1ec419a6617b"
    }
}
 
Suggest Edits

Delete Refund Code

Use the DELETE method to delete a refund code.

This method requires the id or the refundcode. If you provide both, the id parameter is used.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://sandboxapi.rapyd.net/v1/refundcode/id/refundcode

Path Params

id
string
required

paycode reference id

refundcode
string
required

refund code content

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request DELETE \
  --url https://sandboxapi.rapyd.net/v1/refundcode/id/refundcode
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://sandboxapi.rapyd.net/v1/refundcode/id/refundcode' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/refundcode/id/refundcode")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://sandboxapi.rapyd.net/v1/refundcode/id/refundcode");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/refundcode/id/refundcode"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "a63dc0e7-d0e0-42e4-ab69-f8c4f4615918"
    }
}
 
Suggest Edits

Bank Account Object - eWallet

 

The Bank Account object describes an eWallet bank account.

The eWallet Bank Account object contains the following fields:

Field
Type
Description

id

string

ID of the Bank Account object. Read-only.

aba

string

American Bankers Association routing number.

acctNumber

string

Bank account number.

bankAccountHolderName

string

Name of the customer.

bankAccountType

string

bankAddress

string

Street and number portion of the bank's address.

bankCountry

string

Country portion of the bank's address. Two-letter ISO 3166-1 ALPHA-2 code.

bankName

string

Name of the bank.

beneficiaryAddress

string

Street and number portion of the customer's address.

beneficiaryCity

string

City portion of the customer's address.

beneficiaryCompanyName

string

Name of the customer's company.

beneficiaryCountry

string

Country portion of the customer's address.

beneficiaryDateOfBirth

string

Customer's date of birth.

beneficiaryEntityType

string

beneficiaryFirstName

string

Customer's first name.

beneficiaryIdentificationType

string

beneficiaryIdentificationValue

string

Customer's official government ID number.

beneficiaryLastName

string

Customer's family name.

beneficiaryPostcode

string

Postal code portion of the customer's address.

beneficiaryStateOrProvince

string

State portion of the customer's address.

bicSwift

ISO 9362 bank identifier code.

currency

string

Three-letter ISO 4217 code for the currency used in this bank account.

email

string

Customer's email address.

iban

string

International Bank Account Number for the account.

name

string

paymentType

string

phone_number

string

Phone number of the customer, in E.164 format.

 
Suggest Edits

Create Bank Account

Use the POST method to create a bank account for an eWallet customer.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/bankaccount

Body Params

aba
string

American Bankers Association routing number.

acctNumber
string

Bank account number.

bankAccountHolderName
string

Name of the customer.

bankAccountType
string
bankAddress
string

Street and number portion of the bank's address.

bankCountry
string

Country portion of the bank's address.

bankName
string

Name of the bank.

beneficiaryAddress
string

Street and number portion of the customer's address.

beneficiaryCity
string

City portion of the customer's address.

beneficiaryCompanyName
string

Name of the customer's company.

beneficiaryCountry
string

Country portion of the customer's address.

beneficiaryDateOfBirth
string

Customer's date of birth.

beneficiaryFirstName
string

Customer's first name.

beneficiaryIdentificationType
string
beneficiaryIdentificationValue
string

Customer's official government ID number.

beneficiaryLastName
string

Customer's family name.

beneficiaryPostcode
string

Postal code portion of the customer's address.

beneficiaryStateOrProvince
string

State portion of the customer's address.

currency
string

Three-letter ISO 4217 code for the currency used for this bank account.

email
string

Customer's email address.

beneficiaryEntityType
string
bicSwift
string

ISO 9362 bank identifier code.

iban
string

International Bank Account Number for the account.

name
string
paymentType
string
phone_number
string

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/bankaccount
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/bankaccount' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/bankaccount")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/bankaccount");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/bankaccount"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "5ae58a5f-614b-4090-9d40-2a8310d8fb91"
    },
    "data": {
        "id": "57943b91-a812-11e7-9273-0ef1982c1e4a",
        "bankCountry": "GB",
        "currency": "GBP",
        "beneficiaryCountry": "GB",
        "bankAccountHolderName": "Rapyd User",
        "name": "My GBP Account"
    }
}
 
Suggest Edits

Validate Bank Account Details

Use the POST method to validate details for a bank account. The response returns with a header and no body.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/bankaccount/validate

Body Params

aba
string

American Bankers Association routing number.

acctNumber
string

Bank account number.

bankAccountHolderName
string

Name of the customer.

bankAccountType
string
bankAddress
string

Street and number portion of the bank's address.

bankCountry
string

Country portion of the bank's address.

bankName
string

Name of the bank.

beneficiaryAddress
string

Street and number portion of the customer's address.

beneficiaryCity
string

City portion of the customer's address.

beneficiaryCompanyName
string

Name of the customer's company.

beneficiaryCountry
string

Country portion of the customer's address.

beneficiaryDateOfBirth
string

Customer's date of birth.

beneficiaryFirstName
string

Customer's first name.

beneficiaryIdentificationType
string
beneficiaryIdentificationValue
string

Customer's official government ID number.

beneficiaryLastName
string

Customer's family name.

beneficiaryPostcode
string

Postal code portion of the customer's address.

beneficiaryStateOrProvince
string

State portion of the customer's address.

currency
string

Three-letter ISO 4217 code for the currency used for this bank account.

email
string

Customer's email address.

beneficiaryEntityType
string
bicSwift
string

ISO 9362 bank identifier code.

iban
string

International Bank Account Number for the account.

name
string
paymentType
string
phone_number
string

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/bankaccount/validate
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/bankaccount/validate' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/bankaccount/validate")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/bankaccount/validate");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/bankaccount/validate"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "518d921b-d2e7-4613-a5a9-ed47fb6c434c"
    }
}
 
Suggest Edits

Retrieve Bank Account

Use the GET method to retrieve a bank account for an eWallet customer.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number

Path Params

id
string
required
phone_number
string
required

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "3b5e54f1-683c-477a-9794-718a498954d9"
    },
    "data": {
        "id": "a974dfdd-18b9-4219-8cb5-df749328c4a5",
        "bankCountry": "GB",
        "currency": "GBP",
        "beneficiaryCountry": "GB",
        "bankAccountHolderName": "Rapyd User",
        "name": "My GBP Account",
        "beneficiaryAddress": [],
        "defaultBeneficiary": "false",
        "accountNumber": "9876543210",
        "bankAddress": [
            "TEST BANK ADDRESS",
            " NOT USING EXTERNAL SERVICE",
            " DEVELOPMENT ENVIRONMENT."
        ],
        "bankName": "TEST BANK NAME",
        "beneficiaryEntityType": "individual",
        "paymentTypes": [
            "regular"
        ]
    }
}
 
Suggest Edits

Retrieve Bank Accounts for eWallet User

Use the GET method to retrieve all bank accounts for an eWallet user.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/bankaccount/phone_number

Path Params

phone_number
string
required

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/bankaccount/phone_number
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/bankaccount/phone_number' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/bankaccount/phone_number")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/bankaccount/phone_number");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/bankaccount/phone_number"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "258e739e-c31f-4265-b06b-de83cc9bc00c"
    },
    "data": [
        {
            "id": "2beb203b-a812-11e7-9273-0ef1982c1e4a",
            "bankCountry": "GB",
            "currency": "GBP",
            "beneficiaryCountry": "GB",
            "bankAccountHolderName": "Rapyd User",
            "name": "My GBP Account"
        },
        {
            "id": "57943b91-a812-11e7-9273-0ef1982c1e4a",
            "bankCountry": "GB",
            "currency": "GBP",
            "beneficiaryCountry": "GB",
            "bankAccountHolderName": "Rapyd User",
            "name": "My GBP Account"
        },
        {
            "id": "73fb7eef-a812-11e7-9273-0ef1982c1e4a",
            "bankCountry": "GB",
            "currency": "GBP",
            "beneficiaryCountry": "GB",
            "bankAccountHolderName": "Rapyd User",
            "name": "My GBP Account"
        }
    ]
}
 
Suggest Edits

Retrieve Required Fields for Bank Account

Use the GET method to retrieve required fields for a bank account.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/bankaccount/fields/bank_country/user_country/account_currency

Path Params

account_currency
string
required

Three-letter ISO 4217 code for the currency used for this bank account.

bank_country
string
required

Country of the bank. Two-letter ISO 3166-1 ALPHA-2 code.

user_country
string
required

Country of the customer. Two-letter ISO 3166-1 ALPHA-2 code.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/bankaccount/fields/bank_country/user_country/account_currency
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/bankaccount/fields/bank_country/user_country/account_currency' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/bankaccount/fields/bank_country/user_country/account_currency")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/bankaccount/fields/bank_country/user_country/account_currency");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/bankaccount/fields/bank_country/user_country/account_currency"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "b4e8e043-b484-45bf-9c36-3a6a6d58c002"
    },
    "data": [
        {
            "paymentType": "priority",
            "beneficiaryEntityType": "individual",
            "beneficiaryAddress": "^.{1,255}",
            "beneficiaryCity": "^.{1,255}",
            "beneficiaryCountry": "^[A-z]{2}$",
            "beneficiaryFirstName": "^.{1,255}",
            "beneficiaryLastName": "^.{1,255}",
            "acctNumber": "^[0-9A-Z]{1,50}$",
            "sortCode": "^\\d{6}$"
        },
        {
            "paymentType": "priority",
            "beneficiaryEntityType": "company",
            "beneficiaryAddress": "^.{1,255}",
            "beneficiaryCity": "^.{1,255}",
            "beneficiaryCountry": "^[A-z]{2}$",
            "beneficiaryCompanyName": "^.{1,255}",
            "acctNumber": "^[0-9A-Z]{1,50}$",
            "sortCode": "^\\d{6}$"
        },
        {
            "paymentType": "regular",
            "acctNumber": "^[0-9A-Z]{1,50}$",
            "sortCode": "^\\d{6}$",
            "beneficiaryEntityType": "individual"
        },
        {
            "paymentType": "regular",
            "acctNumber": "^[0-9A-Z]{1,50}$",
            "sortCode": "^\\d{6}$",
            "beneficiaryEntityType": "company"
        }
    ]
}
 
Suggest Edits

Delete Bank Account

Use the DELETE method to delete a bank account from an eWallet customer.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number

Path Params

id
string
required
phone_number
string
required

Phone number in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request DELETE \
  --url https://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/bankaccount/id/phone_number"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "60feaf67-f82c-4d55-8f9f-de5537c30511"
    }
}
 
Suggest Edits

Card Object - eWallet

 

The card object describes the card issuing process. Card can be issued to verified eWallets.

The Card object contains the following fields:

Field
Type
Description

id

string

ID of the card object. Read-only.

ewallet

string

ID of the eWallet the card is assigned to.

card_type

string

Type of card. One of the following:

  • physical
  • virtual

currency

string or
list of strings

Currency or list of currencies. Three-letter ISO 4217 code for each currency.

currency_type

string

Indicates how many currencies are supported. One of the following:

  • single - The card supports one currency.
  • multi - The card supports several currencies.

metadata

Metadata object

A JSON object defined by the Rapyd partner.

status

string

Status of the card. One of the following:

  • active
  • inactive
  • cancelled
 
Suggest Edits

Create Card - eWallet

Use the POST method to create an eWallet card.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1/user/user_card

Path Params

user_id
string
required

Phone number of the eWallet user.

Body Params

card_type
string

Type of card. One of the following: physical, virtual

currency
json

Currency or list of currencies. Three-letter ISO 4217 code for each currency.

currency_type
string

Indicates how many currencies are supported. One of the following: single, multi

ewallet
string

ID of the eWallet the card is assigned to.

metadata
mixed type

A JSON object defined by the Rapyd partner.

status
string

Status of the card. One of the following: active, inactive, cancelled

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1/user/user_card
var request = require("request");

var options = { method: 'POST',
  url: 'https://sandboxapi.rapyd.net/v1/user/user_card' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/user_card")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1/user/user_card");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/user_card"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "4a7c734e-a883-4d44-acb2-940d0c97cdb0"
    },
    "data": {
        "id": "card_761ac9763de5cb50fcf5acb2fd1c4fe8",
        "phone_number": "+447777777778",
        "card_type": "physical",
        "currency": "usd",
        "currency_type": "single",
        "ewallet": "ewallet_50fcf5acb2fd1c4fe8761ac9763de5cb",
        "metadata": {},
        "status": "active"
    }
}
 
Suggest Edits

Update eWallet Card

Use the PUT method to update an eWallet user.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://sandboxapi.rapyd.net/v1/user/user_id/card/card_id

Path Params

card_id
string
required

ID of the eWallet Card object.

user_id
string
required

Phone number of the eWallet user.

Body Params

card_type
string

Type of card. One of the following: physical, virtual

currency
json

Currency or list of currencies. Three-letter ISO 4217 code for each currency.

currency_type
string

Indicates how many currencies are supported. One of the following: single, multi

ewallet
string

ID of the eWallet the card is assigned to.

metadata
mixed type

A JSON object defined by the Rapyd partner.

status
string

Status of the card. One of the following: active, inactive, cancelled

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request PUT \
  --url https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id
var request = require("request");

var options = { method: 'PUT',
  url: 'https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "4a7c734e-a883-4d44-acb2-940d0c97cdb0"
    },
    "data": {
        "id": "card_761ac9763de5cb50fcf5acb2fd1c4fe8",
        "phone_number": "+447777777778",
        "card_type": "virtual",
        "currency": "usd",
        "currency_type": "single",
        "ewallet": "ewallet_50fcf5acb2fd1c4fe8761ac9763de5cb",
        "metadata": {},
        "status": "active"
    }
}
 
Suggest Edits

Retrieve eWallet Card

Use the GET method to retrieve an eWallet user.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://sandboxapi.rapyd.net/v1/user/user_id/card/card_id

Path Params

card_id
string
required

ID of the eWallet Card object.

user_id
string
required

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "4a7c734e-a883-4d44-acb2-940d0c97cdb0"
    },
    "data": {
        "id": "card_761ac9763de5cb50fcf5acb2fd1c4fe8",
        "phone_number": "+447777777778",
        "card_type": "physical",
        "currency": "usd",
        "currency_type": "single",
        "ewallet": "ewallet_50fcf5acb2fd1c4fe8761ac9763de5cb",
        "metadata": {},
        "status": "active"
    }
}
 
Suggest Edits

Delete eWallet Card

Use the DELETE method to delete a card from a user's eWallet.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://sandboxapi.rapyd.net/v1/user/user_id/card/card_id

Path Params

card_id
string
required

ID of the eWallet Card object.

user_id
string
required

Phone number of the customer, in E.164 format.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request DELETE \
  --url https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1/user/user_id/card/card_id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": {
        "error_code": "0",
        "status": "SUCCESS",
        "message": "",
        "operation_id": "8bd278da-3d2c-4eb8-aa9f-1ec419a6617b"
    }
}
 
Suggest Edits

List Countries - eWallet

Use the GET method to retrieve a list of all countries.

 
get/data/countries

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url http://example.com/data/countries
var request = require("request");

var options = { method: 'GET', url: 'http://example.com/data/countries' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/data/countries")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://example.com/data/countries");

xhr.send(data);
import requests

url = "http://example.com/data/countries"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

List Currencies

Use the GET method to retrieve a list of all currencies.

 
get/data/currencies

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url http://example.com/data/currencies
var request = require("request");

var options = { method: 'GET', url: 'http://example.com/data/currencies' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/data/currencies")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://example.com/data/currencies");

xhr.send(data);
import requests

url = "http://example.com/data/currencies"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Retrieve Rapyd POS Location

Use the GET method to retrieve the location of a Rapyd point of sale.

 
get/location

Path Params

id
string
required

ID of the Rapyd point of sale.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url http://example.com/location
var request = require("request");

var options = { method: 'GET', url: 'http://example.com/location' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/location")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://example.com/location");

xhr.send(data);
import requests

url = "http://example.com/location"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

List Rapyd POS Locations

Use the GET method to retrieve a list of all Rapyd points of sale.

 
get/location/page_number/page_size/query

Path Params

page_number
string
required

page number to retrieve

page_size
string
required

Defines size of a single page. {[{"key":"page_size","value":"50","equals":true,"description":"","enabled":true}]}

query
string
required

search term

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url http://example.com/location/page_number/page_size/query
var request = require("request");

var options = { method: 'GET',
  url: 'http://example.com/location/page_number/page_size/query' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/location/page_number/page_size/query")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://example.com/location/page_number/page_size/query");

xhr.send(data);
import requests

url = "http://example.com/location/page_number/page_size/query"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

List Rapyd POS Locations by Coordinates

Use the GET method to retrieve the locations of all Rapyd points of sale within a specified radius of given coordinates.

 
get/location/radius/latitude/longitude/page_number/page_size/query

Path Params

latitude
string
required
longitude
string
required
page_number
string
required

page number to retrieve

page_size
int32
required

Defines size of a single page.

query
string
required

search term

radius
string
required

Radius in Kilometers around the given coordinates.

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url http://example.com/location/radius/latitude/longitude/page_number/page_size/query
var request = require("request");

var options = { method: 'GET',
  url: 'http://example.com/location/radius/latitude/longitude/page_number/page_size/query' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/location/radius/latitude/longitude/page_number/page_size/query")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://example.com/location/radius/latitude/longitude/page_number/page_size/query");

xhr.send(data);
import requests

url = "http://example.com/location/radius/latitude/longitude/page_number/page_size/query"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

List Rapyd POS Locations by Coordinates - Cluster-Based

Use the GET method to retrieve the locations of all Rapyd points of sale within a specified radius of given coordinates. The results are retrieved by clusters.

 
get/location/radius/latitude/longitude/zoom

Path Params

latitude
string
required
longitude
string
required
radius
string
required

Radius in Kilometers around the given coordinates.

zoom
string
required

zoom level of the map

Headers

access_key
string

Unique access key provided by Rapyd for each authorized user.

Content-Type
string

Indicates that the data appears in JSON format.

salt
string

Salt for the request signature.

signature
string

Signature calculated for each request individually. For more information, see API Request Signatures.

timestamp
string

Timestamp for the request, in Unix time.

 
curl --request GET \
  --url http://example.com/location/radius/latitude/longitude/zoom
var request = require("request");

var options = { method: 'GET',
  url: 'http://example.com/location/radius/latitude/longitude/zoom' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/location/radius/latitude/longitude/zoom")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://example.com/location/radius/latitude/longitude/zoom");

xhr.send(data);
import requests

url = "http://example.com/location/radius/latitude/longitude/zoom"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

WebHooks for eWallet

 

WebHooks provide notifications of specific events, independent of the normal HTTP response mechanism. The events are generated independently of the eWallet API calls, so WebHooks provide visibility into all parts of the transaction lifecycle.

The merchant can use the WebHooks notifications for any purpose, including the following:

  • An audit trail.
  • A secondary method for tracking or synchronizing transactions.
  • Fraud detection and prevention.

The merchant provides a URL to Rapyd, and this URL serves as the endpoint for all WebHooks notifications. Each notification contains a "type" field, which the merchant can use to filter messages out or to route them to appropriate entities for further processing.

 
Suggest Edits

Deposit Confirmation

 
post

Body Params

amount
string

Amount of the deposit, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount field.

email
string

Email address of the customer. Optional.

phone_number
string

Phone number of the customer, in E.164 format. Optional.

type
string

WebHook type.

Headers

Content-Type
string

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

$.get('http://yoursite.com/test/' + id, function(data) {
    console.log(data);
});
curl --request POST \
  --url http://example.com/
var request = require("request");

var options = { method: 'POST', url: 'http://example.com/' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://example.com/");

xhr.send(data);
import requests

url = "http://example.com/"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": ""
}
 
Suggest Edits

Deposit Completion

The DepositCompleted WebHook is sent when the customer completes a deposit at a Rapyd point
of sale location.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1

Body Params

amount
int32

Amount of the deposit, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount field.

id
string

ID of the deposit.

phone_number
string

Phone number of the customer, in E.164 format. Optional.

pos_id
string

ID of the Rapyd point of sale where the withdrawal was made.

timestamp
int32

Time of the deposit, in Unix time.

type
string

WebHook type.

Headers

Content-Type
string

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

$.get('http://yoursite.com/test/' + id, function(data) {
    console.log(data);
});
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1
var request = require("request");

var options = { method: 'POST', url: 'https://sandboxapi.rapyd.net/v1' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Refund Code Verification

A refund code is an authorization for a customer to receive a refund on a specific transaction. The refund code defines a window in time for the customer to complete the transaction. When the refund is made, a WebHook is sent to the merchant.

 
post

Body Params

email
string

Email address of the customer. Optional.

refundcode
string

Content of the refund code.

phone_number
string

Phone number of the customer, in E.164 format. Optional.

type
string

WebHook type.

Headers

Content-Type
string

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

$.get('http://yoursite.com/test/' + id, function(data) {
    console.log(data);
});
curl --request POST \
  --url http://example.com/
var request = require("request");

var options = { method: 'POST', url: 'http://example.com/' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://example.com/");

xhr.send(data);
import requests

url = "http://example.com/"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "refundcode": "",
    "status": "",
    "amount": 0,
    "currency": "",
    "expired_at": 0
}
 
Suggest Edits

Refund Code Usage

The RefundCodeUsage WebHook is sent when the customer receives the refund specified in the refund code.

A refund code is an authorization for a customer to receive a refund on a specific transaction. The refund code defines a window in time for the customer to complete the transaction. When the refund is made, a WebHook is sent to the merchant.

 
post

Body Params

amount
int32

Amount of the refund, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount field.

id
string

ID of the refund code.

paycode
string

Content of the refund code.

pos_id
string

ID of the Rapyd point of sale where the refund payment was made.

timestamp
int32

Time of the refund, in Unix time.

type
string

WebHook type.

Headers

Content-Type
string

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

$.get('http://yoursite.com/test/' + id, function(data) {
    console.log(data);
});
curl --request POST \
  --url http://example.com/
var request = require("request");

var options = { method: 'POST', url: 'http://example.com/' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://example.com/");

xhr.send(data);
import requests

url = "http://example.com/"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Paycode Verification

A paycode is an authorization for a customer to make a payment on a specific transaction. The paycode defines a window in time for the customer to complete the payment. When the payment is made, a WebHook is sent to the merchant so the merchant knows when to ship the product to the customer.

 
post

Body Params

email
string

Email address of the customer. Optional.

paycode
string

Content of the paycode.

phone_number
string

Phone number of the customer, in E.164 format. Optional.

type
string

WebHook type.

Headers

Content-Type
string

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

$.get('http://yoursite.com/test/' + id, function(data) {
    console.log(data);
});
curl --request POST \
  --url http://example.com/
var request = require("request");

var options = { method: 'POST', url: 'http://example.com/' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://example.com/");

xhr.send(data);
import requests

url = "http://example.com/"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "paycode": "",
    "status": "",
    "amount": 0,
    "currency": "",
    "expired_at": 0,
    "paycode_cart": [
        {
            "name": "",
            "price": 0,
            "description": "",
            "quantity": 0,
            "external_id": ""
        }
    ]
}
 
Suggest Edits

Paycode Usage

The PayCodeUsage WebHook is sent when the customer completes the payment specified in the paycode.

A paycode is an authorization for a customer to make a payment on a specific transaction. The paycode defines a window in time for the customer to complete the payment. When the payment is made, a WebHook is sent to the merchant so the merchant knows when to ship the product to the customer.

 
post

Body Params

amount
int32

Amount of the payment, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount field.

id
string

ID of the paycode.

paycode
string

Content of the paycode.

pos_id
string

ID of the Rapyd point of sale where the payment was made.

timestamp
int32

Time of the payment, in Unix time.

type
string

WebHook type.

Headers

Content-Type
string

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

$.get('http://yoursite.com/test/' + id, function(data) {
    console.log(data);
});
curl --request POST \
  --url http://example.com/
var request = require("request");

var options = { method: 'POST', url: 'http://example.com/' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://example.com/");

xhr.send(data);
import requests

url = "http://example.com/"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Payment Confirmation

This method confirms a payment request made at Rapyd locations. When using this method, whenever a customer asks for a payment, Rapyd will send a confirmation request to the 3rd party partner for approval.

 
post

Body Params

amount
string

Amount of the payment, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount field.

phone_number
string

Phone number of the customer, in E.164 format. Optional.

type
string

WebHook type.

Headers

Content-Type
string

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

$.get('http://yoursite.com/test/' + id, function(data) {
    console.log(data);
});
curl --request POST \
  --url http://example.com/
var request = require("request");

var options = { method: 'POST', url: 'http://example.com/' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://example.com/");

xhr.send(data);
import requests

url = "http://example.com/"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "status": ""
}
 
Suggest Edits

Payment Completion

The PaymentCompleted WebHook is sent when the customer completes a deposit at a Rapyd point
of sale location.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1

Body Params

amount
int32

Amount of the payment, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount field.

id
string

ID of the payment.

phone_number
string

Phone number of the customer, in E.164 format. Optional.

pos_id
string

ID of the Rapyd point of sale where the payment was made.

timestamp
int32

Time of the deposit, in Unix time.

type
string

WebHook type.

Headers

Content-Type
string

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

$.get('http://yoursite.com/test/' + id, function(data) {
    console.log(data);
});
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1
var request = require("request");

var options = { method: 'POST', url: 'https://sandboxapi.rapyd.net/v1' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Topup Authorization Code Verification

 
post

Body Params

email
string

Email address of the customer. Optional.

authcode
string

Content of the topup authorization code.

phone_number
string

Phone number of the customer, in E.164 format. Optional.

type
string

WebHook type.

Headers

Content-Type
string

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

$.get('http://yoursite.com/test/' + id, function(data) {
    console.log(data);
});
curl --request POST \
  --url http://example.com/
var request = require("request");

var options = { method: 'POST', url: 'http://example.com/' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://example.com/");

xhr.send(data);
import requests

url = "http://example.com/"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "authcode": "",
    "status": "",
    "details": ""
}
 
Suggest Edits

Topup Completion

The TopUpCompleted WebHook is sent when the customer completes the payment specified in the paycode.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1

Body Params

amount
int32

Amount of the topup payment, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount field.

id
string

ID of the topup authorization code.

paycode
string

Content of the topup authorization code.

pos_id
string

ID of the Rapyd point of sale where the topup payment was made.

timestamp
int32

Time of the topup payment, in Unix time.

type
string

WebHook type.

Headers

Content-Type
string

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

$.get('http://yoursite.com/test/' + id, function(data) {
    console.log(data);
});
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1
var request = require("request");

var options = { method: 'POST', url: 'https://sandboxapi.rapyd.net/v1' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandboxapi.rapyd.net/v1")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandboxapi.rapyd.net/v1");

xhr.send(data);
import requests

url = "https://sandboxapi.rapyd.net/v1"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Transfer Request

This method notifies a 3rd party partner that a transfer request was created. When using this method, Rapyd will notify a 3rd party partner whenever a transfer request was initiated.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://sandboxapi.rapyd.net/v1

Body Params

amount
string

Amount of the transfer, in minor currency units.

currency
string

Three-letter ISO 4217 code for the currency used in the amount field.

destination_phone_number
string

Phone number of the customer receiving the money, in E.164 format.

email
string

Email address of the customer. Optional.

source_phone_number
string

Phone number of the customer paying the money, in E.164 format.

type
string

WebHook type.

Headers

Content-Type
string

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

$.get('http://yoursite.com/test/' + id, function(data) {
    console.log(data);
});
curl --request POST \
  --url https://sandboxapi.rapyd.net/v1