EmbeddedWalletAPI Documentation v1.0
Getting Started
- Body of requests must contain valid JSON and content type equal to application/json
- All requests will result in a 200 Ok response unless there is a server or infrastructure error. The API result will be wrapped in a JSON Result object, where the errorCode field indicates response status.
- All requests must have signed with HMACSHA256 sign
Request Signing
All calls to the API are sent via HTTP using POST and must contain the following headers:
RP-CompanyId - Your company unique identifier. Provided by Runpay
RP-Timestamp- The UNIX timestamp in milliseconds (https://en.wikipedia.org/wiki/Unix_time) RP-Sign - The
HMACSHA250 hash (as a hex string) created by API Key secret and the message body concatenated with
CompanyId and Timestamp.
Example:
RP-Sign = ToHEX(HMACSHA512(“{REQUEST_BODY}{RP-CompanyId}{RP-Timestamp}”, Key)) ,where
ToHEX() - a function that represents byte array to a hexadecimal string
HMACSHA512()- hash function (https://en.wikipedia.org/wiki/HMAC)
RP-CompanyId- the value of the RP-CompanyId request header
RP-Timestamp - the value of the RP-Timestamp request header
REQUEST_BODY- body of the request (https://en.wikipedia.org/wiki/HTTP_message_body) Key - Your
private secret key provided by Runpay.
API methods
1. Account registration
Description: use this method for registration new user account.
URL: [BASE_URL]/account/registration Request
Example:
{ "clientId": "22222", "accountType": "person", "currency": "DZ", "endUserIP": "12.12.12.12", "clientData": { "name": "John", "surname": "Wallet", "middlename": "Optional", "phone": "218941112222", "email": "email@email.com", "docType": "NID", "docNumber": "119752345678", "docImage1": "QeThYlndHdcwPRJdb4+7wWNmZdevItnJkSsj+tvJSOZwGzKWA==", "docImage2": "", "docImage3": "", "docImage4": "", "docImage5": "" } }
| Parameter | Description | Type |
|---|---|---|
| clientId | Client identifier. | string |
| accountType | Type of the account | enum [“person”, “entityt”] |
| currency | Currency of the account | string |
| endUserIP | IP address of the user that retrieves account registration | string |
| personalInfo | Personal information of the user | object |
| /name | Name (and Surname) of the user | string |
| /phone | Phone number of the user | string |
| Email of the user | string | |
| /docType | Document of the user | enum [NID, Passport, MF-Matricule fiscale] |
| /docNumber | Document number | string |
| /docImage1 | Document image number 1 | BASE64 string (size no more 500Kb) |
| /docImage2 | Document image number 2 | BASE64 string (size no more 500Kb) |
| /docImage3 | Document image number 3 | BASE64 string (size no more 500Kb) |
| /docImage4 | Document image number 4 | BASE64 string (size no more 500Kb) |
| /docImage5 | Document image number 5 | BASE64 string (size no more 500Kb) |
Response example :
{ "errorCode": 0, "errorText": "success", "status": "Registered" }
| Parameter | Description | Type |
|---|---|---|
| errorCode | Response result code. | int |
| errorText | Description of the result code | string |
| status | Status of the registration | enum [“accepted”, “declined”, “registered”] |
2. Account information
Description: use this method to retreive user account information.
URL: [BASE_URL]/account/info
Sign message: “{id}{companyId}{clientId}”
Example:
{ "clientId": "22222" }
| Parameter | Description | Type |
|---|---|---|
| clientId | Client identifier. | int |
Response example :
{ "status": "registered", "account": { "number": "1205", "code": "75", "iban": "1200000000012", "currency": "DZ" }, "maxLimit": 1000000.0, "outDailyLimit": 50000.0, "balance": 123.56, "createdUTC": "2021-08-10T19:22:00.2803+03:00", "lastIP": "127.0.0.1", "lastDateTimeUTC": "2021-08-09T19:22:00.2818656+03:00", "errorCode": 0, "errorText": "success" }
| Parameter | Description | Type |
|---|---|---|
| status | Status of the registration | enum [“accepted”, “declined”, “registered”] |
| account | Main account information | object |
| number | Number of account | string |
| code | Code of account | string |
| iban | Bank number of account | string |
| currency | Currency of account | string |
| maxLimit | Maximum limit of account balance | decimal |
| outDayLimit | Outgoing daily limit | decimal |
| balance | Account current balance | decimal |
| createdUTC | Date and time of creating account d | datetime |
| lastIP | IP address of last operation | string |
| lastDateTimeUTC | Date and time of last operation | datetime |
| errorCode | Response result code. | int |
| errorText | Description of the result code. | string |
3. Account topup
Description: use this method to topup an account balance
URL: [BASE_URL]]/transaction/topup Request
Example:
{ "clientId": "22222", "amount": 50.23, "currency": "DZ", "endUserIP": "12.12.12.12", }
| Parameter | Description | Type |
|---|---|---|
| clientId | Client identifier. | string |
| amount | Amount of transfer | decimal |
| currency | currency of transfer | string |
| endUserIP | IP address of the user that retrieves account registration | istringnt |
Response example:
{ "errorCode": 0, "errorText": "success" }
| Parameter | Description | Type |
|---|---|---|
| errorCode | Response result code. | int |
| errorText | Description of the result code. i | int |
4. Do payment
Description: use this method to do payment transaction.
URL: [BASE_URL]/transaction/transfer Request
Example:
{ "companyTranId": "123abc", "clientId": "22222", "recipientId": 33333, "amount": 50.23, "currency": "DZ", "comment": "test", "endUserIP": "12.12.12.12" }
| Parameter | Description | Type |
|---|---|---|
| companyTranId | Company unique transaction idetifier | string |
| clientId | Client identifier. | string |
| recipientId | Recipient identifier | string |
| amount | Amount of transfer | decimal |
| currency | currency of transfer | string |
| endUserIP | IP address of the user that retrieves account registration | istringnt |
| comment | transaction description | string |
Response example :
{ "operation": { "runpayTranId": 782, "emoneyTranId": 3539900, "companyTranId": 1652261199, "amount": 1.0, "currency": "DZ", "commission": 0.0, "dateTimeUTC": "2022-05-11T09:26:39.5215479Z", "comment": "transfer_transfer", "recipientId": "1652260540276", "clientId": "1652195124863", "tranTypeId": 2, "endUserIP": "189.56.12.44", "clientAccountId": 506, "recipientAccountId": 507 }, "errorCode": 0, "errorText": "success" }
| Parameter | Description | Type |
|---|---|---|
| operation | Details of operation | object |
| runpayTranId | Operation identifier | long |
| emoneyTranId | Emoney unique transaction idetifier | long |
| companyTranId | Company unique transaction idetifier | long |
| amount | amount of operation | decimal |
| currency | Currency of operation | string |
| commission | commissionof account balance | decimal |
| dateTimeUTC | Date and time of operation | datetime |
| comment | comment of operation | string |
| recipientId | Recepient of operation | string |
| /clientId | Payer of operation | string |
| /tranTypeId | LS 2 | int |
| endUserIP | IP address of the user that retrieves account registration | string |
| /clientAccountId | Operation client's account | int |
| /recipientAccountId | Operation recipient's account | int |
| errorCode | Response result code. | int |
| errorText | Description of the result code. | string |
5. Operations history
Description: use this method to retreive history of the account operations
URL: [BASE_URL]]/transaction/history Request
Example:
{ "clientId": "22222", "dateFrom": "2018-06-14T12:13:02", "dateTo": "2021-08-09T12:21:36" }
| Parameter | Description | Type |
|---|---|---|
| clientId | Client identifier. | string |
| dateFrom | Period from | datetime |
| dateTo | Period To | datetime |
Response Example :
{ "errorCode": 0, "errorText": "success", "transactions": [ { "id": 123, "companyTranId": "123abc", "amount": 555.13, "currency": "DZ", "commission": 2.4, "dateTime": "2021-07-10T19:39:30.4284049+03:00", "comment": "test", "clientId": "22222", "recipientId": 33333, "endUserIP": "12.12.12.12", }, { "id": 123, "companyTranId": "123abc", "amount": 555.13, "currency": "DZ", "commission": 2.4, "dateTime": "2021-07-10T19:39:30.4284049+03:00", "comment": "test", "clientId": "22222", "recipientId": 33333, "endUserIP": "12.12.12.12", } ] }
| Parameter | Description | Type |
|---|---|---|
| errorCode | Response result code. | int |
| errorText | Description of the result code. | int |
| transactions | Operation identifier | object |
| id | List of operations | long |
| companyTranId | Company unique transaction idetifier | string |
| amount | Amount of transfer | decimal |
| currency | currency of transfer | string |
| dateTime | Date and time of operation | datetime |
| commission | Commission of operation | decimal |
| comment | transaction description | string |
| recipientId | Recipient identifier | string |
| clientId | Client identifier. | string |
| endUserIP | IP address of the user that retrieves account registration | string |
6. Create payment token
Description: use this method to generate payment QR-token.
URL: [BASE_URL]/token/create Requestt
Example:
{ "clientId": "22222", "maxAmount": 50.23, "currency": "DZ" }
| Parameter | Description | Type |
|---|---|---|
| clientId | Client identifier. | string |
| maxAmount | Maximum amount of transfer by token 0 - unlimited | decimal |
| currency | currency of transfer | string |
Response example :
{ "errorCode": 0, "errorText": "success", "token": "3315409543133266457", "dateExpiredUTC": 300 }
| Parameter | Description | Type |
|---|---|---|
| errorCode | Response result code. | int |
| errorText | Description of the result code. | int |
| token | Payment token | long |
| dateExpiredUTC | Token expired UTC date and time | datetime |
7. Do payment with token
Description: use this method to do payment with QR-token.
URL: [BASE_URL]/token/withdraw Request
Example:
{ "companyTranId": "1050", "amount": 50.23, "currency": "DZ", "token": "3326285140063360701620", "toAccount": "1000345345000450004", "comment": "Rkeeper order 007888 KIPA MASALA 56 DZ" }
| Parameter | Description | Type |
|---|---|---|
| errorCode | Response result code. | int |
| errorText | Description of the result code. | int |
| companyTranId | Company unique transaction idetifier | string |
| amount | Amount of transfer | decimal |
| currency | currency of transfer | string |
| token | Payment token | long |
| toAccount | Merchant's account to which the pay is made | string |
| comment | Operation comment | string |
Response example:
{ "errorCode": 0, "errorText": "success", }
| Parameter | Description | Type |
|---|---|---|
| errorCode | Response result code. | int |
| errorText | Description of the result code. | int |
8. Get company info
Description: use this method to do payment with QR-token.
URL: BASE_URL]/company/info HTTP
Method: GET
Example:
{ "errorCode": 0, "errorText": "success", "companyName": "Company name", "accountBalance": 125.21 }
| Parameter | Description | Type |
|---|---|---|
| errorCode | Response result code. | int |
| errorText | Description of the result code. | int |
| companyName | Name of the company | string |
| accountBalance | Balance of the company account | int |