NAV
shell

Introduction

Welcome to the Eumlet REST API Documentation. Eumlet empowers businesses to digitalize their banking operations, transcending global boundaries. Harnessing the power of data and artificial intelligence, our platform offers valuable insights into transactions and payment operations. We are committed to building a sustainable and accessible financial future for everyone.

This documentation provides all the necessary endpoints you'll need to make the most of our offerings.

Eumlet API Key Features

Before you dive into the nitty-gritty details of each endpoint, let's familiarize you with some core features:

  1. Authentication: Utilizing OAuth2 for user authentication, Eumlet ensures robust protection of user data and privacy.

  2. Rate Limits: To maintain high performance and accessibility, our API implements rate limiting. See our Rate Limits section for more details.

  3. Endpoints: Our API is equipped with a diverse range of endpoints, meticulously designed to meet various banking operation needs—be it initiating transactions, retrieving insights, or managing user profiles.

  4. Geolocation: The Eumlet API is designed to facilitate cross-border transactions and solutions, therefore, recognizing the diverse needs of diverse regions, our API has multiple sections for users from different regions. See our Geolocation section for country support and more details.

  5. Support: Need assistance? Consult the Support section in this documentation to learn how to get in touch with our team.

Who is this API For?

This API is specifically designed for third-party platforms seeking to integrate Eumlet's capabilities into their products or services. For individual users, we recommend using the Eumlet Portal, which also utilizes this API.

Health

Should expect a 200 Response

curl "https://api.eumlet.com/api/v1/health" \

Ensures that the Eumlet API is up and running.

HTTP Request

GET https://api.eumlet.com/api/v1/health

Platform Authentication

To authorize, use this code:

# With shell, you can just pass the correct header with each request
curl "api_endpoint_here" \
  -H "X-Platform-Token: jwt-access-token"

Make sure to replace jwt-access-token with your API key.

Data from third-party platforms integrating our API is typically stored on our databases. However, for platforms needing separate data storage, we offer a private authentication key to be used with all API calls. This segregates and manages the platform's data independently.

To set up these access keys, please email hello@eumlet.com with the subject Private Platform Key.

X-Platform-Header: jwt-access-code

Authentication

The Eumlet API uses OAuth2 redirect authentication method in order to allow users to authenticate. The authentication returns an auth_code that needs to be verified within our API to generate a JWT access token that can be used as an Authorization header.

Create Authentication URL

curl "https://api.eumlet.com/api/v1/auth" \

The above command returns an auth_url and a nonce.

  {
    "auth_url": "string",
    "nonce": "string",
  }

This endpoint creates a URL that the platform redirects the user to for authentication. The redirect_url provided needs to be secure HTTPS or redirection will fail! It also generates a nonce that the platform must store to ensure that the user has authenticated with the proper URL. This will be needed at verification.

HTTP Request

GET https://api.eumlet.com/api/v1/auth

Query Parameters

Parameter Type Description
redirect_url string The URL that user is redirected to after authentication is complete.

Post-Authentication

After the user completes authentication in our platform, they are redirected back to the URL passed in redirect_url with 2 parameters included:

  1. auth_code: the Authentication code that will be used to generate the access token.
  2. nonce: The nonce that needs to match the nonce provided initially when generating the URL.

Verify Authentication Code

curl "https://api.eumlet.com/api/v1/auth/verify" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"auth_code":"your_auth_code_value"}'

The above command returns the jwt access token for the user.

{
  "jwt_token": "jwt_access_token"
}

This endpoint verifies a code recieved at authentication and generates securely a JWT access token for the user.

HTTP Request

POST https://api.example.com/api/v1/auth/verify

URL Parameters

Parameter Description
auth_code The code received after user authentication.

Verifying Authentication

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/login/' \
  -H 'accept: application/json'

This expects a 200 Response Code.

To ensure that the user authentication is successful, this endpoint can be called to verify that it is successful.

HTTP Request

GET https://api.eumlet.com/api/v1/login/

RTBS-only Authentication

The Eumlet platform offers private access tokens to corporate clients looking to solely utilize our RTBS endpoints. Note that to use these access tokens, the client should follow some terms and conditions set as part of an agreement with the platform. For more information, please contact support.

Geolocation

The Eumlet API is designed to facilitate cross-border transactions and solutions, therefore, recognizing the diverse needs of diverse regions, our API has multiple sections for users from different regions.

Supported Countries

As of today, the countries that are supported by our API are:

  1. The UAE
  2. More coming soon...

Disclaimer on Country Support

Please note that while the Eumlet API strives to provide broad global coverage, the regulatory environment in certain countries is dynamic and can change unpredictably. As a result, for reasons beyond Eumlet's control, some countries that were previously supported might no longer be available in our API offerings.

We understand the importance of consistency and reliability for our users. Therefore, any such changes will be communicated as swiftly as possible. Nevertheless, developers are encouraged to regularly review our Supported Countries list and consult our Changelog for updates related to country availability.

Eumlet holds no responsibility for any disruptions or inconveniences caused due to such regulatory changes. We recommend developers to design their implementations with a fallback or alternative mechanism should a particular country's support be withdrawn.

Use Cases

At Eumlet, we understand the myriad ways in which APIs can empower businesses and foster innovation. The use cases listed here offer a snapshot of the potential applications of the Eumlet API. While these illustrate some core applications, remember that our API's versatility means the possibilities are virtually limitless!

UAE to UK Retainer Payments

One of the standout capabilities of the Eumlet API is facilitating cross-border payments, streamlining the complexities of international transactions. Let's delve into the intricate process of retainer payments from the UAE to the UK. Imagine this scenario:

A UAE consultancy firm in Dubai (UAE) that has hired a marketing agency from the UK on a retainer basis with a 10,000 USD payment required every month. If the retainer was to happen using traditional banking services there is multiple challenges that the partnership could face:

  1. Large Banking Fees: International transfers usually come with hefty fees which can add up quickly on monthly retainer payments.
  2. Regulatory Hurdles: Both the UAE and the UK have stringent banking regulations. Ensuring compliance on both ends is crucial.
  3. Transfer Delays: International transfers aren't always instantaneous, potentially leading to service disruptions or strained business relationships.

With Eumlet, all these problems are resolved instantly.

Step by Step Guide

Coming soon...

Users

curl "https://api.eumlet.com/api/v1/users/me" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section contains all the endpoints that provide user-specific functionalities. Please note that all endpoints in this section require a user access token, which must be included as an "Authentication Bearer" header.

Get All Users Profile

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/users/all' \
  -H "Authentication: Bearer <jwt_access_token>" \
  -H 'accept: application/json' \

The response will be a string object all the user details.

string

This endpoint enables you to retrieve all users from the database.

HTTP Request

GET https://api.eumlet.com/api/v1/users/all

Read the User's Profile

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/users/me/' \
  -H "Authentication: Bearer <jwt_access_token>" \
  -H 'accept: application/json' \

The response will be a JSON object containing all the user details.

{
  "first_name": "string",
  "last_name": "string",
  "full_name": "string",
  "nickname": "string",
  "date_of_birth": "2023-08-24T22:37:50.973Z",
  "address": "string",
  "country_code": "string",
  "email": "user@example.com",
  "phone_number": "string",
  "referral_email": "user@example.com",
  "picture": "string",
  "company_name": "string",
  "company_address": "string",
  "company_country_code": "string",
  "company_registration_number": "string",
  "company_email": "string",
  "is_business": true,
  "is_registered": false,
  "is_verified": false,
  "is_public": true,
  "is_active": true,
  "is_superuser": false,
  "in_app_notifications": true,
  "email_notifications": true,
  "id": 0
}

This endpoint enables you to retrieve all the details of the user's profile.

HTTP Request

GET https://api.eumlet.com/api/v1/users/me

Update the User's Profile using PUT method

curl "https://api.eumlet.com/api/v1/users/me" \
  -H "Authentication: Bearer <jwt_access_token>" \
  -H "Content-Type: application/json" \
  -X PUT
  -d {"picture": "new_string"}

The response will be a JSON object containing all the updated details of the user's profile.

{
  "first_name": "string",
  "last_name": "string",
  "full_name": "string",
  "nickname": "string",
  "date_of_birth": "2023-08-24T22:54:19.806Z",
  "address": "string",
  "country_code": "string",
  "email": "user@example.com",
  "phone_number": "string",
  "referral_email": "user@example.com",
  "picture": "string",
  "company_name": "string",
  "company_address": "string",
  "company_country_code": "string",
  "company_registration_number": "string",
  "company_email": "string",
  "is_business": true,
  "is_registered": false,
  "is_verified": false,
  "is_public": true,
  "is_active": true,
  "is_superuser": false,
  "in_app_notifications": true,
  "email_notifications": true,
  "id": 0
}

This endpoint allows you to update the user's profile with all the necessary data for the user details.

HTTP Request

POST https://api.eumlet.com/api/v1/users/me

Request Body

Key Value Description
is_public boolean Default value is true. Indicates whether the user is public or not.
picture string URL for the user's profile picture.
in_app_notifications boolean Toggle for receiving in-app notifications from Eumlet.
email_notifications boolean Toggle for receiving email notifications from Eumlet.

Update the User's Profile using POST method

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/users/me/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "first_name": "string",
  "last_name": "string",
  "date_of_birth": "2023-08-25T14:11:38.416Z",
  "address": "string",
  "country_code": "string",
  "phone_number": "string",
  "referral_email": "string",
  "is_business": true,
  "company_name": "string",
  "company_address": "string",
  "company_country_code": "string",
  "company_registration_number": "string",
  "company_email": "string"
}'

The response will be a JSON containing all the updated details of the user's profile.

{
  "first_name": "string",
  "last_name": "string",
  "full_name": "string",
  "nickname": "string",
  "date_of_birth": "2023-08-24T22:54:19.806Z",
  "address": "string",
  "country_code": "string",
  "email": "user@example.com",
  "phone_number": "string",
  "referral_email": "user@example.com",
  "picture": "string",
  "company_name": "string",
  "company_address": "string",
  "company_country_code": "string",
  "company_registration_number": "string",
  "company_email": "string",
  "is_business": true,
  "is_registered": false,
  "is_verified": false,
  "is_public": true,
  "is_active": true,
  "is_superuser": false,
  "in_app_notifications": true,
  "email_notifications": true,
  "id": 0
}

This endpoint allows to update the user's profile with any data necessary from the user details.

HTTP Request

POST https://api.eumlet.com/api/v1/users/me

Request Body

Key Value Description
first_name string First Name of the User.
last_name string Last Name of the User.
date_of_birth Date Date of Birth of the User.
address string Address of the User.
country_code string Country Code of the User (Ex- +91 for India).
phone_number string Contact Number used by User to Login.
referral_email string If you have created Account with help of referral.
is_business boolean Company Registered is User or not.
company_name string Name of your Company.
company_address string Address of your Company.
company_country_code string Country Code of your Company. (Ex- +91 for India).
company_registration_number string Registration Number of your Company.
company_email string Email of your Company.

Get User Default Information

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/users/me/defaults/' \
  -H 'accept: application/json'

The response is a JSON with the user's default information.

{
  "network_id": 0,
  "cryptocurrency_id": 0
}

This endpoint allows to get the authenticated user's default informations from the Database.

HTTP Request

GET https://api.eumlet.com/api/v1/users/me/defaults

Set User Default Information

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/users/me/defaults/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "network_id": 0,
  "cryptocurrency_id": 0
}'

The response is a JSON with the new user's default informations.

{
  "network_id": 0,
  "cryptocurrency_id": 0
}

This endpoint allows to Sets the authenticated user's default information for deposits and payments.

HTTP Request

POST https://api.eumlet.com/api/v1/users/me/defaults

Request Body

Key Value Description
network_id integer Network ID to work on.
cryptocurrency_id integer ID of Cryptocurrency using over a particular network.

Search User by attribute

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/users/search/?string=NAME' \
  -H 'accept: application/json'

The response is a JSON with the details of all users with matching attribute.

[
  {
    "id": 0,
    "is_business": false,
    "email": "user1@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  {
    "id": 1,
    "is_business": false,
    "email": "user2@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  }
]

This endpoint allows to Search all the users with matching attributes.

HTTP Request

GET https://api.eumlet.com/api/v1/users/search

Search User by ID

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/users/{id}/' \
  -H 'accept: application/json'

The response is a JSON with the details of unique users with matching ID.

{
  "id": 0,
  "is_business": false,
  "email": "user@example.com",
  "full_name": "string",
  "eth_address": "string",
  "terra_address": "string",
  "nickname": "string",
  "company_name": "string",
  "picture": "string"
}

This endpoint allows to Search the unique user with matching ID in the Database.

HTTP Request

GET https://api.eumlet.com/api/v1/users/{id}/

Search User's Contacts by Email or Name

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/users/contacts/search/?string=NAME_OR_EMAIL' \
  -H 'accept: application/json'

The response is a JSON with the details of users with matching email or name.

[
  {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  }
]

This endpoint allows to Search the users with matching email or name in the Database.

HTTP Request

GET https://api.eumlet.com/api/v1/users/contacts/search/

Get User Details

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/users/contacts/me/' \
  -H 'accept: application/json'

The response is a JSON with the contact of authenticated users.

[
  {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  }
]

This endpoint allows to Get the contact of authenticated user.

HTTP Request

GET https://api.eumlet.com/api/v1/users/contacts/me/

Add contact to user list

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/users/contacts/add/?id={ID}' \
  -H 'accept: application/json'

The response is a string with the searched contact if it exists.

"string"

This endpoint allows to Add User to Authenticated User's contact list.

HTTP Request

GET https://api.eumlet.com/api/v1/users/contacts/add/

Delete contact from user list

curl -X 'DELETE' \
  'https://api.eumlet.com/api/v1/users/contacts/delete/?contact_id={ID}' \
  -H 'accept: application/json'

The response is a string for the deleted contact from user list if it exists.

"string"

This endpoint allows to Delete User from Authenticated User's contact list.

HTTP Request

GET https://api.eumlet.com/api/v1/users/contacts/delete/

History

curl "https://api.eumlet.com/api/v1/history/" \
  -H "Authentication: Bearer <jwt_access_token>" \

Eumlet offers a history of all transactions performed by a user on the Eumlet platform. To access these endpoints in this section, there is a need for the Authentication Bearer header.

Return User's History

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/history/?descending=false&page={PAGE_NO}&size={SIZE}' \
  -H 'accept: application/json' \
  -H "Authentication: Bearer <jwt_access_token>" \

The response will be a JSON object containing the user's transaction history, filtered according to the specified criteria.

{
  "items": [
    {
      "id": 0,
      "created_at": "2023-08-25T17:32:05.184Z",
      "status": "pending",
      "amount": 0,
      "purpose": "string",
      "sender": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "receiver": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "cryptocurrency": {
        "decimals": 0,
        "address": "string",
        "name": "string",
        "symbol": "string",
        "terra_denom": "string",
        "id": 0,
        "network": {
          "id": 0,
          "chain_id": "string",
          "name": "string",
          "type": "string",
          "node_url": "string"
        }
      }
    }
  ],
  "total": 0,
  "page": 1,
  "size": 1
}

This endpoint enables retrieval of the user's transaction history, applying a specific filter if one is provided.

HTTP Request

GET https://api.eumlet.com/api/v1/history/

Parameters Body

Parameter Value Type Description
type String Specifies the transaction type: either "sending" or "receiving".
status String Transaction status: options include "pending," "failed," "in_progress," "paused," "cancelled," "completed," "undefined," "rejected," "disabled," "claimed," "claim_time," and "confirmed."
cryptocurrency_id Integer ID corresponding to the cryptocurrency network.
order String Type of sorting order.
descending Boolean Determines the sort order for the transaction history: ascending or descending.
from Query Start date for filtering transactions.
to Query End date for filtering transactions.
page Integer Page number for paginated results; minimum value is 1.
size Integer Number of transactions to display per page; maximum is 100, minimum is 1

Groups

curl "https://api.eumlet.com/api/v1/group/" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section will host all the endpoints that cater for users belong to specific group functionalities. Note that all endpoints in this section will require the user access token as an Authentication Bearer header.

Delete the User Profile from Group

curl -X 'DELETE' \
  'https://api.eumlet.com/api/v1/group/users/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "id": 0,
  "users": [
    {
      "user_id": 0
    }
  ]
}'

The response is a JSON with all the group object.

{
  "id": 0,
  "name": "string",
  "description": "string",
  "owner": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  "users": [
    {
      "user_id": 0,
      "rate": 0,
      "position": "string",
      "permissions": "string"
    }
  ]
}

This endpoint allows to Delete users from a certain group in the database.

HTTP Request

DELETE https://api.eumlet.com/api/v1/group/users/

Search Group

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/group/search/?name={NAME}' \
  -H 'accept: application/json'

The response is a JSON that returns a list of Group objects with the same name.

[
  {
    "id": 0,
    "name": "string",
    "description": "string",
    "owner": {
      "id": 0,
      "is_business": false,
      "email": "user@example.com",
      "full_name": "string",
      "eth_address": "string",
      "terra_address": "string",
      "nickname": "string",
      "company_name": "string",
      "picture": "string"
    },
    "users": [
      {
        "user_id": 0,
        "rate": 0,
        "position": "string",
        "permissions": "string"
      }
    ]
  }
]

This endpoint allows you to search for groups in the database by their name.

HTTP Request

GET https://api.eumlet.com/api/v1/group/search/

Parameters Body

Key Value Description
name string Name of groups to be searched.

Search User in Group

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/group/{ID}/search/?string={NAME}' \
  -H 'accept: application/json'

The response is a JSON containing details of the user in a particular group.

[
  {
    "group": {
      "id": 0,
      "name": "string",
      "description": "string"
    },
    "user": {
      "id": 0,
      "is_business": false,
      "email": "user@example.com",
      "full_name": "string",
      "eth_address": "string",
      "terra_address": "string",
      "nickname": "string",
      "company_name": "string",
      "picture": "string"
    },
    "rate": 0,
    "position": "string",
    "permissions": "string"
  }
]

This endpoint allows you to find a user in a particular group.

HTTP Request

GET https://api.eumlet.com/api/v1/group/{ID}/search/

Parameters Body

Key Value Description
ID integer ID of group.
NAME string Full Name of User to be searched.

Get Groups Where User Is Owner

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/group/{ID}/' \
  -H 'accept: application/json'

The response is a JSON containing the user's group details.

{
  "id": 0,
  "name": "string",
  "created_at": "2023-08-25T18:12:44.630Z",
  "description": "string",
  "owner": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  "users": [
    {
      "user_id": 0,
      "user": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "rate": 0,
      "position": "string",
      "permissions": "string"
    }
  ]
}

This endpoint allows you to retrieve the group that the user owns.

HTTP Request

GET https://api.eumlet.com/api/v1/group/{ID}/

Parameters Body

Key Value Description
ID integer ID of group.

Edit the Group Owned by the User

curl -X 'PUT' \
  'https://api.eumlet.com/api/v1/group/{ID}/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "description": "string",
  "users": [
    {
      "user_id": 0,
      "rate": 0,
      "position": "string",
      "permissions": "string"
    }
  ]
}'

The response is a JSON containing the edited group details.

{
  "id": 0,
  "name": "string",
  "created_at": "2023-08-25T18:18:49.991Z",
  "description": "string",
  "owner": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  "users": [
    {
      "user_id": 0,
      "user": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "rate": 0,
      "position": "string",
      "permissions": "string"
    }
  ]
}

This endpoint allows you to edit a group where the user is the owner. It returns an edited GroupResponse.

HTTP Request

PUT https://api.eumlet.com/api/v1/group/{ID}/

Parameter Body

Key Value Description
ID integer ID to the user group.

Request Body

Key Value Description
name string Name of the user group.
description string Description of the user group.
user_id integer ID of the user.
rate integer Rate of the user group.
position string Position of the user group.
permissions string Permissions of the user group.

Delete User Group

curl -X 'DELETE' \
  'https://api.eumlet.com/api/v1/group/{ID}/' \
  -H 'accept: application/json'

The response is a JSON containing the object of the deleted group.

{
  "id": 0,
  "name": "string",
  "description": "string",
  "owner": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  "users": [
    {
      "user_id": 0,
      "rate": 0,
      "position": "string",
      "permissions": "string"
    }
  ]
}

This endpoint allows to delete a group where the user is the Owner.

HTTP Request

DELETE https://api.eumlet.com/api/v1/group/{ID}/

Parameter Body

Key Value Description
ID integer ID of the user group.

Update the User's Group

curl -X 'PATCH' \
  'https://api.eumlet.com/api/v1/group/{ID}/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "description": "string",
  "users": [
    {
      "user_id": 0,
      "rate": 0,
      "position": "string",
      "permissions": "string"
    }
  ]
}'

The response is a JSON with the updated details of the group.

{
  "id": 0,
  "name": "string",
  "created_at": "2023-08-25T18:35:14.850Z",
  "description": "string",
  "owner": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  "users": [
    {
      "user_id": 0,
      "user": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "rate": 0,
      "position": "string",
      "permissions": "string"
    }
  ]
}

This endpoint allows you to update a group where the user is the owner. It returns an updated GroupResponse.

HTTP Request

PATCH https://api.eumlet.com/api/v1/group/{ID}/

Parameter Body

Key Value Description
ID integer ID of the user group.

Request Body

Key Value Description
name string Name of the user group.
description string Description of the user group.
user_id integer ID of the user.
rate integer Rate of the user group.
position string Position of the user group.
permissions string Permissions of the user group.

Get the Group

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/group/?page={PAGE_NO}&size={SIZE}' \
  -H 'accept: application/json'

The response is a JSON containing the details of the group, along with pagination.

{
  "items": [
    {
      "id": 0,
      "name": "string",
      "created_at": "2023-08-25T18:40:29.896Z",
      "description": "string",
      "owner": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "users": [
        {
          "user_id": 0,
          "user": {
            "id": 0,
            "is_business": false,
            "email": "user@example.com",
            "full_name": "string",
            "eth_address": "string",
            "terra_address": "string",
            "nickname": "string",
            "company_name": "string",
            "picture": "string"
          },
          "rate": 0,
          "position": "string",
          "permissions": "string"
        }
      ]
    }
  ],
  "total": 0,
  "page": 1,
  "size": 1
}

This endpoint allows you to retrieve all groups where the user is the owner, along with pagination.

HTTP Request

GET https://api.eumlet.com/api/v1/group/

Parameter Body

Key Value Description
PAGE_NO integer Page no of the information.
SIZE integer content on a page.

Create new Group

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/group/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "description": "string",
  "users": [
    {
      "user_id": 0,
      "rate": 0,
      "position": "string",
      "permissions": "string"
    }
  ]
}'

The response is a JSON containing the contact information of authenticated users.

{
  "id": 0,
  "name": "string",
  "created_at": "2023-08-25T18:43:30.014Z",
  "description": "string",
  "owner": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  "users": [
    {
      "user_id": 0,
      "user": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "rate": 0,
      "position": "string",
      "permissions": "string"
    }
  ]
}

This endpoint allows you to create a new group with the user as the owner. It returns a new GroupResponse.

HTTP Request

POST https://api.eumlet.com/api/v1/group/

Request Body

Key Value Description
name string Name of the user group.
description string Description of the user group.
user_id integer ID of the user.
rate integer Rate of the user group.
position string Position of the user group.
permissions string Permissions of the user group.

Payment

curl "https://api.eumlet.com/api/v1/payment/" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section will host all the endpoints related to payment methods. Note that all endpoints in this section will require the user access token as an Authentication Bearer header.

Get the User's Streaming Payments

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/payment/streaming/?type={type}&status={status}&order={order}&descending={descending}&from={from}&to={to}&page={page}&size={size}' \
  -H 'accept: application/json'

The response is a JSON containing all the streaming payments for the user with valid parameters.

{
  "items": [
    {
      "id": 0,
      "status": "pending",
      "external_id": 0,
      "amount": 0,
      "total_amount": 0,
      "withdrawn": 0,
      "step": 0,
      "started_at": "2023-09-05T09:32:52.737Z",
      "ended_at": "2023-09-05T09:32:52.737Z",
      "available": 0,
      "purpose": "string",
      "sender": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "receiver": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "cryptocurrency": {
        "decimals": 0,
        "address": "string",
        "name": "string",
        "symbol": "string",
        "terra_denom": "string",
        "id": 0,
        "network": {
          "id": 0,
          "chain_id": "string",
          "name": "string",
          "type": "string",
          "node_url": "string"
        }
      }
    }
  ],
  "total": 0,
  "page": 1,
  "size": 1
}

This endpoint allows you to retrieve all the streaming payments.

HTTP Request

GET https://api.eumlet.com/api/v1/payment/streaming/

Parameters Body

Key Value Description
type string Type of method ie Sending or Receiving.
status string Select the status from bunch of options.
order string Order in which you want all the payments.
descending boolean by default boolean.
order string Order in which you want all the payments.
from query Starting index of payments.
to query Ending index of payments.
page integer by default: 1.
size integer by default content size on 1 page: 50. max-100 and min: 1

Get the User's Scheduled Payments

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/payment/scheduled/?type={type}&status={status}&order={order}&descending={descending}&from={from}&to={to}&page={page}&size={size}' \
  -H 'accept: application/json'

The response is a JSON containing all the scheduled payments for the user with valid parameters.

{
  "items": [
    {
      "id": 0,
      "status": "pending",
      "external_id": 0,
      "unlocked_at": "2023-09-05T09:37:13.155Z",
      "amount": 0,
      "purpose": "string",
      "sender": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "receiver": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "cryptocurrency": {
        "decimals": 0,
        "address": "string",
        "name": "string",
        "symbol": "string",
        "terra_denom": "string",
        "id": 0,
        "network": {
          "id": 0,
          "chain_id": "string",
          "name": "string",
          "type": "string",
          "node_url": "string"
        }
      }
    }
  ],
  "total": 0,
  "page": 1,
  "size": 1
}

This endpoint allows you to retrieve all the scheduled payments.

HTTP Request

GET https://api.eumlet.com/api/v1/payment/scheduled/

Parameters Body

Key Value Description
type string Type of method, i.e., Sending or Receiving.
status string Select the status from a range of options.
order string Order in which you want the payments.
descending boolean Boolean, default: true.
from query Starting index of payments.
to query Ending index of payments.
page integer Default: 1.
size integer Default content size on one page: 50. Max: 100, Min: 1.

Get the User's Instant Payments

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/payment/scheduled/?type={type}&status={status}&order={order}&descending={descending}&from={from}&to={to}&page={page}&size={size}' \
  -H 'accept: application/json'

The response is a JSON that returns all the instant payments made by the user in the last 24 hours.

{
  "items": [
    {
      "id": 0,
      "status": "pending",
      "created_at": "2023-09-05T09:39:57.947Z",
      "amount": 0,
      "purpose": "string",
      "sender": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "receiver": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "cryptocurrency": {
        "decimals": 0,
        "address": "string",
        "name": "string",
        "symbol": "string",
        "terra_denom": "string",
        "id": 0,
        "network": {
          "id": 0,
          "chain_id": "string",
          "name": "string",
          "type": "string",
          "node_url": "string"
        }
      }
    }
  ],
  "total": 0,
  "page": 1,
  "size": 1
}

This endpoint allows you to retrieve all the instant payments made in the last 24 hours.

HTTP Request

GET https://api.eumlet.com/api/v1/payment/instant/

Parameters Body

Key Value Description
page integer Default: 1.
size integer Default content size on one page: 50. Max: 100, Min: 1.

New Payment

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/payment/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "cryptocurrency_id": 0,
  "receiver_addresses": [
    "string"
  ],
  "transaction_hash": "string",
  "purpose": "string",
  "type": "streaming"
}'

The response is a JSON containing the contact information of authenticated users.

"string"

This endpoint allows you to create a new payment. It returns a new string.

HTTP Request

POST https://api.eumlet.com/api/v1/payment/

Request Body

Key Value Description
cryptocurrency_id integer ID for cryptocurrency being used.
receiver_addresses string Wallet Address of the Receiver.
transaction_hash string Hash of the Payment Done.
purpose string Description for the payment.
type string Streaming or Scheduled or Instant.

Get User Payees

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/payment/payee/?page={page}&size={size}' \
  -H 'accept: application/json'

The response is a JSON containing the payee's details.

{
  "items": [
    {
      "id": 0,
      "receiver": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "amount": 0,
      "total_amount": 0,
      "step": 0,
      "started_at": "2023-09-05T10:01:54.367Z",
      "ended_at": "2023-09-05T10:01:54.367Z",
      "cryptocurrency": {
        "decimals": 0,
        "address": "string",
        "name": "string",
        "symbol": "string",
        "terra_denom": "string",
        "id": 0,
        "network": {
          "id": 0,
          "chain_id": "string",
          "name": "string",
          "type": "string",
          "node_url": "string"
        }
      }
    }
  ],
  "total": 0,
  "page": 1,
  "size": 1
}

This endpoint allows you to retrieve all the payee details and returns an edited response.

HTTP Request

GET https://api.eumlet.com/api/v1/payment/payee/

Parameter Body

Key Value Description
page integer Default: 1.
size integer Default content size on one page: 50. Max: 100, Min: 1.

Request Money

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/payment/request/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "user_id": 0,
  "amount": 0,
  "cryptocurrency_id": 0,
  "message": "string",
  "invoice_link": "string"
}'

The response is a JSON containing a string.

"string"

This endpoint allows you to request money from someone.

HTTP Request

POST https://api.eumlet.com/api/v1/payment/request/

Request Body

Key Value Description
user_id integer ID of the user.
amount integer Amount to be requested.
cryptocurrency_id integer ID of the Cryptocurrency.
message string Message if any.
invoice_link string Link to the invoice.

Set Stream Pending Status

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/payment/streaming/set-pending/?id={id}' \
  -H 'accept: application/json' \
  -d ''

The response is a JSON containing a string.

"string"

This endpoint allows you to set the stream to a pending status.

HTTP Request

POST https://api.eumlet.com/api/v1/payment/streaming/set-pending/

Parameter Body

Key Value Description
id integer ID of the Streaming Payment.

Set Scheduled Pending Status

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/payment/scheduled/set-pending/?id={id}' \
  -H 'accept: application/json' \
  -d ''

The response is a JSON containing a string.

"string"

This endpoint allows you to set the scheduled status to pending.

HTTP Request

POST https://api.eumlet.com/api/v1/payment/scheduled/set-pending/

Parameter Body

Key Value Description
id integer ID of the Streaming Payment.

Create an Instant Payment

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/payment/create-payment-instant' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "amount": 0,
  "receiver_address": [
    "string"
  ],
  "amounts": [
    0
  ],
  "network": "Polygon",
  "token": "USDT"
}'

The response is a JSON containing transaction hash which will confirm payment on the repective network.

{
  "transaction_hash": "string"
}

Makes a Instant payment for the user to all the recievers account from the array depending upon the Request Data entered.

HTTP Request

POST https://api.eumlet.com/api/v1/payment/create-payment-instant

Request Body

Key Value Description
amount integer Amount to be send.
receiver_address string[] Array of String, each string is wallet address of the recievers account.
amounts integer[] Array of String, each string is equal amount to be send to respective reciever.
network string network over which amount is send. Eg Polygon, Avalanche, Terra.
token string currency symbol. Eg USDT, USDC

Create a Streaming Payment

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/payment/create-payment-streaming' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "amount": 0,
  "receiver_address": [
    "string"
  ],
  "amounts": [
    0
  ],
  "network": "Polygon",
  "token": "USDT",
  "streaming_start_time": 0,
  "streaming_duration": 0,
  "streaming_steps": 0
}'

The response is a JSON containing transaction hash which will confirm payment on the repective network.

{
  "transaction_hash": "string"
}

Makes a Streaming payment for the user to all the recievers account from the array depending upon the Request Data intered. Usually this method of payment is used if you need to make payment on same date but at a particular time.

HTTP Request

POST https://api.eumlet.com/api/v1/payment/create-payment-streaming

Request Body

Key Value Description
amount integer Amount to be send.
receiver_address string[] Array of String, each string is wallet address of the recievers account.
amounts integer[] Array of String, each string is equal amount to be send to respective reciever.
network string network over which amount is send. Eg Polygon, Avalanche, Terra.
token string currency symbol. Eg USDT, USDC
streaming_start_time integer time in seconds at which payment was created.
streaming_duration integer Time after which payment will be made.
streaming_steps integer Steps in the streaming payment.

Create a Scheduled Payment

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/payment/create-payment-scheduled' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "amount": 0,
  "receiver_address": [
    "string"
  ],
  "amounts": [
    0
  ],
  "network": "Polygon",
  "token": "USDT",
  "scheduled_timestamp": 0
}'

The response is a JSON containing transaction hash which will confirm payment on the repective network.

{
  "transaction_hash": "string"
}

Makes a Scheduled payment for the user to all the recievers account from the array depending upon the Request Data intered. Usually this method is use to make payment if you need to transfer money after some days.

HTTP Request

POST https://api.eumlet.com/api/v1/payment/create-payment-scheduled

Request Body

Key Value Description
amount integer Amount to be send.
receiver_address string[] Array of String, each string is wallet address of the recievers account.
amounts integer[] Array of String, each string is equal amount to be send to respective reciever.
network string network over which amount is send. Eg Polygon, Avalanche, Terra.
token string currency symbol. Eg USDT, USDC
scheduled_timestamp integer After how many seconds payment will be made.

Withdraw Streaming Payment Balance

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/payment/streaming-withdraw' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "streamid": 0,
  "network": "Polygon",
  "token": "USDT"
}'

The response is a string containing transaction hash which will confirm payment on the repective network.

string

Withdraw the balance to your wallet that was earned through streaming payments.

HTTP Request

POST https://api.eumlet.com/api/v1/payment/streaming-withdraw

Request Body

Key Value Description
streamid integer Stream ID for particular transcation.
network string network over which amount is send. Eg Polygon, Avalanche, Terra.
token string currency symbol. Eg USDT, USDC

Claim Scheduled Payment

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/payment/schedule-claim' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "streamid": 0,
  "network": "Polygon",
  "token": "USDT"
}'

The response is a string containing transaction hash which will confirm payment on the repective network.

string

helps in claiming the balance to your wallet that was earned through scheduled payments.

HTTP Request

POST https://api.eumlet.com/api/v1/payment/streaming-withdraw

Request Body

Key Value Description
streamid integer Stream ID for particular transcation.
network string network over which amount is send. Eg Polygon, Avalanche, Terra.
token string currency symbol. Eg USDT, USDC

kyc

curl "https://api.eumlet.com/api/v1/kyc" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section will host all the endpoints related to KYC of the user. Note that all endpoints in this section will require the user access token as an Authentication Bearer header.

Create KYC Url

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/kyc/url?redirect_url={redirect_url}' \
  -H 'accept: application/json'

The response is a JSON containing unique KYC url for the user containing session ID and a nonce.

{
  "kyc_url": "string",
  "nonce": "string"
}

This endpoint allows you to create unique url for user to complete his/her KYC.

HTTP Request

GET https://api.eumlet.com/api/v1/kyc/url

Parameters Body

Key Value Description
redirect_url string Redirect URL after the kyc process has been completed.

Create Zero Knowledge Proof for claim

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/kyc/create_proof/?expiry_minutes=30' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "additionalProp1": "string",
  }
]'

The response is a string containing proof id respect to particular claim.

string

This endpoint allows you to create a zero knowledge proof claim.

HTTP Request

POST https://api.eumlet.com/api/v1/kyc/create_proof

Request Body

Key Value Description
additionalProp1 string Claim that user need to create. We can claim for more than 1 proof just add them to request body dictionary.

Verify a Zero Knowledge Proof

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/kyc/verify_proof/?proof_id={proof_id}' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "additionalProp1": "string",
  }
]'

The response is a string containing boolean value depending upon tha claim made by the user.

string

This endpoint allows you to compare a zero knowledge proof claim made by the user with respect to a proof ID.

HTTP Request

POST https://api.eumlet.com/api/v1/kyc/verify_proof

Request Body

Key Value Description
additionalProp1 string Claim that user need to create. We can claim for more than 1 proof just add them to request body dictionary.

Parameter Body

Key Value Description
proof_id string Proof ID that user need to compare with respect to request body claim dictionary.

Networks

curl "https://api.eumlet.com/api/v1/network/" \

This section will host all the endpoints related to networks. Note that all endpoints in this section do not require the user access token as an Authentication Bearer header.

Get Networks

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/network/' \
  -H 'accept: application/json'

The response is a JSON that returns all networks in the Eumlet database.

[
  {
    "type": "eth",
    "id": 1,
    "native_top_up_amount": 1,
    "native_token_decimals": 18,
    "utils_contract_address": "0x6Cff096d225E778dcDFe791Bd3EdFAd82C20bB3D",
    "gas_limit": 1000000,
    "max_filter_length": 1000,
    "node_url": "https://polygon-mainnet.infura.io/v3/c734059fa88049f99aca1a08d5fc29e8",
    "name": "Polygon",
    "chain_id": "137",
    "native_token": "MATIC",
    "eumlet_contract_address": "0x7Be5c18C46293A8DA08670a06ba979eC31ab8bFc",
    "latest_nonce": 211,
    "confirmation_blocks": 0,
    "speed_up_gas_price_multiplier": 1.5
  },
  {
    "type": "eth",
    "id": 2,
    "native_top_up_amount": 0.1,
    "native_token_decimals": 18,
    "utils_contract_address": "0x6Cff096d225E778dcDFe791Bd3EdFAd82C20bB3D",
    "gas_limit": 1000000,
    "max_filter_length": 1000,
    "node_url": "https://avalanche-mainnet.infura.io/v3/c734059fa88049f99aca1a08d5fc29e8",
    "name": "Avalanche",
    "chain_id": "43114",
    "native_token": "AVAX",
    "eumlet_contract_address": "0x7Be5c18C46293A8DA08670a06ba979eC31ab8bFc",
    "latest_nonce": 25,
    "confirmation_blocks": 0,
    "speed_up_gas_price_multiplier": 1.5
  },
  {
    "type": "terra",
    "id": 3,
    "native_top_up_amount": 0.1,
    "native_token_decimals": 6,
    "utils_contract_address": null,
    "gas_limit": null,
    "max_filter_length": null,
    "node_url": "https://phoenix-lcd.terra.dev",
    "name": "Terra",
    "chain_id": "phoenix-1",
    "native_token": "uluna",
    "eumlet_contract_address": null,
    "latest_nonce": null,
    "confirmation_blocks": null,
    "speed_up_gas_price_multiplier": 0
  }
]

This endpoint allows you to retrieve a list of all networks in the Eumlet database.

HTTP Request

GET https://api.eumlet.com/api/v1/network/

Currency

curl "https://api.eumlet.com/api/v1/currency/" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section will host all the endpoints related to currencies used by Eumlet. Note that some of the endpoints in this section will require the user access token as an Authentication Bearer header.

Get Currencies

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/currency/' \
  -H 'accept: application/json'

The response is a JSON containing all the group objects.

[
  {
    "name": "Pound Sterling",
    "code": "GBP",
    "id": 1
  },
  {
    "name": "Euro",
    "code": "EUR",
    "id": 2
  },
  {
    "name": "United States dollar",
    "code": "USD",
    "id": 3
  },
  {
    "name": "United Arab Emirates dirham",
    "code": "AED",
    "id": 4
  }
]

This endpoint allows you to list all the currencies available on the Eumlet Platform. The response is a list of DbCurrency objects.

HTTP Request

GET https://api.eumlet.com/api/v1/currency/

Get Balance History

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/balance/history/?date={date}&network_id={network_id}' \
  -H 'accept: application/json' \
  -H "Authentication: Bearer <jwt_access_token>" \

The response is a JSON that returns a list of Group objects.

[
  {
    "amount": 0,
    "created_on": "2023-09-05"
  }
]

This endpoint allows you to retrieve the user's balance from a certain timestamp. It also requires a JWT access token for authentication.

HTTP Request

GET https://api.eumlet.com/api/v1/balance/history/

Parameters Body

Key Value Description
date string YYYY-MM-DD. Date from which the balance will be calculated.
network_id integer Network id, None for all networks.

Proposal

curl "https://api.eumlet.com/api/v1/proposal/" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section will host all the endpoints related to proposals authored by the authenticated user. Note that all endpoints in this section will require the user access token as an Authentication Bearer header.

Return User's Proposals

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/proposal/?page={page}&size={size}' \
  -H 'accept: application/json'

The response is a JSON containing a paginated list of proposals authored by the current user.

{
  "items": [
    {
      "id": 0,
      "status": "string",
      "external_id": 0,
      "total_amount": 0,
      "type": "streaming",
      "started_at": "2023-09-05T16:47:50.595Z",
      "ended_at": "2023-09-05T16:47:50.595Z",
      "receivers": [
        {
          "id": 0,
          "is_business": false,
          "email": "user@example.com",
          "full_name": "string",
          "eth_address": "string",
          "terra_address": "string",
          "nickname": "string",
          "company_name": "string",
          "picture": "string"
        }
      ],
      "sender": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "cryptocurrency": {
        "decimals": 0,
        "address": "string",
        "name": "string",
        "symbol": "string",
        "terra_denom": "string",
        "id": 0,
        "network": {
          "id": 0,
          "chain_id": "string",
          "name": "string",
          "type": "string",
          "node_url": "string"
        }
      }
    }
  ],
  "total": 0,
  "page": 1,
  "size": 1
}

This endpoint allows you to retrieve a paginated list of proposals authored by the current user.

HTTP Request

GET https://api.eumlet.com/api/v1/proposal/?page={page}&size={size}

Parameters Body

params Value Description
page integer Page number. Minimum: 1.
size integer Number of transactions to display. Maximum: 100, Minimum: 1.

Get the User's Authorizer

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/proposal/authorizer/' \
  -H 'accept: application/json'

The response is a JSON that returns the authorizer of the current user, or "None" if it does not exist.

{
  "id": 0,
  "usd_limit": 0,
  "position": "string",
  "user": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  "authorizer": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  }
}

This endpoint allows you to retrieve the authorizer of the current user.

HTTP Request

GET https://api.eumlet.com/api/v1/proposal/authorizer/

Create New Authorizer

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/proposal/authorizer/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "authorizer_id": 0,
  "usd_limit": 0,
  "position": "string"
}'

The response is a JSON that returns the newly created or edited authorizer.

{
  "id": 0,
  "usd_limit": 0,
  "position": "string",
  "user": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  "authorizer": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  }
}

This endpoint allows you to create a new authorizer for the current user or edit an existing one.

HTTP Request

POST https://api.eumlet.com/api/v1/proposal/authorizer/

Request Body

Key Value Description
authorizer_id integer ID of the Authorizer.
usd_limit integer Limit of the USD.
position string Position of the User.

Delete the User's Authorizer

curl -X 'DELETE' \
  'https://api.eumlet.com/api/v1/proposal/authorizer/' \
  -H 'accept: application/json'

The response is a JSON containing a string.

"string"

This endpoint allows you to delete the authorizer of the current user.

HTTP Request

DELETE https://api.eumlet.com/api/v1/proposal/authorizer/

Get Signature

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/proposal/signature/?id={id}' \
  -H 'accept: application/json'

The response is a string representing the signature for the specified proposal and authorizer.

"string"

This endpoint allows you to generate a signature for the specified proposal ID and authorizer.

HTTP Request

GET https://api.eumlet.com/api/v1/proposal/signature/

Request Body

Key Value Description
id integer ID of the proposal.

Set Proposal Pending Status

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/proposal/set-pending/?id={id}' \
  -H 'accept: application/json' \
  -d ''

The response is a string.

"string"

This endpoint allows you to set the status of a proposal to "pending."

HTTP Request

POST https://api.eumlet.com/api/v1/proposal/set-pending/

Parameter Body

Key Value Description
id integer The ID of the proposal to set to "pending".

Payee

curl "https://api.eumlet.com/api/v1/payee/" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section will host all the endpoints related to the payee. Note that all endpoints in this section will require the user access token as an Authentication Bearer header.

Get User's Payees

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/payee/?page={page}&size={size}' \
  -H 'accept: application/json'

The response is a JSON containing a paginated list of payees for the current user.

{
  "items": [
    {
      "id": 0,
      "user": {
        "id": 0,
        "is_business": false,
        "email": "user@example.com",
        "full_name": "string",
        "eth_address": "string",
        "terra_address": "string",
        "nickname": "string",
        "company_name": "string",
        "picture": "string"
      },
      "created_at": "2023-09-05T17:16:07.987Z",
      "full_name": "string",
      "user_name": "string",
      "email": "string",
      "blockchain_address": "string",
      "company": "string",
      "position": "string",
      "usd_rate": 0,
      "rate_period": "string",
      "group": {
        "id": 0,
        "name": "string",
        "description": "string"
      }
    }
  ],
  "total": 0,
  "page": 1,
  "size": 1
}

This endpoint allows you to retrieve a paginated list of payees for the current user.

HTTP Request

GET https://api.eumlet.com/api/v1/payee/

Parameters Body

params Value Description
page integer Page number. Minimum: 1.
size integer Number of transactions to display. Maximum: 100, Minimum: 1.

Create New Payee

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/payee/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "user_id": 0,
  "eth_address": "string",
  "terra_address": "string",
  "full_name": "string",
  "user_name": "string",
  "email": "string",
  "company": "string",
  "position": "string",
  "usd_rate": 0,
  "rate_period": "string",
  "group_id": 0
}'

The response is a JSON that returns the created payee schema.

{
  "id": 0,
  "user": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  "created_at": "2023-09-05T17:18:08.873Z",
  "full_name": "string",
  "user_name": "string",
  "email": "string",
  "blockchain_address": "string",
  "company": "string",
  "position": "string",
  "usd_rate": 0,
  "rate_period": "string",
  "group": {
    "id": 0,
    "name": "string",
    "description": "string"
  }
}

This endpoint allows you to create a new payee for the current user.

HTTP Request

POST https://api.eumlet.com/api/v1/payee/

Request Body

params Value Description
user_id integer User ID.
eth_address string Eth Address of user.
terra_address string Terra Address of user.
full_name string Full Name of User.
user_name string User name of User.
email string Email of the User.
company string Company of the User.
position string Position of the User.
usd_rate integer Rate of the USD.
rate_period string Rate Period.
group_id integer Id of the Group to which user belong.

Delete User's Payee

curl -X 'DELETE' \
  'https://api.eumlet.com/api/v1/payee/?id={id}' \
  -H 'accept: application/json'

The response is a string.

"string"

This endpoint allows you to delete a payee for the current user.

HTTP Request

DELETE https://api.eumlet.com/api/v1/payee/

Parameter Body

Key Value Description
id integer id of the User.

Update the User's Payee

curl -X 'PATCH' \
  'https://api.eumlet.com/api/v1/payee/?id={id}' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "full_name": "string",
  "user_name": "string",
  "email": "string",
  "blockchain_address": "string",
  "company": "string",
  "position": "string",
  "usd_rate": 0,
  "rate_period": "string",
  "group_id": 0
}'

The response is a JSON containing the updated payee schema.

{
  "id": 0,
  "user": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  "created_at": "2023-09-05T17:31:50.721Z",
  "full_name": "string",
  "user_name": "string",
  "email": "string",
  "blockchain_address": "string",
  "company": "string",
  "position": "string",
  "usd_rate": 0,
  "rate_period": "string",
  "group": {
    "id": 0,
    "name": "string",
    "description": "string"
  }
}

This endpoint allows you to edit a payee for the current user.

HTTP Request

PATCH https://api.eumlet.com/api/v1/payee/

Parameter Body

Key Value Description
id integer ID of the payee.

Request Body

params Value Description
full_name string Full Name of User.
user_name string User name of User.
email string Email of the User.
blockchain_address string Blockchain Address of the Payee.
company string Company of the User.
position string Position of the User.
usd_rate integer Rate of the USD.
rate_period string Rate Period.
group_id integer Id of the Group to which user belong.

Notification

curl "https://api.eumlet.com/api/v1/notification/" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section will host all the endpoints related to notifications. Please note that all endpoints in this section will require the user access token to be provided as an Authentication Bearer header.

Please note that these endpoints may require polling by the platform to fetch the latest notifications for a user. Please ensure that rate limits are respected and that if a HTTP 429 error is encountered to poll at a slower rate. For more information please check the Rate Limiting section.

Get User's Notifications

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/notification/?page={page}&size={size}' \
  -H 'accept: application/json'

The response is a JSON containing a paginated list of notifications.

{
  "items": [
    {
      "id": 0,
      "created_at": "2023-09-05T17:54:33.531Z",
      "name": "string",
      "description": "string",
      "type": "payments authorization",
      "is_enabled": true,
      "request": {
        "amount": 0,
        "user": {
          "id": 0,
          "is_business": false,
          "email": "user@example.com",
          "full_name": "string",
          "eth_address": "string",
          "terra_address": "string",
          "nickname": "string",
          "company_name": "string",
          "picture": "string"
        },
        "requester": {
          "id": 0,
          "is_business": false,
          "email": "user@example.com",
          "full_name": "string",
          "eth_address": "string",
          "terra_address": "string",
          "nickname": "string",
          "company_name": "string",
          "picture": "string"
        },
        "cryptocurrency": {
          "decimals": 0,
          "address": "string",
          "name": "string",
          "symbol": "string",
          "terra_denom": "string",
          "id": 0,
          "network": {
            "id": 0,
            "chain_id": "string",
            "name": "string",
            "type": "string",
            "node_url": "string"
          }
        },
        "message": "string",
        "invoice_link": "string"
      }
    }
  ],
  "total": 0,
  "page": 1,
  "size": 1
}

This endpoint allows you to retrieve a paginated list of notifications for the authenticated user.

HTTP Request

GET https://api.eumlet.com/api/v1/notification/

Parameters Body

params Value Description
page integer Page number. Minimum: 1.
size integer Number of transactions to display. Maximum: 100, Minimum: 1.

Delete the User's Notifications

curl -X 'DELETE' \
  'https://api.eumlet.com/api/v1/notification/' \
  -H 'accept: application/json'

The response is a string.

"string"

This endpoint allows you to delete all notifications for the authenticated user.

HTTP Request

DELETE https://api.eumlet.com/api/v1/notification/

Disable User's Notification

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/notification/{id}/' \
  -H 'accept: application/json' \
  -d ''

The response is a string.

"string"

This endpoint allows you to disable a specific notification for the authenticated user.

HTTP Request

POST https://api.eumlet.com/api/v1/notification/

Request Body

Key Value Description
id integer ID of the Notification.

Delete the User's Notification

curl -X 'DELETE' \
  'https://api.eumlet.com/api/v1/notification/{id}/' \
  -H 'accept: application/json'

The response is a JSON that returns string.

"string"

This endpoint allows you to delete the notification of the current user.

HTTP Request

DELETE https://api.eumlet.com/api/v1/notification/

Cryptocurrency

curl "https://api.eumlet.com/api/v1/cryptocurrency/" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section will host all the endpoints related to cryptocurrency used by Eumlet. Please note that none of the endpoints in this section require the user access token as an Authentication Bearer header.

Get Cryptocurrencies

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/cryptocurrency/' \
  -H 'accept: application/json'

The response is a JSON containing all the group objects.

[
  {
    "decimals": 0,
    "address": "string",
    "name": "string",
    "symbol": "string",
    "terra_denom": "string",
    "id": 0,
    "network": {
      "id": 0,
      "chain_id": "string",
      "name": "string",
      "type": "string",
      "node_url": "string"
    },
    "usd_price": 0
  }
]

This endpoint allows you to list all the cryptocurrencies available on the Eumlet Platform.

HTTP Request

GET https://api.eumlet.com/api/v1/cryptocurrency/

User History

curl "https://api.eumlet.com/api/v1/user_histories/csv/" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section will host all the endpoints related to user history. Please note that all the endpoints in this section require the user access token to be provided as an Authentication Bearer header.

Get User History CSV

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/user_histories/csv/' \
  -H 'accept: */*'

The response is a string that returns the file's path.

200

This endpoint allows you to retrieve the user history in CSV file format.

HTTP Request

GET https://api.eumlet.com/api/v1/user_histories/csv/

Platform

curl "https://api.eumlet.com/api/v1/platforms/" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section will host all the endpoints related to access tokens. Please note that all the endpoints in this section will require the user access token to be provided as an Authentication Bearer header.

Retrieve Access Token

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/platforms/?name={name}&email={email}' \
  -H 'accept: application/json'

The response is a JSON schema that returns the unique JWT token and the type of access token for the platform.

{
  "jwt": "string",
  "type": "string"
}

This endpoint allows super users to retrieve a platform access token for a specific name and email. It provides the JWT tokens without creating a new database for the platform.

HTTP Request

GET https://api.eumlet.com/api/v1/platforms/

Parameters Body

Key Value Description
name string Name of the User.
email string Email of the User.

Create New Platform

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/platforms/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "email": "string"
}'

The response is a JSON schema that returns the unique JWT token and the type of access token for the platform.

{
  "jwt": "string",
  "type": "string"
}

This endpoint allows super users to create a new platform access token and a separate database that can only be accessed with the platform's database.

HTTP Request

POST https://api.eumlet.com/api/v1/platforms/

Parameters Body

Key Value Description
name string Name of the User.
email string Email of the User.

UAE

curl "https://api.eumlet.com/api/v1/link/" \

This section focuses on all endpoints for the United Arab Emirates region that allow a user to connect their bank account to the Eumlet platform, add beneficiaries to the account as well as send Real-Time Bank Settlement payments (same region payments).

For the UAE region, Eumlet, due to regulations, only allows for users to connect their bank account to Eumlet to perform deposits, real-time payments, and create beneficiaries; unlike the EU region that allows to create a subsidiary account for each user.

Retail vs. Corporate Bank Accounts

In the UAE, there is a big difference between retail and corporate bank accounts. Retail bank accounts are offered to individual customers while corporate accounts are offered to companies and corporate entities. It is important in this section to distinguish between the two in order to expect a smooth workflow using this API. The platform integrating the API should be aware of what a user on the platform has as a bank account, or should ask the user to input the type of account.

Connecting a UAE Bank Account

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/link/entity?redirect_url={redirect_url}&corporate={corporate}&end_user_id={end_user_id}' \
  -H 'accept: application/json'

The response is a JSON.

{
  "link_entity_url": "string",
  "nonce": "string"
}

This endpoint creates a URL that a user needs to be redirected to in order to connect a UAE bank account to the Eumlet platform. Note that this is a one time process for each account connected for a user.

HTTP Request

GET https://api.eumlet.com/api/v1/link/entity/

Request Body

Key Value Description
redirect_url string The redirect_url to redirect a user to after completion of the authentication process. Needs to be HTTPS encrypted.
corporate boolean true or false.
end_user_id string id of the end user

Creating a Benificiary

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/link/beneficiary?redirect_url={redirect_url}&corporate={corporate}&end_user_id={end_user_id}&payment_destination_id={payment_destination_id}&payment_source_id={payment_source_id}' \
  -H 'accept: application/json'

The response is a string.

{
  "beneficiary_url": "string",
  "nonce": "string"
}

This endpoint creates a URL that a user needs to redirect to in order to add a beneficiary to a connected bank account entity.

HTTP Request

GET https://api.eumlet.com/api/v1/link/beneficiary/

Request Body

Key Value Description
redirect_url string The redirect_url to redirect a user to after completion of the authentication process. Needs to be HTTPS encrypted.
corporate boolean true or false.
end_user_id string id of the end user
payment_destination_id string Payment Destination Id.
payment_source_id string Payment Source Id.

Making an RTBS Payment

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/link/pay?redirect_url={redirect_url}&payment_intent_id={payment_intent_id}&corporate={corporate}&end_user_id={end_user_id}' \
  -H 'accept: application/json'

The response is a string.

{
  "pay_url": "string",
  "nonce": "string"
}

This endpoint Creates a LINK URL to allow users to make payment. User needs to be authenticated in order to generate a link. Needs to specify whether a retail or corporate account. We add a nonce to stop any exploits or replay attacks that needs to be validated.

HTTP Request

GET https://api.eumlet.com/api/v1/link/pay/

Request Body

Key Value Description
redirect_url string The redirect_url to redirect a user to after completion of the authentication process. Needs to be HTTPS encrypted.
payment_intent_id string The unique identifier for the payment intent.
corporate boolean true or false.
end_user_id string id of the end user

Authorize an RTBS Payment

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/link/authorize?redirect_url={redirect_url}&payment_intent_id={payment_intent_id}&end_user_id={end_user_id}' \
  -H 'accept: application/json'

The response is a string.

{
  "authorize_url": "string",
  "nonce": "string"
}

This endpoint Creates a LINK URL to allow users to authorize a payment from a corporate account. User needs to be authenticated in order to generate a link. Needs to specify whether a retail or corporate account. We add a nonce to stop any exploits or replay attacks that needs to be validated. To be able to perform the payment, the user needs to be an end_user to the entity creator.

A payment_intent can be generated from Creating a Payment section.

HTTP Request

POST https://api.eumlet.com/api/v1/link/authorize/

Request Body

Key Value Description
redirect_url string The redirect_url to redirect a user to after completion of the authentication process. Needs to be HTTPS encrypted.
payment_intent_id string The unique identifier for the payment intent.
end_user_id string id of the end user

Real Time Bank Settlement

curl "https://api.eumlet.com/api/v1/rtbs/" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section will host all the endpoints related to Real Time Bank Settlments in the UAE. Note all endpoints in this section require an Authentication Bearer header.

Creating a Destination

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/rtbs/destination' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "account_number": "string",
  "swift_code": "string",
  "country": "string",
  "city": "string",
  "address": "string",
  "display_name": "string",
  "name": "string",
  "iban": "string",
  "bank_identifier": "string",
  "corporate": true
}'

The response is a The unique identifier of the destination created, used for initiating payments.

"string"

In order to send real-time payments in this region, there is a need to create an end destination which represents the bank account of the recipient for whom to send money.

HTTP Request

GET https://api.eumlet.com/api/v1/rtbs/payment/

Parameters Body

Key Value Description
account_number string Account of the User.
swift_code string Swift Code of the User.
country string Country of the user.
city string City of the user.
address string address of the user.
display_name string display_name of the user.
name string name of the user.
iban string iban of the user.
bank_identifier string bank_identifier of the user.
corporate boolean corporate of the user.

Initiate a New Payment

curl -X 'POST' \
  'https://api.eumlet.com/api/v1/rtbs/initiate-payment' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "currency_amount": 0,
  "currency_code": "string",
  "corporate": true,
  "payment_destination_id": "string",
  "description": "string"
}'

The response is a JSON with all the group object.

{
  "payment_id": "string"
}

This endpoint allows to Initiates a new Real Time Bank Settlment payment to a benificary of a certain user. This creates a payment intent that needs to be passed to the LINK Payment method in order for the payment to be completed.

HTTP Request

POST https://api.eumlet.com/api/v1/rtbs/initiate-payment/

Parameters Body

Key Value Description
currency_amount integer Currency amount to send.
currency_code string Currency Code of amount.
corporate boolean Corporate if true.
payment_destination_id boolean Payment Destination Id.
description string Description of the amount.

Querying a Payment Intent

curl -X 'GET' \
  'https://api.eumlet.com/api/v1/rtbs/payment?payment_id={payment_id}&corporate={corporate}' \
  -H 'accept: application/json'

The response is a JSON with all the group object.

{
  "payment_intent_id": "string",
  "customer_id": "string",
  "amount": 0,
  "currency": "string",
  "description": "string",
  "payments": [
    {
      "id": "string",
      "payment_intent_id": "string",
      "payment_source_id": "string",
      "sender_details": {
        "account_number": "string",
        "iban": "string",
        "name": "",
        "description": "",
        "bank_transaction_description": ""
      },
      "recipient_details": {
        "account_number": "string",
        "iban": "string",
        "name": "",
        "description": "",
        "bank_transaction_description": ""
      },
      "amount": 0,
      "currency": "string",
      "description": "string",
      "reference": "string",
      "submission_timestamp": "2023-09-05T19:23:40.922Z",
      "initiation_timestamp": "2023-09-05T19:23:40.922Z",
      "status": "AWAITING_USER_INPUT",
      "status_additional_details": "string",
      "display_info": "string",
      "bank_transaction_reference": "string"
    }
  ],
  "payment_destination": {
    "id": "string",
    "bank_identifier": "string",
    "name": "string",
    "iban": "string",
    "display_name": "string",
    "account_number": "string",
    "swift_code": "string",
    "status": "string",
    "address": "string",
    "country": "string",
    "city": "string",
    "default": true,
    "owner_type": "string",
    "ifsc": "string",
    "sort_code": "string",
    "routing_number": "string",
    "transit_code": "string",
    "branch_address": "string"
  },
  "created_at": "2023-09-05T19:23:40.922Z"
}

If a payment intent was created, this endpoint allows to view the details of the payment.

HTTP Request

GET https://api.eumlet.com/api/v1/rtbs/payment/

Parameters Body

Key Value Description
payment_id string ID of the Payment Intent.
corporate boolean Boolean Value of Corporate ID.

Errors

Eumlet uses conventional HTTP response codes to indicate the success or failure of an API request.

Codes in the 2xx range indicates success. Codes in the 4xx range indicates client side error. Codes in the 5xx range indicates an server-side error in Eumlet's servers (report if possible).

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The kitten requested is hidden for administrators only.
404 Not Found -- The specified kitten could not be found.
405 Method Not Allowed -- You tried to access a kitten with an invalid method.
406 Not Acceptable -- You requested a format that isn't json.
410 Gone -- The kitten requested has been removed from our servers.
429 Too Many Requests -- You're requesting too many kittens! Slow down!
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.

Rate Limiting

In order to provide a fair usage policy and ensure high service availability, we enforce rate limits on our API requests. This helps protect against excessive requests, ensuring the Eumlet system remains available to all users.

Rate Limits

The current base rate limit for the API is set at 100 requests per second. If a platform requires higher limits, please contact support as we offer higher rates depending on necessity.

Best Practices

  1. Handle HTTP 429 Responses: When you exceed the rate limit, the API will respond with an HTTP 429 "Too Many Requests" status code. Ensure your application gracefully handles this by implementing retries with exponential backoff.

  2. Caching: Ensure that the platform caches results to minimize repeated requests to the same endpoints.

  3. Bulk Operations: Whenever possible, use endpoints that allow for bulk operations to reduce the total number of requests.

Penalties

Our system is continously monitored and hence continual violation of the rate limits may result in temporary suspension of an API key or IP from accessing our servers. We highly recommend implementing necessary checks and being respectful of the limits to ensure uninterrupted access.

If you believe that you have been wrongfully banned, you can always contact support.

Versioning

Ensuring a consistent and reliable experience for our users is of utmost experience to us. But, as our platform grows and evolves, there will come a need to release new versions of our API. Fortunately, our versioning approach is designed to prevent breaking changes from affecting any existing implementations and integrations, giving all platforms and developers ample time to transition.

Version Identifier

We use a version identifier in the URL, making it explicit and straightforward to specify which version of the API you're addressing.

For example:

  1. API V1: https://api.eumlet.com/api/v1

Deprecation Policy

When a newer version is available:

  1. Announcement: A new version release will be announced through different communication channels. The announcement will include migration guides and the differences between each version.

  2. Deprecation Notice: Older versions of the API will be supported for a 12 month post the new version's release. After which, the older version will be considered deprecated, but will still be available for a subsequent period of 6 months.

  3. End of Life: Once the deprecation period ends, the version will be retired and any requests to the retired version will return a 401 HTTP error.

Backward Compatible Changes

There are instances when we can make backward-compatible changes without releasing a new version. Such changes include:

  1. Adding new API endpoints.
  2. Adding new optional request parameters to existing API endpoints.
  3. Adding new properties in the response objects.
  1. Stay Updated: Keep an eye on our changelog and announcements. This way, you can update your implementation as needed without any rush.

  2. Hardcode Sparingly: Avoid hardcoding API versions in multiple places within your application. Instead, use configuration files or environment variables so that you can change the version easily if needed.

  3. Test First: Before migrating to a new version, test all interactions with our API in a staging or development environment.

UAE-finance

curl "https://api.eumlet.com/api/v1/uae" \
  -H "Authentication: Bearer <jwt_access_token>" \

This section contains all the endpoints that provide finance information realted to UAE. Please note that some of the2 endpoints in this section require a user access token, which must be included as an "Authentication Bearer" header.

Get User's Pending Payments

  curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/deposit/lean/' \
  -H "Authentication: Bearer <jwt_access_token>" \
  -H 'accept: application/json' \

The response will be a list of lean payment responses representing the retrieved pending payment data for the authenticated user.

[
  {
    "external_payment_id": "string",
    "status": "AWAITING_USER_INPUT",
    "end_user_id": "string"
  }
]

This endpoint enables you to Retrieves the pending payments for the currently authenticated user.

HTTP Request

GET http://localhost:8081/api/v1/uae/deposit/lean/

Initiate Deposit

The response will be A lean deposit response representing the initialized deposit data for the authenticated user.

{
  "deposit": {
    "user": {
      "first_name": "string",
      "last_name": "string",
      "full_name": "string",
      "nickname": "string",
      "date_of_birth": "2023-10-02T19:33:20.085Z",
      "address": "string",
      "country_code": "string",
      "email": "user@example.com",
      "phone_number": "string",
      "referral_email": "user@example.com",
      "picture": "string",
      "company_name": "string",
      "company_address": "string",
      "company_country_code": "string",
      "company_registration_number": "string",
      "company_email": "string",
      "is_business": true,
      "is_registered": false,
      "is_verified": false,
      "is_public": true,
      "is_active": true,
      "is_superuser": false,
      "in_app_notifications": true,
      "email_notifications": true,
      "id": 0
    },
    "currency": {
      "name": "string",
      "code": "string",
      "id": 0
    },
    "cryptocurrency": {
      "decimals": 0,
      "address": "string",
      "name": "string",
      "symbol": "string",
      "terra_denom": "string",
      "id": 0,
      "network": {
        "id": 0,
        "chain_id": "string",
        "name": "string",
        "type": "string",
        "node_url": "string"
      }
    },
    "currency_amount": 0,
    "cryptocurrency_amount": 0,
    "error": "string",
    "status": "string"
  },
  "external_payment_id": "string",
  "end_user_id": "string",
  "status": "string"
}

This endpoint allows you to Initializes a deposit for the currently authenticated user.

HTTP Request

POST http://localhost:8081/api/v1/uae/deposit/lean/initiate

Request Body

Key Value Description
currency_id integer Currency ID.
cryptocurrency_id integer Cryptocurrency ID.
beneficiary_id integer Beneficiary ID.
cryptocurrency_amount integer Cryptocurrency Amount.

Estimate the Deposit

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/deposit/estimate/?cryptocurrency_id={cryptocurrency_id}&amount={amount}' \
  -H 'accept: application/json'

The response will be a JSON, the schema representing the estimated cryptocurrency deposit details.

{
  "cryptocurrency_amount": 0,
  "commission_fee": 0,
  "cryptocurrency_price_in_usd": 0
}

This endpoint allows to retrieves an estimate of the cryptocurrency deposit amount, taking into account the deposit commission fee and the current USD price of the selected cryptocurrency.

HTTP Request

POST https://api.eumlet.com/api/v1//uae/deposit/estimate

Parameters Body

Key Value Description
cryptocurrency_id integer Cryptocurrency ID.
amount integer Amount to be deposit.

Get User's Deposit

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/deposit/' \
  -H 'accept: application/json'

The response is a JSON with the schema representing a list of the user's deposit records.

[
  {
    "user": {
      "first_name": "string",
      "last_name": "string",
      "full_name": "string",
      "nickname": "string",
      "date_of_birth": "2023-10-03T09:26:24.290Z",
      "address": "string",
      "country_code": "string",
      "email": "user@example.com",
      "phone_number": "string",
      "referral_email": "user@example.com",
      "picture": "string",
      "company_name": "string",
      "company_address": "string",
      "company_country_code": "string",
      "company_registration_number": "string",
      "company_email": "string",
      "is_business": true,
      "is_registered": false,
      "is_verified": false,
      "is_public": true,
      "is_active": true,
      "is_superuser": false,
      "in_app_notifications": true,
      "email_notifications": true,
      "id": 0
    },
    "currency": {
      "name": "string",
      "code": "string",
      "id": 0
    },
    "cryptocurrency": {
      "decimals": 0,
      "address": "string",
      "name": "string",
      "symbol": "string",
      "terra_denom": "string",
      "id": 0,
      "network": {
        "id": 0,
        "chain_id": "string",
        "name": "string",
        "type": "string",
        "node_url": "string"
      }
    },
    "currency_amount": 0,
    "cryptocurrency_amount": 0,
    "error": "string",
    "status": "string"
  }
]

This endpoint allows to retrieves a list of the authenticated user's deposit records.

HTTP Request

GET http://localhost:8081/api/v1/uae/deposit

Initiate Withdrawal for User

curl -X 'POST' \
  'http://localhost:8081/api/v1/uae/withdraw/initiate/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "amount": {amount},
  "cryptocurrency_id": {cryptocurrency_id},
  "currency_id": {currency_id},
  "tx_hash": "{tx_hash}"
}'

The response is a JSON with The initiated withdrawal.

{
  "id": 0,
  "created_at": "2023-10-03T09:30:52.572Z",
  "user": {
    "id": 0,
    "is_business": false,
    "email": "user@example.com",
    "full_name": "string",
    "eth_address": "string",
    "terra_address": "string",
    "nickname": "string",
    "company_name": "string",
    "picture": "string"
  },
  "currency": {
    "name": "string",
    "code": "string",
    "id": 0
  },
  "cryptocurrency": {
    "decimals": 0,
    "address": "string",
    "name": "string",
    "symbol": "string",
    "terra_denom": "string",
    "id": 0,
    "network": {
      "id": 0,
      "chain_id": "string",
      "name": "string",
      "type": "string",
      "node_url": "string"
    }
  },
  "transaction": {
    "status": "string",
    "tx_hashes": [
      "string"
    ]
  },
  "currency_amount": 0,
  "cryptocurrency_amount": 0,
  "status": "initialized",
  "error": "string"
}

This endpoint allows to initiate a withdrawal for the current user.

HTTP Request

POST http://localhost:8081/api/v1/uae/withdraw/initiate

Request Body

Key Value Description
amount integer Amount to be send.
cryptocurrency_id integer ID of Cryptocurrency using over a particular network.
currency_id integer Currency ID.
tx_hash string Transaction hash.

Estimate Withdrawal of User

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/withdraw/estimate/?amount={amount}&cryptocurrency_id={cryptocurrency_id}&currency_id={currency_id}' \
  -H 'accept: application/json'

The response is a JSON with the estimated cost of the withdrawal.

{
  "currency_amount": 0,
  "commission_fee": 0,
  "token_price": 0
}

This endpoint allows to estimate the cost of a withdrawal for the given amount of tokens.

HTTP Request

GET http://localhost:8081/api/v1/uae/withdraw/estimate

Parameters Body

Key Value Description
currency_amount integer Currency amount to be estimated.
cryptocurrency_id integer ID of Cryptocurrency using over a particular network.
currency_id integer Currency ID.

Get Withdrawal for User

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/withdraw/?page={page}&size={size}' \
  -H 'accept: application/json'

The response is a JSON with The withdrawals details.

{
  "items": [
    {
      "withdrawal": {
        "id": 0,
        "created_at": "2023-10-03T09:48:24.205Z",
        "user": {
          "id": 0,
          "is_business": false,
          "email": "user@example.com",
          "full_name": "string",
          "eth_address": "string",
          "terra_address": "string",
          "nickname": "string",
          "company_name": "string",
          "picture": "string"
        },
        "currency": {
          "name": "string",
          "code": "string",
          "id": 0
        },
        "cryptocurrency": {
          "decimals": 0,
          "address": "string",
          "name": "string",
          "symbol": "string",
          "terra_denom": "string",
          "id": 0,
          "network": {
            "id": 0,
            "chain_id": "string",
            "name": "string",
            "type": "string",
            "node_url": "string"
          }
        },
        "transaction": {
          "status": "string",
          "tx_hashes": [
            "string"
          ]
        },
        "currency_amount": 0,
        "cryptocurrency_amount": 0,
        "status": "initialized",
        "error": "string"
      },
      "payment_id": "string",
      "status": "AWAITING_USER_INPUT"
    }
  ],
  "total": 0,
  "page": 1,
  "size": 1
}

This endpoint allows to gets all withdrawals.

HTTP Request

GET http://localhost:8081/api/v1/uae/withdraw/

Parameters Body

Key Value Description
page integer Page Number to be displayed.
size integer Size of the Page.

Inititate payment for withdrawal

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/withdraw/init/?destination_id={destination_id}&id={id}' \
  -H 'accept: application/json'

The response is a JSON with The payment ID.

{
  "id": "string"
}

This endpoint allows to initialize a payment for a withdrawal.

HTTP Request

GET http://localhost:8081/api/v1/uae/withdraw/init/

Parameters Body

Key Value Description
destination_id string The ID of the payment destination.
ID integer The ID of the withdrawal.

Decline Withdrawal Payment

curl -X 'POST' \
  'http://localhost:8081/api/v1/uae/withdraw/decline/?id={id}' \
  -H 'accept: application/json' \
  -d ''

The response is a JSON with the ID of the declined withdrawal.

{
  "id": "string"
}

This endpoint allows to decline a withdrawal.

HTTP Request

POST http://localhost:8081/api/v1/uae/withdraw/decline/

Parameters Body

Key Value Description
ID integer The ID of the withdrawal.

Processes a Webhook for plaid

curl -X 'POST' \
  'http://localhost:8081/api/v1/uae/plaid/webhook/' \
  -H 'accept: application/json' \
  -d ''

The response is a string for the webhook.

"string"

This endpoint allows to Receives and processes a webhook from a payment provider.

HTTP Request

POST http://localhost:8081/api/v1/uae/plaid/webhook/

Processes a Webhook for lean

curl -X 'POST' \
  'http://localhost:8081/api/v1/uae/lean/webhook/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "payload": {},
  "type": "{type}",
  "message": "string",
  "timestamp": "{timestamp}",
  "event_id": "string"
}'

The response is a string for the webhook.

"string"

This endpoint allows to Receives and processes a webhook from a payment provider.

HTTP Request

POST http://localhost:8081/api/v1/uae/lean/webhook/

Parameters Body

Key Value Description
payload object {}.
type string payment_source.created.
message string message for the user
timestamp timestamp current Time
event_id string ID of the event

Get Customer ID

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean/customer/' \
  -H 'accept: application/json'

The response is a The customer object associated with the user.

{
  "user_id": 0,
  "customer_id": "string",
  "end_user_id": "string"
}

This endpoint allows to retrieve the corporate customer associated with the authenticated user or creates a new one if it doesn't exist.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean/customer/

Get User's Lean Payment Methods

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean/payment-method/' \
  -H 'accept: application/json'

The response is a list of payment method objects associated with the user.

[
  {
    "id": 0,
    "beneficiary": {
      "id": 0,
      "beneficiary_id": "string",
      "destination_id": "string",
      "payment_source_id": "string",
      "status": "ACTIVE",
      "bank": {
        "logo": "string",
        "name": "string",
        "bank_type": "string",
        "identifier": "string"
      }
    },
    "status": "ACTIVE"
  }
]

This endpoint allows to retrieve a list of corporate payment methods associated with the authenticated user.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean/payment-method/

DELETE User Payment Method

curl -X 'DELETE' \
  'http://localhost:8081/api/v1/uae/lean/payment-method/?id={id}' \
  -H 'accept: application/json'

The response is a string.

"string"

This endpoint allows to Deletes a corporate payment method associated with the authenticated user.

HTTP Request

DELETE http://localhost:8081/api/v1/uae/lean/payment-method/

Parameters Body

Key Value Description
id integer The ID of the payment method to be deleted.

Get Eumlet Destination

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean/eumlet/destination/' \
  -H 'accept: application/json'

The response is a The destination ID object.

{
  "destination_id": "string"
}

This endpoint allows to Retrieves the Eumlet destination ID for the corporate Lean account.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean/eumlet/destination/

Get Lean Customer ID

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean/user/customer/?id={id}' \
  -H 'accept: application/json'

The response is a response object containing the customer ID.

{
  "customer_id": "string"
}

This endpoint allows to Retrieves the customer ID for a given user ID.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean/user/customer/

Parameters Body

Key Value Description
id integer The ID of the user for whom to retrieve the customer ID.

Get End User

curl -X 'POST' \
  'http://localhost:8081/api/v1/uae/lean/end-user/' \
  -H 'accept: application/json' \
  -d ''

The response is The response object containing the customer ID and end user ID.

{
  "customer_id": "string",
  "end_user_id": "string"
}

This endpoint allows to Retrieves the end user ID for the current authenticated user.

HTTP Request

POST http://localhost:8081/api/v1/uae/lean/end-user/

Get User Destination by Customer ID

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean/user/destination/?customer_id={customer_id}' \
  -H 'accept: application/json'

The response is a response object containing the destination ID and bank identifier.

{
  "destination_id": "string",
  "bank_identifier": "string"
}

This endpoint allows to Retrieves the destination for a given customer ID.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean/user/destination/

Parameters Body

Key Value Description
customer_id string The ID of the customer for whom to retrieve the destination.

Get Payment Sources For User

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean/payment-sources/' \
  -H 'accept: application/json'

The response is a list of payment sources associated with the customer ID of the user.

[
  {
    "id": "string",
    "customer_id": "string",
    "app_id": "string",
    "bank_identifier": "string",
    "status": "string",
    "accounts": [
      {
        "id": "string",
        "account_id": "string",
        "account_name": "",
        "account_number": "",
        "iban": "",
        "balance": 0,
        "currency": "",
        "balance_last_updated": "2023-10-03T11:50:07.993Z"
      }
    ],
    "beneficiaries": [
      {
        "id": "string",
        "payment_destination_id": "string",
        "status": "string",
        "beneficiary_cool_off_expiry": "2023-10-03T11:50:07.993Z",
        "bank_identifier": "string"
      }
    ],
    "end_user_ids": [
      "string"
    ]
  }
]

This endpoint allows to Retrieves the payment sources for the current authenticated user.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean/payment-sources/

Webhook

curl -X 'POST' \
  'http://localhost:8081/api/v1/uae/lean-retail/webhook/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "payload": {},
  "type": "payment_source.created",
  "message": "string",
  "timestamp": "2023-10-03T11:55:13.764Z",
  "event_id": "string"
}'

The response is a string.

"string"

This endpoint allows to Receives and processes a webhook from a payment provider.

HTTP Request

POST http://localhost:8081/api/v1/uae/lean-retail/webhook/

Request Body

Key Value Description
payload object {}.
type string payment_source.created.
message string message for the user
timestamp timestamp current Time
event_id string ID of the event

Get Customer ID

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean-retail/customer/' \
  -H 'accept: application/json'

The response is a customer object associated with the user.

{
  "user_id": 0,
  "customer_id": "string"
}

This endpoint allows to Retrieves the retail customer associated with the authenticated user or creates a new one if it doesn't exist.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean-retail/customer/

Get Eumlet Destination

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean-retail/eumlet/destination/' \
  -H 'accept: application/json'

The response is a destination ID for the Eumlet payment method.

{
  "destination_id": "string"
}

This endpoint allows to Returns the destination ID for the Eumlet payment method.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean-retail/eumlet/destination/

Get User Lean Payment Methods

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean-retail/payment-method/' \
  -H 'accept: application/json'

The response is The destination ID for the Eumlet payment method.

[
  {
    "id": 0,
    "beneficiary": {
      "id": 0,
      "beneficiary_id": "string",
      "destination_id": "string",
      "payment_source_id": "string",
      "status": "ACTIVE",
      "bank": {
        "logo": "string",
        "name": "string",
        "bank_type": "string",
        "identifier": "string"
      }
    },
    "status": "ACTIVE"
  }
]

This endpoint allows to Returns the destination ID for the Eumlet payment method.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean-retail/payment-method/

Delete User Payment Methods

curl -X 'DELETE' \
  'http://localhost:8081/api/v1/uae/lean-retail/payment-method/?id={id}' \
  -H 'accept: application/json'

The response is a string.

"string"

This endpoint allows to Deletes a payment method associated with the authenticated user.

HTTP Request

DELETE http://localhost:8081/api/v1/uae/lean-retail/payment-method/

Parameters Body

Key Value Description
id integer The ID of the payment method to be deleted.

Get Lean Customer ID

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean-retail/user/customer/?id={id}' \
  -H 'accept: application/json'

The response is a customer ID associated with the given user.

{
  "customer_id": "string"
}

This endpoint allows to Returns the customer ID associated with the given user.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean-retail/user/customer/

Parameters Body

Key Value Description
id integer The ID of the user to retrieve the customer ID for.

Get User Destination By Customer ID

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean-retail/user/destination/?customer_id={customer_id}' \
  -H 'accept: application/json'

The response is a details of the user destination.

{
  "destination_id": "string",
  "bank_identifier": "string"
}

This endpoint allows to Retrieves the destination details for the given customer ID.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean-retail/user/destination/

Parameters Body

Key Value Description
customer_id integer The ID of the customer for which the destination details are to be retrieved.

Get User Destination By Customer ID

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean-retail/user-destination/' \
  -H 'accept: application/json'

The response is a details of the user destination.

{
  "destination_id": "string",
  "bank_identifier": "string"
}

This endpoint allows to Retrieves the destination details of the connected user.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean-retail/user-destination/

Get Payment Sources for User

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/lean-retail/payment-sources/' \
  -H 'accept: application/json'

The response is A list of payment sources for the user.

[
  {
    "id": "string",
    "customer_id": "string",
    "app_id": "string",
    "bank_identifier": "string",
    "status": "string",
    "accounts": [
      {
        "id": "string",
        "account_id": "string",
        "account_name": "",
        "account_number": "",
        "iban": "",
        "balance": 0,
        "currency": "",
        "balance_last_updated": "2023-10-03T12:37:37.434Z"
      }
    ],
    "beneficiaries": [
      {
        "id": "string",
        "payment_destination_id": "string",
        "status": "string",
        "beneficiary_cool_off_expiry": "2023-10-03T12:37:37.434Z",
        "bank_identifier": "string"
      }
    ],
    "end_user_ids": [
      "string"
    ]
  }
]

This endpoint allows to Retrieves the payment sources for the given user.

HTTP Request

GET http://localhost:8081/api/v1/uae/lean-retail/payment-sources/

Get User Payment Methods

curl -X 'GET' \
  'http://localhost:8081/api/v1/uae/payment-method/' \
  -H 'accept: application/json'

The response is a schema representing the retrieved payment method data for the authenticated user.

{
  "id": 0,
  "service": "string",
  "name": "string",
  "description": "string"
}

This endpoint allows to Retrieves the payment methods for the currently authenticated user.

HTTP Request

GET http://localhost:8081/api/v1/uae/payment-method/