Veengu Platform Frontend API (2.6.0)

Download OpenAPI specification:Download

General info

Veengu API provides key methods and attributes for managing a digital financial service by Tenants (service providers).

Authentication

Veengu Tenant code

Also as a part of tenant onboarding, Veengu assignes an unique string code for the Tenant. You should always send your code in v-tenant header. # Note your API keys carry many privileges, so be sure to keep them secure! Do not share your API keys in publicly accessible areas such as GitHub, client-side code, and so forth. # All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Access Token structure

Veengu Access Token is JSON Web Token (JWT, tools.ietf.org). It consists of three concatenated Base64url-encoded strings, separated by dots .:

  • Header: contains metadata about the type of the token and cryptographic algorithms used to secure its contents.

  • Payload: contains verifiable security statements, such as an identity of the user and permissions they are allowed.

  • Signature: used to validate that the token is trustworthy and has not been tampered with.

Request identifiers

Each API request has an associated request identifier. You can find this value in response headers, under V-Request-Id. If you need to contact us about a specific request, providing the request identifier will ensure the fastest possible resolution.

Fields special formats

Date and time formats

All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. You can find more information on Veengu Developer Guide API Overview. To get transaction created date in customer local time you use createdAt attribute in transaction response and transaction history.

During transaction initiation you can define transaction local timezone on application client site with sending localUTCOffset attribute as an offset of user mobile device with the locale time zone in ISO 8601 as an offset from UTC formats:

  • ±hh:mm
  • ±hhmm
  • ±hh

In case localUTCOffset attribute is not specified in transaction request Veengu processing core stores and responses createdAt value as server time with Tenant timezone defines in settings.

Money format

All money in API defined as amount object with mandatory fields value and currency. Currency should be present as currency code in ISO 4217 alfa-3 format. The value field should be present as the float number of monetary units specified in an appropriate currency. Field pattern applies based on currency ISO 4217 definition.

Versioning

When we make backwards-incompatible changes to the API, we release new, dated versions. The current version is 2.X.Y. Read our API changelog to learn more about backwards compatibility. Some versions could be deprecated which means you cannot choose this version in API settings and all requests return an API format error. To set the API version for a specific request use V-Version header. As a precaution, use API versioning to test a new API version before committing to an upgrade.

Errors

For error handling Veengu uses conventional HTTP response codes to indicate success or failure of an API request. In general, error codes in the 2xx range indicate success. Codes in the 4xx range indicate errors that failed given the information provided (e.g., a required parameter is missing, a failed transaction, etc.). Codes in the 5xx range indicate errors with Veengu servers (these are rare). Some 4xx errors that could be handled programmatically (e.g., a transaction is declined) include an error code that briefly explains the error reported.

HTTP code description
200 Request processed successfully.
201 Request processed successfully.
400 The request cannot be not accepted, often due to missing a required parameter.
401 Not authenticated
402 The parameters were valid but the request failed.
403 The API key doesn't have permissions to perform the request.
404 The requested resource does not exist.
409 The request is conflicting with another request (perhaps due to using the same idempotent key)
429 Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.
500 Something went wrong on Veengu's end. (These are rare.)
504 Where an API is deprecated and no longer operationally supported by an Veengu.

Pagination

The Veengu API implements cursor-based pagination via the next and prev parameters. Both parameters take a unique key element that identifies the next or previous page. The prev parameter returns objects listed before the current page. The next parameter returns objects listed after the current page. Only one parameter next or prev should be used in the request. If both parameters are provided, only next is used. The returned object includes cursor object with next/prev parameters if there are more objects (for example, transactions) than the defined limit value in response. If the objects list fits in one page cursor object is empty.

All top-level API resources have support request to get object list via API methods. For instance, you can get customers, accounts, and transactions. These API methods share a common structure, taking at least these three parameters: limit, next and prev.

Individual Customer

The following parameters shall be provided to create a new Individual Customer profile with account:

  • Personal phone number,
  • Solution id.

Business Customer

For creating a new Business Customer account, the following setup parameters should be provided:

  • Solution id i.e. the name marketed to the merchants. Identification is the unique id created by the Tenant to internally define the solution

Solution Specific Handbooks

Specific parameters

Get solution-specific parameters

Retrieves solution-specific parameters

Authorizations:
(VeenguApiKeyVeenguSolution)

Responses

Response samples

Content type
{
  • "countries": [
    ],
  • "kycLevels": [
    ],
  • "currencies": [
    ],
  • "industries": [
    ],
  • "localizations": [
    ],
  • "merchantCategoryCodes": [
    ]
}

Country-Specific Handbooks

Country-specific parameters

Get country-specific parameters

Retrieves country-specific parameters

Authorizations:
(VeenguApiKeyVeenguSolution)
path Parameters
id
required
string

country code

Responses

Response samples

Content type
{
  • "id": "AE",
  • "name": "United Arab Emirates",
  • "nameLocalized": "لإمارات العربية المتحدة",
  • "businessLegalTypes": [
    ],
  • "individualDocuments": [
    ]
}

Authentication management

Set or change user password

Define or change the user password. To set a password use V-Access-Token received by sms or/and email OTP authentication and skip oldPassword field.

Authorizations:
(VeenguApiKeyAccessToken)
Request Body schema: application/json
newPassword
required
string
oldPassword
string

Responses

Request samples

Content type
application/json
{
  • "newPassword": "kxpworyewh234423",
  • "oldPassword": "kxpworyewh234423"
}

Set or change secret word

Define or change the user secret word. To set a secret word use V-Access-Token received by sms or/and email OTP authentication and skip oldSecretWord field.

Authorizations:
(VeenguApiKeyAccessToken)
Request Body schema: application/json
newSecretWord
required
string
oldSecretWord
string

Responses

Request samples

Content type
application/json
{
  • "newSecretWord": "secret",
  • "oldSecretWord": "oldsecret"
}

Check if secret word is available for reset

Check if it is possible to reset the secret word

Authorizations:
(VeenguApiKeyAccessToken)

Responses

Response samples

Content type
application/json
{
  • "available": true
}

The list of questions to reset secret word

The user must answer all the questions from the list in order to reset the secret word

Authorizations:
(VeenguApiKeyAccessToken)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Reset secret word

Reset the user's secret word.

Authorizations:
(VeenguApiKeyAccessToken)
Request Body schema: application/json
Array
id
required
string
value
required
string

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Set authentication key

As for now we allow only one key for one identity. Multiple keys may be allowed lately. Only tweetnacl key type is supported.

Authorizations:
(VeenguApiKeyAccessToken)
Request Body schema: application/json
keyType
required
string <base64>
key
required
string
required
object (device)

Responses

Request samples

Content type
application/json
{
  • "keyType": "tweetnacl",
  • "key": "a6d735273f96",
  • "device": {
    }
}

Response samples

Content type
application/json
{
  • "keyId": "1a76a6a8-c706-44b3-b008-a6d735273f96"
}

Delete authentication key and push token

Upon logout mobile application should delete and clear its authentication key and push token.

Authorizations:
VeenguApiKey
path Parameters
id
required
string

An authentication key ID

Responses

Response samples

Content type
application/json
{
  • "keyId": "1a76a6a8-c706-44b3-b008-a6d735273f96"
}

The list of user identity defined by phone number or/and email.

User can have several identities, for example, user has individual wallet and employee account in business wallet.

Authorizations:
(VeenguApiKeyAccessToken)

Responses

Response samples

Content type
application/json
{
  • "emailAddress": "sival14584@soowz.com",
  • "username": "sival14584@soowz.com",
  • "hasPassword": true,
  • "hasSecretWord": true,
  • "name": "Kate Maison",
  • "phoneNumber": "+447930954405",
  • "roles": {
    }
}

End session

Close user session.

Authorizations:
(VeenguApiKeyAccessToken)

Responses

Authenticate with One-time Password

Users authentication flow with one-tome password

One-time password via sms challenge generation

First step for authentication by one-time password delivered by sms

Authorizations:
VeenguApiKey
Request Body schema: application/json
phoneNumber
string

Responses

Request samples

Content type
application/json
{
  • "phoneNumber": "+44987654321"
}

Response samples

Content type
application/json
{
  • "challengeToken": "45603924-194d-4b47-b6be-1e0705b5218b"
}

One-time password via sms verification

One-time password verification

Authorizations:
VeenguApiKey
Request Body schema: application/json
challengeToken
required
string
otp
required
string
name
string

Responses

Request samples

Content type
application/json
{
  • "challengeToken": "45603924-194d-4b47-b6be-1e0705b5218b",
  • "otp": "96240",
  • "name": "David James"
}

One-time password via email

First step for authentication by one-time password delivered by email

Authorizations:
(VeenguApiKeyAccessToken)
Request Body schema: application/json
email
required
string
name
string

Responses

Request samples

Content type
application/json
{
  • "email": "gfbriemann@superpay.com",
  • "name": "Georg Friedrich Bernhard"
}

Response samples

Content type
application/json
{
  • "challengeToken": "45603924-194d-4b47-b6be-1e0705b5218b"
}

One-time password via email verification step

One-time password verification.

Authorizations:
(VeenguApiKeyAccessToken)
Request Body schema: application/json
challengeToken
required
string
otp
required
string

Responses

Request samples

Content type
application/json
{
  • "challengeToken": "45603924-194d-4b47-b6be-1e0705b5218b",
  • "otp": "96240"
}

Key Authentication

Users authentication flow with mobile application key

Begin key challenge

Begin key challenge

Authorizations:
VeenguApiKey
Request Body schema: application/json
keyId
string
object (device)

Responses

Request samples

Content type
application/json
{
  • "keyId": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "device": {
    }
}

Response samples

Content type
application/json
{
  • "challengeToken": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "challengeData": "1a76a6a8-c706-44b3-b008-a6d735273f96"
}

Authenticate with key

Authenticate with key

Authorizations:
VeenguApiKey
Request Body schema: application/json
challengeToken
string
signedChallengeData
string

Responses

Request samples

Content type
application/json
{
  • "challengeToken": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "signedChallengeData": "1a76a6a8-c706-44b3-b008-a6d735273f96"
}

Password Authentication

Users authentication flow with password

Static password authentication

Authentication by static password

Authorizations:
VeenguApiKey
Request Body schema: application/json
username
required
string

A user login assigned by the Platform depending on a user registration flow

password
required
string

A user password. For an employee, it is a five digits Access code provided by a manager via the Business Portal or Customer Support or delivered to a personal phone number via SMS.

Responses

Request samples

Content type
application/json
{
  • "username": "45603924-194d-4b47-b6be-1e0705b5218b",
  • "password": "12345"
}

Secret word authentication

Authenticate with secret word

Authentication by secret word

Authorizations:
(VeenguApiKeyAccessToken)
Request Body schema: application/json
secretWord
required
string

Responses

Request samples

Content type
application/json
{
  • "secretWord": "secret"
}

User profiles

Get profiles list for authenticated user

Retrieves profiles list for authenticated user.

Authorizations:
(VeenguApiKeyAccessToken)

Responses

Response samples

Content type
application/json
Example
[
  • {
    }
]

Get profile limits

Retrieves profile limits for authenticated user.

Authorizations:
(VeenguApiKeyAccessToken)
path Parameters
id
required
string

The ID of the profile

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Locations

Get all location

Get all locations within a tenant's space

Authorizations:
VeenguApiKey

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Images and Media Files Uploads

Add image or media data

Uploads files, for example user avatar or business logo

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: multipart/form-data
mimeType
string
data
required
string <binary>
name
string

Responses

Response samples

Content type
application/json
{
  • "type": "ACCESS_ERROR",
  • "code": "ADDITIONAL_AUTHENTICATION_REQUIRED",
  • "message": "Additional authentication required",
  • "details": {
    }
}

Get an image or media file by id

Retrieves files by id

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

file id

Responses

Response samples

Content type
application/json
{
  • "type": "ACCESS_ERROR",
  • "code": "ADDITIONAL_AUTHENTICATION_REQUIRED",
  • "message": "Additional authentication required",
  • "details": {
    }
}

Individual Profile

Create individual profile

Creates a new individual customer profile with specified phone number within Tenant's space. New account will be created if default product is configured in Onboarding feature of the specified Solution. Phone number shall not be used yet by another individual profile within the same Tenant space.

Authorizations:
(VeenguApiKeyAccessToken)
Request Body schema: application/json
id
string <uuid>

Profile identifier

phoneNumber
required
string

Individual consumer phone number

solutionId
required
string <uuid>

Solution id should be specified for individual customer on-boarding

country
string

Individual consumer address Country in ISO 3166-1 alpha-2 . Value from country handbook.

firstName
string

Individual consumer First name

lastName
string

Individual consumer Last name

addNames
Array of strings
birthDate
string <date>

Individual consumer date of birth

gender
string
Enum: "MALE" "FEMALE"

Individual consumer gender

status
string
Enum: "ACTIVE" "BLOCKED"

Individual consumer status

Array of objects
object (file)
kycLevel
string

Individual consumer KYC level. Tenant's handbook could be customized by Veengu team.

kycStatus
string

Individual consumer KYC state defines the current state of a user KYC process

kycState
string

Individual consumer KYC state defines the current state of a user KYC process

Array of objects (document)
object (address)
object [ 0 .. 10 ] properties

Any other extra profile properties may appear in this section

Responses

Request samples

Content type
application/json
{
  • "phoneNumber": "+441234563421",
  • "solutionId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "country": "AE",
  • "firstName": "Leonhard",
  • "lastName": "Euler",
  • "birthDate": "1983-09-18",
  • "gender": "MALE"
}

Response samples

Content type
application/json
{
  • "lastName": "Euler",
  • "firstName": "Leonhard",
  • "kycLevel": "basic",
  • "phoneNumber": "+441234563421",
  • "gender": "MALE",
  • "createdAt": "2020-03-10T12:45:02+02:00",
  • "solutionId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "country": "AE",
  • "id": "95e656f0-68d7-475f-9429-f7a6e0263ad4",
  • "status": "ACTIVE"
}

Get individual profile

Retrieves full individual profile data by individual customer id.

Authorizations:
(VeenguApiKeyAccessToken)
path Parameters
id
required
string

individual profile id

Responses

Response samples

Content type
application/json
{
  • "id": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "phoneNumber": "+441234563421",
  • "solutionId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "country": "AE",
  • "firstName": "Leonhard",
  • "lastName": "Euler",
  • "addNames": [
    ],
  • "birthDate": "1983-09-18",
  • "gender": "MALE",
  • "status": "ACTIVE",
  • "contacts": [
    ],
  • "icon": {
    },
  • "kycLevel": "basic",
  • "kycStatus": "ACTIVE",
  • "kycState": "VERIFIED",
  • "documents": [
    ],
  • "address": {
    },
  • "additionalProperties": {
    }
}

Edit individual customer profile

Updates individual customer profile. To update a particular field or a subset of fields all other fields in the request body with current values shall be provided, otherwise the current values will be erased.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Individual customer profile id

Request Body schema: application/json
id
string <uuid>

Profile identifier

phoneNumber
required
string

Individual consumer phone number

solutionId
required
string <uuid>

Solution id should be specified for individual customer on-boarding

country
string

Individual consumer address Country in ISO 3166-1 alpha-2 . Value from country handbook.

firstName
string

Individual consumer First name

lastName
string

Individual consumer Last name

addNames
Array of strings
birthDate
string <date>

Individual consumer date of birth

gender
string
Enum: "MALE" "FEMALE"

Individual consumer gender

status
string
Enum: "ACTIVE" "BLOCKED"

Individual consumer status

Array of objects
object (file)
kycLevel
string

Individual consumer KYC level. Tenant's handbook could be customized by Veengu team.

kycStatus
string

Individual consumer KYC state defines the current state of a user KYC process

kycState
string

Individual consumer KYC state defines the current state of a user KYC process

Array of objects (document)
object (address)
object [ 0 .. 10 ] properties

Any other extra profile properties may appear in this section

Responses

Request samples

Content type
application/json
{
  • "lastName": "Euler",
  • "firstName": "Leonhard",
  • "kycLevel": "basic",
  • "phoneNumber": "+441234563421",
  • "gender": "MALE",
  • "createdAt": "2020-03-10T12:45:02+02:00",
  • "solutionId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "country": "AE",
  • "id": "95e656f0-68d7-475f-9429-f7a6e0263ad4",
  • "status": "ACTIVE"
}

Response samples

Content type
application/json
{
  • "lastName": "Euler",
  • "firstName": "Leonhard",
  • "kycLevel": "basic",
  • "phoneNumber": "+441234563421",
  • "gender": "MALE",
  • "createdAt": "2020-03-10T12:45:02+02:00",
  • "solutionId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "country": "AE",
  • "id": "95e656f0-68d7-475f-9429-f7a6e0263ad4",
  • "status": "ACTIVE"
}

Business Profile

Business customer

Create a business profile

Create a business customer profile

Authorizations:
(VeenguApiKeyAccessToken)
Request Body schema: application/json
id
string <uuid>

Profile identifier

email
string

Primary business profile email

required
object
solutionId
required
string

Solution id should be specified for business customer

country
required
string
Enum: "GB" "FR" "SA" "AE" "CH"

Business consumer address Country in ISO 3166-1 alpha-2 . Value from country handbook.

status
string
Enum: "ACTIVE" "BLOCKED"

Business consumer status

localizations
string

Value from country handbook. English is default lagnuage.

legalName
string

Business consumer legalName name

legalType
required
string

Business consumer legal type. Available legal types are defined in country handbook

tradeName
string

Business consumer trade name

tradeNameLocalized
string

Business consumer trade name in local language

Array of objects
description
string

Business entity description

industry
string

Business entity industry

merchantCategoryCode
string

Merchant Category Code

kycLevel
string

Business consumer KYC level. Tenant's handbook could be customized by Veengu team.

Array of objects (document)
object (address)
object
object [ 0 .. 10 ] properties

Any other extra profile properties may appear in this section

Responses

Request samples

Content type
application/json
{
  • "legalType": "LLC",
  • "solutionId": "6ea5263a-0226-4281-b71f-c10cf2d68eb8",
  • "primaryDocument": {
    },
  • "email": "gfbriemann@superpay.com",
  • "country": "AE",
  • "legalName": "Costa Coffee XVIII",
  • "phoneNumber": 447930954444
}

Response samples

Content type
application/json
{
  • "id": "a00dd671-6217-43ce-83c9-c5d4d75f9c42",
  • "solutionId": "6ea5263a-0226-4281-b71f-c10cf2d68eb8",
  • "kycLevel": "bronze",
  • "status": "active",
  • "createdAt": "2020-10-20T09:38:44.705654Z",
  • "country": "AE",
  • "legalName": "Costa Coffee XVIII",
  • "legalType": "LLC",
  • "phoneNumber": "+447930954444",
  • "primaryDocument": {
    }
}

Get business profile by business profile id

Get business customer profile info

Authorizations:
(VeenguApiKeyAccessToken)
path Parameters
id
required
string

Business customer profile id

Responses

Response samples

Content type
application/json
{
  • "id": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "email": "gfbriemann@superpay.com",
  • "primaryDocument": {
    },
  • "solutionId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "country": "AE",
  • "status": "ACTIVE",
  • "localizations": "ar",
  • "legalName": "BigNumbersCorporation Ltd.",
  • "legalType": "LTD",
  • "tradeName": "Big Numbers",
  • "tradeNameLocalized": "أعداد كبيرة",
  • "contacts": [
    ],
  • "description": "Super Company",
  • "industry": "Finance",
  • "merchantCategoryCode": 780,
  • "kycLevel": "basic",
  • "documents": [
    ],
  • "address": {
    },
  • "branding": {
    },
  • "additionalProperties": {
    }
}

Edit business profile

Edit business customer profile.

Authorizations:
(VeenguApiKeyAccessToken)
path Parameters
id
required
string

Business customer profile id

Request Body schema: application/json
id
string <uuid>

Profile identifier

email
string

Primary business profile email

required
object
solutionId
required
string

Solution id should be specified for business customer

country
required
string
Enum: "GB" "FR" "SA" "AE" "CH"

Business consumer address Country in ISO 3166-1 alpha-2 . Value from country handbook.

status
string
Enum: "ACTIVE" "BLOCKED"

Business consumer status

localizations
string

Value from country handbook. English is default lagnuage.

legalName
string

Business consumer legalName name

legalType
required
string

Business consumer legal type. Available legal types are defined in country handbook

tradeName
string

Business consumer trade name

tradeNameLocalized
string

Business consumer trade name in local language

Array of objects
description
string

Business entity description

industry
string

Business entity industry

merchantCategoryCode
string

Merchant Category Code

kycLevel
string

Business consumer KYC level. Tenant's handbook could be customized by Veengu team.

Array of objects (document)
object (address)
object
object [ 0 .. 10 ] properties

Any other extra profile properties may appear in this section

Responses

Request samples

Content type
application/json
{
  • "id": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "email": "gfbriemann@superpay.com",
  • "primaryDocument": {
    },
  • "solutionId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "country": "AE",
  • "status": "ACTIVE",
  • "localizations": "ar",
  • "legalName": "BigNumbersCorporation Ltd.",
  • "legalType": "LTD",
  • "tradeName": "Big Numbers",
  • "tradeNameLocalized": "أعداد كبيرة",
  • "contacts": [
    ],
  • "description": "Super Company",
  • "industry": "Finance",
  • "merchantCategoryCode": 780,
  • "kycLevel": "basic",
  • "documents": [
    ],
  • "address": {
    },
  • "branding": {
    },
  • "additionalProperties": {
    }
}

Response samples

Content type
application/json
{
  • "id": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "email": "gfbriemann@superpay.com",
  • "primaryDocument": {
    },
  • "solutionId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "country": "AE",
  • "status": "ACTIVE",
  • "localizations": "ar",
  • "legalName": "BigNumbersCorporation Ltd.",
  • "legalType": "LTD",
  • "tradeName": "Big Numbers",
  • "tradeNameLocalized": "أعداد كبيرة",
  • "contacts": [
    ],
  • "description": "Super Company",
  • "industry": "Finance",
  • "merchantCategoryCode": 780,
  • "kycLevel": "basic",
  • "documents": [
    ],
  • "address": {
    },
  • "branding": {
    },
  • "additionalProperties": {
    }
}

Location

Location for business customer profile

Create location

Create new location for business customer

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
id
string <uuid>
businessId
required
string <uuid>
name
required
string
status
string
Enum: "ACTIVE" "BLOCKED" "CLOSED"
merchantCategoryCode
string
object (address)
object [ 0 .. 10 ] properties

Any other extra profile properties may appear in this section

Responses

Request samples

Content type
application/json
{
  • "businessId": "d5c641c5-6678-4a92-970c-295f7777d",
  • "name": "Bright Flowers",
  • "merchantCategoryCode": "0780",
  • "address": {
    },
  • "additionalProperties": {
    }
}

Response samples

Content type
application/json
{
  • "id": "b34a0a7a-a748-48b5-8e8d-7b44aa27b5d1",
  • "businessId": "d5c641c5-6678-4a92-970c-295f7777d",
  • "name": "Bright Flowers",
  • "status": "ACTIVE",
  • "merchantCategoryCode": "0780",
  • "address": {
    },
  • "additionalProperties": {
    }
}

Get locations for business profile

Get all locations for a business customer

Authorizations:
(VeenguApiKeyAccessTokenProfile)
query Parameters
status
string
Example: status=active

Location status

city
string

Full context search by location address city

region
string

Full context search by location address region

name
string

Full context search by location name

ids
string

The list of locations could be filtered by the list of ids. If ids parameter is used in the query, pagination is not applicable

page
required
string
Example: page=1

For pagination is supported offset-based pagination - page a number of the requested page. The number of pages could be retrieved and calculated from the response Content-Range header. The simple REST client expects the API to include a Content-Range header in the response to getList calls. The value must be the total number of resources in the collection. This allows react-admin to know how many pages of resources there are in total, and build the pagination controls. Example: Content-Range: locations 0-24/319

perPage
required
string
Example: perPage=10

Number of rows on one page to be returned. Number of rows can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get location in business profile by business location id

Get location for business customer

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

business location id

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "businessId": "50092e54-cd12-4059-9828-e8c4ee9a3cf5",
  • "name": "string",
  • "status": "ACTIVE",
  • "merchantCategoryCode": "string",
  • "address": {
    },
  • "additionalProperties": {
    }
}

Edit location

Edit location details

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Location ID

Request Body schema: application/json
id
string <uuid>
businessId
required
string <uuid>
name
required
string
status
string
Enum: "ACTIVE" "BLOCKED" "CLOSED"
merchantCategoryCode
string
object (address)
object [ 0 .. 10 ] properties

Any other extra profile properties may appear in this section

Responses

Request samples

Content type
application/json
{
  • "id": "b34a0a7a-a748-48b5-8e8d-7b44aa27b5d1",
  • "businessId": "d5c641c5-6678-4a92-970c-295f7777d",
  • "name": "Bright Flowers",
  • "status": "NOT_ACTIVATED",
  • "merchantCategoryCode": "0780",
  • "address": {
    },
  • "additionalProperties": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "businessId": "50092e54-cd12-4059-9828-e8c4ee9a3cf5",
  • "name": "string",
  • "status": "ACTIVE",
  • "merchantCategoryCode": "string",
  • "address": {
    },
  • "additionalProperties": {
    }
}

Close location

Change location status to closed and marked as deleted true

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Business location id

Responses

Response samples

Content type
application/json
{
  • "type": "ACCESS_ERROR",
  • "code": "ADDITIONAL_AUTHENTICATION_REQUIRED",
  • "message": "Additional authentication required",
  • "details": {
    }
}

Terminal

Terminal for business customer profile

Create terminal for business profile

Create a terminal for a business customer

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
id
string <uuid>
businessId
required
string <uuid>
locationId
string <uuid>
accountId
required
string <uuid>
label
required
string
object (device)
status
string
Enum: "NOT_ACTIVATED" "ACTIVE" "BLOCKED" "CLOSED"
linkedPhone
string
object [ 0 .. 10 ] properties

Any other extra profile properties may appear in this section

Responses

Request samples

Content type
application/json
{
  • "locationId": "b34a0a7a-a748-48b5-8e8d-7b44aa27b5d1",
  • "label": "T0001",
  • "linkedPhone": "+445755748793",
  • "additionalProperties": {
    }
}

Response samples

Content type
application/json
{
  • "id": "d5c641c5-6678-4a92-970c-66666667d",
  • "businessId": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "locationId": "b34a0a7a-a748-48b5-8e8d-7b44aa27b5d1",
  • "label": "T0001",
  • "status": "NOT_ACTIVATED",
  • "linkedPhone": "+445755748793",
  • "additionalProperties": {
    }
}

Get terminals for business profile

Get all terminals for a business customer

Authorizations:
(VeenguApiKeyAccessTokenProfile)
query Parameters
status
string
Example: status=active
page
required
string
Example: page=1

For pagination is supported offset-based pagination - page a number of the requested page. The number of pages could be retrieved and calculated from the response Content-Range header. The simple REST client expects the API to include a Content-Range header in the response to getList calls. The value must be the total number of resources in the collection. This allows react-admin to know how many pages of resources there are in total, and build the pagination controls. Example: Content-Range: locations 0-24/319

perPage
required
string
Example: perPage=10

Number of rows on one page to be returned. Number of rows can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Edit terminal

Edit terminal details

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Business terminal id

Request Body schema: application/json
id
string <uuid>
businessId
required
string <uuid>
locationId
string <uuid>
accountId
required
string <uuid>
label
required
string
object (device)
status
string
Enum: "NOT_ACTIVATED" "ACTIVE" "BLOCKED" "CLOSED"
linkedPhone
string
object [ 0 .. 10 ] properties

Any other extra profile properties may appear in this section

Responses

Request samples

Content type
application/json
{
  • "id": "d5c641c5-6678-4a92-970c-66666667d",
  • "businessId": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "locationId": "b34a0a7a-a748-48b5-8e8d-7b44aa27b5d1",
  • "label": "T0001",
  • "status": "NOT_ACTIVATED",
  • "linkedPhone": "+445755778354",
  • "additionalProperties": {
    }
}

Response samples

Content type
application/json
{
  • "id": "d5c641c5-6678-4a92-970c-66666667d",
  • "businessId": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "locationId": "b34a0a7a-a748-48b5-8e8d-7b44aa27b5d1",
  • "label": "T0001",
  • "status": "NOT_ACTIVATED",
  • "linkedPhone": "+445755778354",
  • "additionalProperties": {
    }
}

Get terminal details by terminal id

Get business terminal details by terminal id

Authorizations:
(VeenguApiKeyAccessToken) (VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Business terminal id

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "businessId": "50092e54-cd12-4059-9828-e8c4ee9a3cf5",
  • "locationId": "1a5515a3-ba81-4a42-aee7-ad9ffc090a54",
  • "accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9",
  • "label": "T-0001",
  • "device": {
    },
  • "status": "NOT_ACTIVATED",
  • "linkedPhone": "+445755748793",
  • "additionalProperties": {
    }
}

Get business terminal currencies list

Get list of currencies for purchase acceptance available for specified terminal

Authorizations:
(VeenguApiKeyAccessToken) (VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Business terminal id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Temporary block terminal

Change terminal status to blocked

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Business terminal id

Responses

Response samples

Content type
application/json
{
  • "id": "d5c641c5-6678-4a92-970c-66666667d",
  • "businessId": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "locationId": "b34a0a7a-a748-48b5-8e8d-7b44aa27b5d1",
  • "label": "T0001",
  • "device": {
    },
  • "status": "BLOCKED"
}

Close terminal

Change terminal status to CLOSED and marked as deleted true

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Business terminal id

Responses

Create activation code for not activated terminal

Create activation code for terminal activation on cashier device

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Business terminal id

Request Body schema: application/json
phone
string

Responses

Request samples

Content type
application/json
{
  • "phone": "+445755748793"
}

Response samples

Content type
application/json
{
  • "id": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "businessId": "1a76a6a8-c706-44b3-b008-a6d735273f96",
  • "value": "8560864289978243",
  • "terminalId": "d5c641c5-6678-4a92-970c-22222227d",
  • "expires": "2020-05-10T00:00:00.000Z",
  • "createdAt": "2020-11-26T21:35:20.33227Z",
  • "status": "VALID",
  • "phone": "+445755748793"
}

Enrol mobile device as terminal

Activate terminal on cashier device

Authorizations:
VeenguApiKey
Request Body schema: application/json
code
required
string
keyType
required
string

As for now we allow only one key for one identity. Multiple keys may be allowed lately. Only tweetnacl key type is supported.

key
required
string <byte>

base-64 key

required
object (device)

Responses

Request samples

Content type
application/json
{
  • "code": "AED48-DHE39-P3802-026JU",
  • "keyType": "tweetnacl",
  • "key": "U3dhZ2dlciByb2Nrcw==",
  • "device": {
    }
}

Response samples

Content type
application/json
{
  • "keyId": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJleUp3Y205MmFXUmxja2xFSWpvaWRtVmxibWQxSWl3aWNISnZkbWxrWlhKTFpYa2lPaUpZVkVOZlZrNUhWUzh5SW4wPSIsImlzcyI6InBsYXktc2lsaG91ZXR0ZSIsImV4cCI6MTU4MzQ3MzI0OSwiaWF0IjoxNTgzNDMwMDQ5LCJqdGkiOiIyY2RmOTljNzA2NjNhMjU2NTczZGU4MDlhYWRkMzA4Mjc2ODYyYzEyZmVmOWM0YTYxNDc4MDBhMDUxOWUwNmU0ZWJhYmVmNTAwYmUwOTU1MjgyMGUzNjlmYjQ3YzgyZTdkZmVjMGJkODQyODcxMjg5OTc3YjhlMGZiYTg3MWI1MDE5MWQ3Yzc3OGU5ZGI2YjkyZjRjNGQwZDFhM2I4NTU5ODQ3MmM0MWU4ZTJhMDEwYmY1ZDUxMGVmODVjZDlkNmIyYzFkYTVmYzI5OTE5MTNlMmFlZGEwYjA1NTVhMTAxZDkxZGM3YWM4MjY0NmM2NzA2MGQzMTkzZDAwZDdlYTkyIn0.fc8Ls7z1F9SXzJuR7s667qBxIitAmgVK2Rdtk36reBw",
  • "terminalId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Get employee list linked to the terminal

Retrieve Cashiers list for activated Terminal

Authorizations:
(VeenguApiKeyAccessToken)
path Parameters
id
required
string

Business terminal id

query Parameters
page
required
string
Example: page=1

For pagination is supported offset-based pagination - page a number of the requested page. The number of pages could be retrieved and calculated from the response Content-Range header. The simple REST client expects the API to include a Content-Range header in the response to getList calls. The value must be the total number of resources in the collection. This allows react-admin to know how many pages of resources there are in total, and build the pagination controls. Example: Content-Range: employees 0-24/319

perPage
required
string
Example: perPage=10

Number of rows on one page to be returned. Number of rows can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Terminal transactions history

Get transactions history for a specified terminal

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Terminal id

query Parameters
fromCreatedAt
string
Example: fromCreatedAt=2020-03-01T12:45:02+02:00

Datetime in the past or today to define beginning for requested period.

toCreatedAt
string
Example: toCreatedAt=2020-03-04T12:45:02+02:00

Datetime in the past or today to define end for requested period. Sysdate is used in case the value is not specified.

next
string
Example: next=eyJsYXN0RHQiOiIyMDIwLTA0LTEwVDEzOjM1OjA5LjMyMVoiLCJvZmZzZXQiOjEsImZyb20iOiIyMDIwLTA0LTEwVDE4OjAzOjQ2LjQ2NVoiLCJhY2NvdW50T3duZXJJZCI6IjAyZjRmNmIxLWYxYzMtNDA3MS05Mzg1LTMzYzkyNTZhNGMwNiJ9

For pagination is supported cursor/limit-based pagination - next a unique key element identifies the next page. Use next string from the response to point to the next page. If next parameter is missed the latest transactions are returned in the response. Only one parameter next or prev should be used in the request.

prev
string

For pagination is supported cursor/limit-based pagination - prev a unique key element identifies the previous page. Use prev string from the response to point to the previous page.

limit
string
Example: limit=10

Number of rows on one page to be returned. Limit can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
{
  • "cursors": {
    },
  • "transactions": [
    ]
}

Employee

Employee person for business customer profile

Create a employee for business profile

Create new employees for business customer

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
id
string <uuid>
businessId
required
string <uuid>
firstName
required
string
lastName
required
string
phoneNumber
string
email
string
Array of objects (document)
object
roles
required
Array of strings
Items Enum: "BUSINESS_ADMINISTRATOR" "BUSINESS_MANAGER" "BUSINESS_CASHIER"
terminalId
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "businessId": "d5c641c5-6678-4a92-970c-295f7777d",
  • "firstName": "Georg Friedrich Bernhard",
  • "lastName": "Riemann",
  • "phoneNumber": "+44985585843",
  • "email": "gfbriemann@superpay.com",
  • "document": {
    },
  • "authority": {
    },
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "90907d70-8770-4a0c-a53c-8bb7e3e5d4e1",
  • "businessId": "d5c641c5-6678-4a92-970c-295f7777d",
  • "firstName": "Georg Friedrich Bernhard",
  • "lastName": "Riemann",
  • "phoneNumber": "+44985585843",
  • "email": "gfbriemann@superpay.com",
  • "document": {
    },
  • "authority": {
    },
  • "roles": [
    ]
}

Get employees for business profile

Get all employees for business customer

Authorizations:
(VeenguApiKeyAccessTokenProfile)
query Parameters
role
string

Employee role enum value

owner
boolean

The flag to filter employees with owner property

executive
boolean

The flag to filter employees with executive property

name
string

Full context search by employees's fist name and last name

ids
string

The list of employees could be filtered by the list of ids. If ids parameter is used in the query, pagination is not applicable

page
required
string
Example: page=1

For pagination is supported offset-based pagination - page a number of the requested page. The number of pages could be retrieved and calculated from the response Content-Range header. The simple REST client expects the API to include a Content-Range header in the response to getList calls. The value must be the total number of resources in the collection. This allows react-admin to know how many pages of resources there are in total, and build the pagination controls. Example: Content-Range: employee 0-24/319

perPage
required
string
Example: perPage=10

Number of rows on one page to be returned. Number of rows can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get a employee by employee id

Get a employee by employee id

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Employee id

Responses

Response samples

Content type
application/json
{
  • "id": "d5c641c5-6678-4a92-970c-295f7777d",
  • "businessId": "35873485973052",
  • "firstName": "Georg Friedrich Bernhard",
  • "lastName": "Riemann",
  • "phoneNumber": "+44985585843",
  • "email": "gfbriemann@superpay.com",
  • "document": {
    },
  • "authority": {
    },
  • "roles": [
    ]
}

Edit employee

Edit employees details

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Employee id

Request Body schema: application/json
id
string <uuid>
businessId
required
string <uuid>
firstName
required
string
lastName
required
string
phoneNumber
string
email
string
Array of objects (document)
object
roles
required
Array of strings
Items Enum: "BUSINESS_ADMINISTRATOR" "BUSINESS_MANAGER" "BUSINESS_CASHIER"
terminalId
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "id": "d5c641c5-6678-4a92-970c-295f7777d",
  • "businessId": "b6c8556c-b678-42d6-bec8-8452ed69c303",
  • "firstName": "Georg Friedrich Bernhard",
  • "lastName": "Riemann",
  • "phoneNumber": "+44985585843",
  • "email": "gfbriemann@superpay.com",
  • "documents": [
    ],
  • "authority": {
    },
  • "roles": [
    ],
  • "terminalId": "d5c641c5-6678-4a92-970c-295f7777d"
}

Response samples

Content type
application/json
{
  • "id": "d5c641c5-6678-4a92-970c-295f7777d",
  • "businessId": "b6c8556c-b678-42d6-bec8-8452ed69c303",
  • "firstName": "Georg Friedrich Bernhard",
  • "lastName": "Riemann",
  • "phoneNumber": "+44985585843",
  • "email": "gfbriemann@superpay.com",
  • "documents": [
    ],
  • "authority": {
    },
  • "roles": [
    ],
  • "terminalId": "d5c641c5-6678-4a92-970c-295f7777d"
}

Delete a employee

Delete a employee within specified employee id

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Employee id

Responses

Response samples

Content type
application/json
{
  • "type": "ACCESS_ERROR",
  • "code": "ADDITIONAL_AUTHENTICATION_REQUIRED",
  • "message": "Additional authentication required",
  • "details": {
    }
}

Create a new access code for an employee

Create new access code for an employee. After successful creation previous access code is not valid anymore.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Employee id

Request Body schema: application/json
accessCode
required
string

Responses

Request samples

Content type
application/json
{
  • "accessCode": "12345"
}

Response samples

Content type
application/json
{
  • "type": "ACCESS_ERROR",
  • "code": "ADDITIONAL_AUTHENTICATION_REQUIRED",
  • "message": "Additional authentication required",
  • "details": {
    }
}

Get employee list linked to the terminal

Retrieve Cashiers list for activated Terminal

Authorizations:
(VeenguApiKeyAccessToken)
path Parameters
id
required
string

Business terminal id

query Parameters
page
required
string
Example: page=1

For pagination is supported offset-based pagination - page a number of the requested page. The number of pages could be retrieved and calculated from the response Content-Range header. The simple REST client expects the API to include a Content-Range header in the response to getList calls. The value must be the total number of resources in the collection. This allows react-admin to know how many pages of resources there are in total, and build the pagination controls. Example: Content-Range: employees 0-24/319

perPage
required
string
Example: perPage=10

Number of rows on one page to be returned. Number of rows can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Static Payment Details

Static payment details generated by the Platform via Dashboard or Business Portal

Create new static payment details (QR) for business customer

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
id
required
string <uui>
object (amount)

Money object specified by value and currency

businessId
required
string <uuid>
comment
string
createdAt
string <date-time>
name
required
string
operationType
required
string
Enum: "PURCHASE" "CASH_DEPOSIT" "CASH_WITHDRAWAL" "P2P_TRANSFER"
solutionId
required
string <uuid>
terminalId
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "amount": {
    },
  • "businessId": "f5b9cd97-ca4f-463d-9430-ad555b996789",
  • "comment": "Cappuccino Large",
  • "name": "Cappuccino L",
  • "operationType": "PURCHASE",
  • "solutionId": "6ea5263a-0226-4281-b71f-c10cf2d68eb8",
  • "terminalId": "877e2ce6-887b-480c-9c9c-e73851a833ab"
}

Response samples

Content type
application/json
{
  • "amount": {
    },
  • "businessId": "f5b9cd97-ca4f-463d-9430-ad555b996789",
  • "comment": "Cappuccino Large",
  • "createdAt": "2020-11-02T06:53:59.557829Z",
  • "id": "cd8c69d8-557b-4484-9280-5bc13e08b714",
  • "name": "Cappuccino L",
  • "operationType": "PURCHASE",
  • "solutionId": "6ea5263a-0226-4281-b71f-c10cf2d68eb8",
  • "terminalId": "877e2ce6-887b-480c-9c9c-e73851a833ab"
}

Get static payment details (QR) for business profile

Get all static payment details (QR) for business customer

Authorizations:
(VeenguApiKeyAccessTokenProfile)
query Parameters
terminalId
string

Search static payment details (QR) by terminal id

page
required
string
Example: page=1

For pagination is supported offset-based pagination - page a number of the requested page. The number of pages could be retrieved and calculated from the response Content-Range header. The simple REST client expects the API to include a Content-Range header in the response to getList calls. The value must be the total number of resources in the collection. This allows react-admin to know how many pages of resources there are in total, and build the pagination controls. Example: Content-Range: staticPaymentDetails 0-24/319

perPage
required
string
Example: perPage=10

Number of rows on one page to be returned. Number of rows can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get a static payment details (QR) by id

Get a static payment details (QR) by id

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Static payment details (QR) id

Responses

Response samples

Content type
application/json
{
  • "amount": {
    },
  • "businessId": "f5b9cd97-ca4f-463d-9430-ad555b996789",
  • "comment": "Cappuccino Large",
  • "createdAt": "2020-11-02T06:53:59.557829Z",
  • "id": "cd8c69d8-557b-4484-9280-5bc13e08b714",
  • "name": "Cappuccino L",
  • "operationType": "PURCHASE",
  • "solutionId": "6ea5263a-0226-4281-b71f-c10cf2d68eb8",
  • "terminalId": "877e2ce6-887b-480c-9c9c-e73851a833ab"
}

Edit static payment details (QR)

Edit static payment details (QR)

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Static Payment Details id

Request Body schema: application/json
id
required
string <uui>
object (amount)

Money object specified by value and currency

businessId
required
string <uuid>
comment
string
createdAt
string <date-time>
name
required
string
operationType
required
string
Enum: "PURCHASE" "CASH_DEPOSIT" "CASH_WITHDRAWAL" "P2P_TRANSFER"
solutionId
required
string <uuid>
terminalId
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "id": "cd8c69d8-557b-4484-9280-5bc13e08b714",
  • "amount": {
    },
  • "businessId": "f5b9cd97-ca4f-463d-9430-ad555b996789",
  • "comment": "Cappuccino Large",
  • "createdAt": "2020-11-02T06:53:59.557829Z",
  • "name": "Cappuccino L",
  • "operationType": "PURCHASE",
  • "solutionId": "6ea5263a-0226-4281-b71f-c10cf2d68eb8",
  • "terminalId": "877e2ce6-887b-480c-9c9c-e73851a833ab"
}

Response samples

Content type
application/json
{
  • "id": "cd8c69d8-557b-4484-9280-5bc13e08b714",
  • "amount": {
    },
  • "businessId": "f5b9cd97-ca4f-463d-9430-ad555b996789",
  • "comment": "Cappuccino Large",
  • "createdAt": "2020-11-02T06:53:59.557829Z",
  • "name": "Cappuccino L",
  • "operationType": "PURCHASE",
  • "solutionId": "6ea5263a-0226-4281-b71f-c10cf2d68eb8",
  • "terminalId": "877e2ce6-887b-480c-9c9c-e73851a833ab"
}

Delete a static payment details (QR) by id

Delete a static payment details (QR) by id

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Static payment details (QR) id

Responses

Response samples

Content type
application/json
{
  • "type": "ACCESS_ERROR",
  • "code": "ADDITIONAL_AUTHENTICATION_REQUIRED",
  • "message": "Additional authentication required",
  • "details": {
    }
}

Accounts

Individual and business customer profile

Get accounts list by profile id

Retrieves the list of all accounts owned by profile with specified id.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)

Responses

Response samples

Content type
application/json
Example
[
  • {
    }
]

Individual transactions history

Get transactions history for a specified individual customer account

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Customer account id

query Parameters
fromCreatedAt
string
Example: fromCreatedAt=2020-03-01T12:45:02+02:00

Datetime in the past or today to define beginning for requested period.

toCreatedAt
string
Example: toCreatedAt=2020-03-04T12:45:02+02:00

Datetime in the past or today to define end for requested period. Sysdate is used in case the value is not specified.

next
string
Example: next=eyJsYXN0RHQiOiIyMDIwLTA0LTEwVDEzOjM1OjA5LjMyMVoiLCJvZmZzZXQiOjEsImZyb20iOiIyMDIwLTA0LTEwVDE4OjAzOjQ2LjQ2NVoiLCJhY2NvdW50T3duZXJJZCI6IjAyZjRmNmIxLWYxYzMtNDA3MS05Mzg1LTMzYzkyNTZhNGMwNiJ9

For pagination is supported cursor/limit-based pagination - next a unique key element identifies the next page. Use next string from the response to point to the next page. If next parameter is missed the latest transactions are returned in the response. Only one parameter next or prev should be used in the request.

prev
string

For pagination is supported cursor/limit-based pagination - prev a unique key element identifies the previous page. Use prev string from the response to point to the previous page.

limit
string
Example: limit=10

Number of rows on one page to be returned. Limit can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
Example
{
  • "cursors": {
    },
  • "transactions": [
    ]
}

Account or profile limits

Get the list of limits for a specified account

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Customer account id

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Cards issuing

Issuing plastic or virtual cards for individuals or businesses

Get card types available to issue

Retrieves the list of available card types id, name and payment system.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Instant card issuing

Instant card issuing for the profile with specified id in v-profile header. This option is available only if card management system supports.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
cardType
required
string
accountId
required
string
alias
string

Responses

Request samples

Content type
application/json
{
  • "cardType": "mastercard.gold",
  • "accountId": "df3cb043-d835-4351-8124-3b07bd60d9c5",
  • "alias": "My first card"
}

Response samples

Content type
application/json
{
  • "id": "cd070b80-9ec8-4421-bf45-bf4fcae0b6ec",
  • "profileId": "9356eeb8-d2fe-4bb6-892f-2e62373ccd72",
  • "accountId": "df3cb043-d835-4351-8124-3b07bd60d9c5",
  • "paymentSystem": "MASTERCARD",
  • "cardType": "mastercard.gold",
  • "lastFour": 1028,
  • "alias": "My first card",
  • "cardholderName": "DIGITAL CARD",
  • "expirationDate": "23-11",
  • "status": "ACTIVE"
}

Get cards list for the profile

Retrieves the list of all cards owned by profile with specified id in v-profile header.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Defile custom name by the user

User can define some custom name for the card

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

The ID of the card

Request Body schema: application/json
alias
required
string

Responses

Request samples

Content type
application/json
{
  • "alias": "My first card"
}

Response samples

Content type
application/json
{
  • "id": "cd070b80-9ec8-4421-bf45-bf4fcae0b6ec",
  • "profileId": "9356eeb8-d2fe-4bb6-892f-2e62373ccd72",
  • "accountId": "df3cb043-d835-4351-8124-3b07bd60d9c5",
  • "paymentSystem": "MASTERCARD",
  • "cardType": "mastercard.gold",
  • "lastFour": 1028,
  • "alias": "My first card",
  • "cardholderName": "DIGITAL CARD",
  • "expirationDate": "23-11",
  • "status": "ACTIVE"
}

Remove card

Send request to card management system to close the card

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

The ID of the card

Responses

Response samples

Content type
application/json
{
  • "type": "ACCESS_ERROR",
  • "code": "ADDITIONAL_AUTHENTICATION_REQUIRED",
  • "message": "Additional authentication required",
  • "details": {
    }
}

Get full card number

Retrieves the full card number.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

The ID of the card

Responses

Response samples

Content type
text/plain
5453283806463942

Get card security value

Retrieves the card security value (cvv/cvc2).

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

The ID of the card

Responses

Response samples

Content type
text/plain
890

Temporary block card

Temporary block card

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

The ID of the card

Responses

Response samples

Content type
application/json
{
  • "id": "cd070b80-9ec8-4421-bf45-bf4fcae0b6ec",
  • "accountId": "df3cb043-d835-4351-8124-3b07bd60d9c5",
  • "paymentSystem": "MASTERCARD",
  • "cardType": "mastercard.gold",
  • "lastFour": 1028,
  • "alias": "My first card",
  • "cardholderName": "DIGITAL CARD",
  • "expirationDate": "23-11",
  • "status": "BLOCKED"
}

Unblock blocked card

Make blocked card active

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

The ID of the card

Responses

Response samples

Content type
application/json
{
  • "id": "cd070b80-9ec8-4421-bf45-bf4fcae0b6ec",
  • "profileId": "9356eeb8-d2fe-4bb6-892f-2e62373ccd72",
  • "accountId": "df3cb043-d835-4351-8124-3b07bd60d9c5",
  • "paymentSystem": "MASTERCARD",
  • "cardType": "mastercard.gold",
  • "lastFour": 1028,
  • "alias": "My first card",
  • "cardholderName": "DIGITAL CARD",
  • "expirationDate": "23-11",
  • "status": "ACTIVE"
}

Request to change card PIN

Send request to card management system to create new card PIN

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

The ID of the card

Responses

Response samples

Content type
application/json
{
  • "type": "ACCESS_ERROR",
  • "code": "ADDITIONAL_AUTHENTICATION_REQUIRED",
  • "message": "Additional authentication required",
  • "details": {
    }
}

Payment Groups & Services

Payment services navigation

Get a list of payment groups

Retrieves a list of payment groups. Each group contains a list of payment/payout channels defined as payment services. Groups could be organized into hierarchy of payment services menu: each group could has a parent defined.

For the case of intenational remittances countries are usually defined as payment groups: alpha-2 country codes are used as groups IDs to simplify naming and country list filtration.

Authorizations:
VeenguApiKeyAccessToken

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get payment group by ID

Retrieves the specific group by its ID.

Authorizations:
VeenguApiKeyAccessToken
path Parameters
id
required
string
Example: CM

Payment group id

Responses

Response samples

Content type
application/json
{
  • "id": "CM",
  • "name": "Cameroon",
  • "branding": {
    },
  • "index": 1
}

Get a list of payment services

Retrieves a list of available payment/payout channels that is defined as a list of payment services.

Cursor-based pagination is used to fetch payment services. See next parameter description for mode details.

To get the list for a specific group use the filter parameter group.

Authorizations:
VeenguApiKeyAccessToken
query Parameters
group
string
Example: group=CM

Payment group ID to filter services by. If provided then only services of this group are returned.

next
string
Example: next=eyJsYXN0RHQ...1LTMzYzkyNTZhNGMwNiJ9

Cursor/limit-based pagination is supported to fetch payment services. For each returned page the next field in response is a unique key identifying the page next to the page currently returned. Use the next string from the response in subsequent request to point to the next page.

If the next parameter is not presented in request the first in alphabetical order services are returned in the response.

limit
string

Number of rows on one page to be returned. Limit can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
{
  • "cursors": {
    },
  • "services": [
    ]
}

Get payment service by ID

Retrieves the service record by ID

Authorizations:
VeenguApiKeyAccessToken
path Parameters
id
required
string
Example: DU_ABUDHABI

ID of service to get

Responses

Response samples

Content type
application/json
{
  • "id": "ecobank_cm",
  • "operationType": "PAYOUT",
  • "category": "BANK_TRANSFER",
  • "name": "Ecobank",
  • "parameterGroups": {
    },
  • "parameters": {
    },
  • "branding": {
    },
  • "status": "ACTIVE",
  • "amount": {
    },
  • "deal": {
    }
}

Get payment service/group icon by ID

Returns image or media file for payment service/group by ID

Authorizations:
VeenguApiKeyAccessToken
path Parameters
id
required
string
Example: afb24091-a769-4b7f-b6a3-4ed531be471f

Icon ID

Responses

Response samples

Content type
application/json
{
  • "type": "ACCESS_ERROR",
  • "code": "ADDITIONAL_AUTHENTICATION_REQUIRED",
  • "message": "Additional authentication required",
  • "details": {
    }
}

Payment Parameters Preprocessing

Get service fields calculated by the Platform Deprecated

Deprecated: use /payments/init & /payments/check endpoints instead.

Fills values for calculated field for a user and selected beneficiary.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
serviceId
required
string
beneficiaryId
required
string <uuid>
object

Responses

Request samples

Content type
application/json
{
  • "serviceId": "string",
  • "beneficiaryId": "410e5c37-9603-4e5b-81b1-7cb895f362e8",
  • "parameters": {
    }
}

Response samples

Content type
application/json
{
  • "parameters": {
    }
}

Initialize new payment form

Initializes the new payment form for given service ID and optional beneficiary. Payment form could later be filled by invoking '/payments/check'. Once completed, payment form could be used to create deal or payment by it.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
serviceId
required
string

Payment service ID to initialize form for

beneficiaryId
string <uuid>

Optional beneficiary reference to be used in this form

Responses

Request samples

Content type
application/json
{
  • "serviceId": "airteltigo_rw",
  • "beneficiaryId": "04438c0f-0fde-472a-8cdd-aac969421554"
}

Response samples

Content type
application/json
{
  • "paymentFormId": "1711d982-b466-4992-9108-e632e6a0c908",
  • "parameters": {
    }
}

Update payment form with parameters

Validates provided parameters values and if parameters are checked successfully, updates payment for with them. Once completed, payment form could be used to create deal or payment by it.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
paymentFormId
required
string

Payment form ID to check parameters for

beneficiaryId
string <uuid>

Optional beneficiary reference to be used in this form

object

Zero or more parameter values to fill form with

Responses

Request samples

Content type
application/json
{
  • "paymentFormId": "1711d982-b466-4992-9108-e632e6a0c908",
  • "beneficiaryId": "04438c0f-0fde-472a-8cdd-aac969421554",
  • "parameters": {
    }
}

Response samples

Content type
application/json
{
  • "paymentFormId": "1711d982-b466-4992-9108-e632e6a0c908",
  • "parameters": {
    }
}

Currency rates

Actual currency rates for all available currencies and countries

Get full list of configured countries and currency pairs

Retrieves the full list of configured sending and destination countries, currency pairs for requesting currency rates and the min value for the remitter amount.

Authorizations:
(VeenguApiKeyAccessTokenProfile)

Responses

Response samples

Content type
application/json
{
  • "remitter": {
    },
  • "beneficiary": {
    }
}

Get currency rates for sender or beneficiary amount

Retrieves currency rates in any direction whether from sender currency to destination currency or vice versa with fees included to senderAmount. To get beneficiary amount in destination currency send senderAmount currency and value, amount object value must be 0. To get sender amount (to be paid) value only the amount object must be sent.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
country
required
string

Money remittance beneficiary country in ISO 3166-1 alpha-2. Required, but temporary configured as optional for backward compatibility.

recipientCurrency
string

Deprecated, but supported for backward compatibility. Currency code in ISO 4217 alfa-3 format.

object (amount)

Money object specified by value and currency

required
object (amount)

Money object specified by value and currency

Responses

Request samples

Content type
application/json
Example
{
  • "country": "BF",
  • "senderAmount": {
    },
  • "amount": {
    }
}

Response samples

Content type
application/json
Example
{
  • "baseAmount": {
    },
  • "remitterAmount": {
    },
  • "totalAmount": {
    },
  • "instructedAmount": {
    },
  • "beneficiaryAmount": {
    },
  • "entries": [
    ],
  • "details": {
    }
}

Beneficiaries

Create a beneficiary record

Creates a new beneficiary record with a specified phone number. A beneficiary profile is linked to the Individual profile.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
firstName
required
string

Beneficiary First name

lastName
required
string

Beneficiary Last name

phoneNumber
required
string

Beneficiary phone number

country
required
string

Beneficiary residence Country in ISO 3166-1 alpha-2 . Value from country handbook.

type
string
Default: "INDIVIDUAL"
Enum: "INDIVIDUAL" "BUSINESS"

Type of beneficiary

Responses

Request samples

Content type
application/json
{
  • "country": "US",
  • "firstName": "Benjamin",
  • "lastName": "Comondo",
  • "phoneNumber": "+16507599755",
  • "type": "INDIVIDUAL"
}

Response samples

Content type
application/json
{
  • "id": "25394fa2-b60b-47d6-aa5d-af44ec8aa540",
  • "solutionId": "9cf50459-5d19-4a07-867b-1ed033d4174e",
  • "profileId": "9a0cf434-71c8-4422-a40c-d2e082e7cd0f",
  • "name": "Benjamin Comondo",
  • "country": "US",
  • "phoneNumber": "+16507599755",
  • "status": "ACTIVE",
  • "createdAt": "2021-10-22T10:38:52.847905Z",
  • "deleted": false,
  • "lastName": "Comondo",
  • "firstName": "Benjamin",
  • "type": "INDIVIDUAL"
}

Get a list of all beneficiaries for an individual profile

Retrieves a list of all beneficiaries including active, pending and rejected.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
query Parameters
page
required
string
Example: page=1

For pagination is supported offset-based pagination - page a number of the requested page. The number of pages could be retrieved and calculated from the response Content-Range header. The simple REST client expects the API to include a Content-Range header in the response to getList calls. The value must be the total number of resources in the collection. This allows react-admin to know how many pages of resources there are in total, and build the pagination controls. Example: Content-Range: locations 0-24/319

perPage
required
string
Example: perPage=10

Number of rows on one page to be returned. Number of rows can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get a beneficiary record by id

Retrieves a beneficiary record by id to let a user review the beneficiary data.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Beneficiary id

Responses

Response samples

Content type
application/json
{
  • "id": "25394fa2-b60b-47d6-aa5d-af44ec8aa540",
  • "solutionId": "9cf50459-5d19-4a07-867b-1ed033d4174e",
  • "profileId": "9a0cf434-71c8-4422-a40c-d2e082e7cd0f",
  • "name": "Benjamin Comondo",
  • "country": "US",
  • "phoneNumber": "+16507599755",
  • "status": "ACTIVE",
  • "createdAt": "2021-10-22T10:38:52.847905Z",
  • "deleted": false,
  • "lastName": "Comondo",
  • "firstName": "Benjamin",
  • "type": "INDIVIDUAL"
}

Edit a beneficiary record

Edits a beneficiary record.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Beneficiary id

Request Body schema: application/json
firstName
required
string

Beneficiary First name

lastName
required
string

Beneficiary Last name

phoneNumber
required
string

Beneficiary phone number

country
required
string
Enum: "GB" "FR" "SA" "AE" "CH"

Beneficiary residence Country in ISO 3166-1 alpha-2 . Value from country handbook.

type
string
Default: "INDIVIDUAL"
Enum: "INDIVIDUAL" "BUSINESS"

Type of beneficiary

Responses

Request samples

Content type
application/json
{
  • "country": "GB",
  • "firstName": "Benjamin",
  • "lastName": "Comondo",
  • "phoneNumber": "+16507599755",
  • "type": "INDIVIDUAL"
}

Response samples

Content type
application/json
{
  • "id": "25394fa2-b60b-47d6-aa5d-af44ec8aa540",
  • "solutionId": "9cf50459-5d19-4a07-867b-1ed033d4174e",
  • "profileId": "9a0cf434-71c8-4422-a40c-d2e082e7cd0f",
  • "name": "Benjamin Comondo",
  • "country": "US",
  • "phoneNumber": "+16507599755",
  • "status": "ACTIVE",
  • "createdAt": "2021-10-22T10:38:52.847905Z",
  • "deleted": false,
  • "lastName": "Comondo",
  • "firstName": "Benjamin",
  • "type": "INDIVIDUAL"
}

Delete a beneficiary record

Marks beneficiary as deleted true.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Beneficiary id

Responses

Response samples

Content type
application/json
{
  • "type": "ACCESS_ERROR",
  • "code": "ADDITIONAL_AUTHENTICATION_REQUIRED",
  • "message": "Additional authentication required",
  • "details": {
    }
}

Deals

Complex financial operation with several parties such as beneficiary and remitter. Deals operation initiates the financial transaction based on the operation type defined in service.

Preprocess money remittance transaction from individual customer

Calculates fees and performs other validations related to sending funds from one individual customer to another individual that is not within the Tenant's space. As a result, a new Consent object is created. For multi-currency deals to get beneficiary amount in destination currency send senderAmount currency and value, amount object value must be 0. To get sender amount (to be paid) value only the amount object must be sent. One of money sourses (senderAccountId,senderExternalSourceId,senderExternalSourceType) is required to be sent.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
paymentFormId
string <uuid>

ID of payment form previously created by /payments/init request to create payment/deal by

senderAccountId
string <uuid>

ID of account to debit funds from

senderExternalSourceId
string <uuid>

ID of payment instrument to debit funds from

senderExternalSourceType
string

Type of payment instrument to debit funds from

required
object

Beneficiary amount. If remitter amount senderAmount is provided then set amount.value to 0.

object

Remitter amount for this deal. Should be used for multi-currency remittances/payments only. If beneficiary amount with non-zero value is provided then do not provide senderAmount.

beneficiaryId
string <uuid>
Deprecated

Deprecated in favor of using payment forms. Left for backward compatibility.

If paymentFormId is not provided then beneficiaryId & service must be provided. beneciaryId references the beneficiary to be used for this payment.

object
Deprecated

Deprecated in favor of using payment forms. Left for backward compatibility.

If paymentFormId is not provided then beneficiaryId & service must be provided. service defines the service ID to pay for and corresponding set of service parameters values.

Responses

Request samples

Content type
application/json
{
  • "paymentFormId": "ebcf8010-f5fa-4b4e-b108-c4ad0b26bd9f",
  • "senderAccountId": "4e468f86-26dc-4a94-b56b-b06297a94aed",
  • "senderExternalSourceId": "3ff2099e-7e6b-4d1e-ac74-5afeecc9e358",
  • "senderExternalSourceType": "string",
  • "amount": {
    },
  • "senderAmount": {
    },
  • "beneficiaryId": "410e5c37-9603-4e5b-81b1-7cb895f362e8",
  • "service": {
    }
}

Response samples

Content type
application/json
Example
{
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "beneficiaryAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "id": "1fc5d03e-16e5-4eea-8259-17f223565b57",
  • "entries": [
    ],
  • "status": "PENDING",
  • "fees": [
    ],
  • "createdAt": "2022-09-13T11:07:03.788143Z",
  • "details": {
    },
  • "sender": {
    },
  • "originator": {
    },
  • "payer": {
    },
  • "merchantCategoryCode": "0",
  • "description": "Remittance (XAF4,001.00 → XAF4,001.00) to CM, Joy Any",
  • "operationType": "REMITTANCE"
}

Make changes in an existing preprocessing request for money remittance transaction

Re-calculates fees and performs other validations related to sending funds from one individual customer to another individual that is not within the Tenant's space. As a result, a existing Consent object is updated. For multi-currency deals to get beneficiary amount in destination currency send senderAmount currency and value, amount object value must be 0. To get sender amount (to be paid) value only the amount object must be sent. One of money sourses (senderAccountId,senderExternalSourceId,senderExternalSourceType) is required to be sent.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Deal consent ID

Request Body schema: application/json
paymentFormId
string <uuid>

ID of payment form previously created by /payments/init request to create payment/deal by

senderAccountId
string <uuid>

ID of account to debit funds from

senderExternalSourceId
string <uuid>

ID of payment instrument to debit funds from

senderExternalSourceType
string

Type of payment instrument to debit funds from

required
object

Beneficiary amount. If remitter amount senderAmount is provided then set amount.value to 0.

object

Remitter amount for this deal. Should be used for multi-currency remittances/payments only. If beneficiary amount with non-zero value is provided then do not provide senderAmount.

beneficiaryId
string <uuid>
Deprecated

Deprecated in favor of using payment forms. Left for backward compatibility.

If paymentFormId is not provided then beneficiaryId & service must be provided. beneciaryId references the beneficiary to be used for this payment.

object
Deprecated

Deprecated in favor of using payment forms. Left for backward compatibility.

If paymentFormId is not provided then beneficiaryId & service must be provided. service defines the service ID to pay for and corresponding set of service parameters values.

Responses

Request samples

Content type
application/json
{
  • "paymentFormId": "ebcf8010-f5fa-4b4e-b108-c4ad0b26bd9f",
  • "senderAccountId": "4e468f86-26dc-4a94-b56b-b06297a94aed",
  • "senderExternalSourceId": "3ff2099e-7e6b-4d1e-ac74-5afeecc9e358",
  • "senderExternalSourceType": "string",
  • "amount": {
    },
  • "senderAmount": {
    },
  • "beneficiaryId": "410e5c37-9603-4e5b-81b1-7cb895f362e8",
  • "service": {
    }
}

Response samples

Content type
application/json
Example
{
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "beneficiaryAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "id": "1fc5d03e-16e5-4eea-8259-17f223565b57",
  • "entries": [
    ],
  • "status": "PENDING",
  • "fees": [
    ],
  • "createdAt": "2022-09-13T11:07:03.788143Z",
  • "details": {
    },
  • "sender": {
    },
  • "originator": {
    },
  • "payer": {
    },
  • "merchantCategoryCode": "0",
  • "description": "Remittance (XAF4,001.00 → XAF4,001.00) to CM, Joy Any",
  • "operationType": "REMITTANCE"
}

Perform money remittance transaction

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
consentId
required
string

Responses

Request samples

Content type
application/json
{
  • "consentId": "72bed29e-e201-4a89-b17c-c2b66fd0a682"
}

Response samples

Content type
application/json
{
  • "deal": {
    },
  • "transaction": {
    },
  • "code": "25757588"
}

Get the deal record by id

Retrieves the deal record for a specified deal id

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Deal id

Responses

Response samples

Content type
application/json
{
  • "id": "c07b0458-c9bf-459a-b44e-8fd4f4c937c8.1661191584",
  • "createdAt": "2022-08-22T18:06:24.069618Z",
  • "operationType": "REMITTANCE",
  • "senderCountry": "AE",
  • "recipientCountry": "RS",
  • "remitterAmount": {
    },
  • "remitter": {
    },
  • "beneficiaryAmount": {
    },
  • "beneficiary": {
    },
  • "status": "SENDING",
  • "details": {
    }
}

Top-Up account

Top-Up account

Preprocess transaction to top-up individual customer's account

Calculates fees and performs other validations related to top-up individual customer's account. As a result, two consent objects with one id are created because the same consent is applied to both: recipient account and external source.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
senderExternalSourceType
required
string
recipientAccountId
required
string
required
object

Responses

Request samples

Content type
application/json
{
  • "senderExternalSourceType": "DEMO",
  • "recipientAccountId": "0e0911f4-337a-4373-adc7-e5cd65ac2645",
  • "amount": {
    }
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Make changes in existing preprocessing request for account top-up transfer

Re-validates all top-up individual customer's account transfer-related checks, including fees, based on updated inputs.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

The ID of the concent

Request Body schema: application/json
senderExternalSourceType
required
string
recipientAccountId
required
string
required
object

Responses

Request samples

Content type
application/json
{
  • "senderExternalSourceType": "DEMO",
  • "recipientAccountId": "0e0911f4-337a-4373-adc7-e5cd65ac2645",
  • "amount": {
    }
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Perform account top-up transfer

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
consentId
required
string

Responses

Request samples

Content type
application/json
{
  • "consentId": "85979481-dc16-410a-9db9-8762d1881a50"
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Payment Details

Dynamic payment details generated by the Platform via mobile POS

Payment Details generation

Generate payment details on cashier device or individual application for cash deposit

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
operationType
required
string
Enum: "PURCHASE" "CASH_WITHDRAWAL" "CASH_DEPOSIT"

Operation type is required if you request payment details for business profile.

object (schema)

Money object specified by value and currency

comment
string

Responses

Request samples

Content type
application/json
{
  • "operationType": "PURCHASE",
  • "amount": {
    },
  • "comment": "Flat white"
}

Response samples

Content type
application/json
{
  • "paymentToken": "4f40e0e3-4383-42d2-b52a-37690429bda6",
  • "expiresAt": "2024-06-04T13:17:53+03:00"
}

Check beneficiary for purchase by QR Code

Verifies if beneficiary specified by Payment Token for Terminal and Business profile or Individual has been registered within the Tenant's space.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
paymentToken
required
string

Payment token string from QR Code

Responses

Request samples

Content type
application/json
{
  • "paymentToken": "4f40e0e3-4383-42d2-b52a-37690429bda6"
}

Response samples

Content type
application/json
Example
{
  • "paymentToken": {
    },
  • "amount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "operationType": "PURCHASE",
  • "beneficiary": {
    }
}

Get transaction by Payment Token

Polling request to get transaction result and transaction details

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string
Example: 4f40e0e3-4383-42d2-b52a-37690429bda6

Payment Details id (Payment Token)

Responses

Response samples

Content type
application/json
{
  • "id": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "status": "COMPLETED",
  • "consentId": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "createdAt": "2020-03-03T00:00:20+02:34",
  • "postingDate": "2020-03-03",
  • "operationType": "PURCHASE",
  • "headTransactionId": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "headOperationType": "PURCHASE",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "postedAmount": {
    },
  • "entries": [
    ],
  • "merchantCategoryCode": 780,
  • "description": "Purchase 4,5 XTS at Bright Flowers with comment SALE",
  • "details": {
    }
}

Transaction List and Details

Transaction history and details

Get individual/business customer transaction history

Retrieves all transactions performed for all accounts owned by individual or business customer. The transactions are returned in sorted order, with the most recent transactions appearing first.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
query Parameters
fromСreatedAt
string
Example: fromСreatedAt=2020-03-01T12:45:02+02:00

Datetime in the past or today to define beginning for requested period.

toCreatedAt
string
Example: toCreatedAt=2020-03-04T12:45:02+02:00

Datetime in the past or today to define end for requested period. Sysdate is used in case the value is not specified.

operationType
string (operationType)
Enum: "PAYOUT" "P2P_TRANSFER" "PURCHASE" "MEMBERSHIP" "BILL_PAYMENT" "TOP_UP" "CASH_DEPOSIT" "CASH_WITHDRAWAL" "OWN_ACCOUNTS_TRANSFER"
Example: operationType=P2P_TRANSFER

Define operation type enum value to find transactions only with specified operation type

status
string
Example: status=COMPLETED

Transaction status from enum

accountId
required
string
Example: accountId=1a76a6a8-c706-44b3-b008-3487538475983

Individual customer account id

employeeId
string <uuid>
Example: employeeId=90907d70-8770-4a0c-a53c-8bb7e3e5d4e1

Business terminal identifier from transaction details.

terminalId
string <uuid>
Example: terminalId=d5c641c5-6678-4a92-970c-66666667d

Business terminal identifier from transaction details.

locationId
string <uuid>
Example: locationId=d5c641c5-6678-4a92-970c-66666667d

Business location identifier from transaction details.

referenceId
string
Example: referenceId=Delivery

Transaction reference token

feedbackId
string
Example: feedbackId=Delivery

Feedback IF to search by

externalSourceType
string
Example: externalSourceType=SOME_TYPE

External source type

externalSourceId
string <uuid>
Example: externalSourceId=d5c641c5-6678-4a92-970c-66666667d

External source ID

next
string
Example: next=eyJsYXN0RHQiOiIyMDIwLTA0LTEwVDEzOjM1OjA5LjMyMVoiLCJvZmZzZXQiOjEsImZyb20iOiIyMDIwLTA0LTEwVDE4OjAzOjQ2LjQ2NVoiLCJhY2NvdW50T3duZXJJZCI6IjAyZjRmNmIxLWYxYzMtNDA3MS05Mzg1LTMzYzkyNTZhNGMwNiJ9

For pagination is supported cursor/limit-based pagination - next a unique key element identifies the next page. Use next string from the response to point to the next page. If next parameter is missed the latest transactions are returned in the response. Only one parameter next or prev should be used in the request.

prev
string

For pagination is supported cursor/limit-based pagination - prev a unique key element identifies the previous page. Use prev string from the response to point to the previous page.

limit
string
Example: limit=10

Number of rows on one page to be returned. Limit can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
Example
{
  • "cursors": {
    },
  • "transactions": [
    ]
}

Transaction record from history

Get historical transaction record for a specified transaction ID.

NOTE It is not possible to get consents (records in PENDING status) via this API endpoint.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Transaction record ID

Responses

Response samples

Content type
application/json
{
  • "id": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "consentId": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "status": "COMPLETED",
  • "createdAt": "2020-03-03T10:00:20+02:34",
  • "postingDate": "2020-03-03",
  • "operationType": "P2P_TRANSFER",
  • "headTransactionId": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "headOperationType": "P2P_TRANSFER",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "postedAmount": {
    },
  • "fees": [
    ],
  • "entries": [
    ],
  • "description": "Transfer 4,5 XTS to Elon M with comment Thanks for lunch ",
  • "merchantCategoryCode": "6538",
  • "details": {
    }
}

Transaction record status

Get transaction status for a specified transaction ID.

NOTE It is not possible to get consent status (status of PENDING record) via this API endpoint.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Transaction record ID

Responses

Response samples

Content type
application/json
{
  • "status": "PROCESSING"
}

Create transactions export

Begin export of transactions of current customer to CSV, Excel or other formats

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
fromСreatedAt
string

Datetime in the past or today to define beginning for requested period.

toСreatedAt
string

Datetime in the past or today to define end for requested period. Sysdate is used in case the value is not specified.

operationType
string (operationType)
Enum: "PAYOUT" "P2P_TRANSFER" "PURCHASE" "MEMBERSHIP" "BILL_PAYMENT" "TOP_UP" "CASH_DEPOSIT" "CASH_WITHDRAWAL" "OWN_ACCOUNTS_TRANSFER"

Business operation transaction type

status
string

Transaction status from enum

accountId
string

Account ID to filter transactions by

employeeId
string

Employee ID to filter transactions by

terminalId
string

Terminal ID to filter transactions by

locationId
string

Location ID to filter transactions by

referenceId
string

Reference ID to filter transactions by

feedbackId
string

Feedback ID to filter transactions by

externalSourceType
string

External source / payment instrument type to filter transactions by

externalSourceId
string

External source / payment instrument ID to filter transactions by

exportFormat
string
Enum: "CSV" "XLSX"

Export file format; CSV is default

Responses

Request samples

Content type
application/json
{
  • "fromСreatedAt": "2020-03-01T12:45:02+02:00",
  • "toСreatedAt": "2020-03-01T12:45:02+02:00",
  • "operationType": "PAYOUT",
  • "status": "COMPLETED",
  • "accountId": "4f40e0e3-4383-42d2-b52a-37690429bda6",
  • "employeeId": "1c031ef4-6d01-4f84-9eaa-7d09a0e0f0a6",
  • "terminalId": "78fdd8dc-cfb1-4b81-b900-530ed6b3dae1",
  • "locationId": "f172e363-8db1-4f2c-8d9d-d4c70bb04630",
  • "referenceId": "827fbaeb-ee98-4181-ac63-6ce2c626fa42",
  • "feedbackId": "c659ae8a-96a4-454d-a0c4-188a32bc27ca",
  • "externalSourceType": "DEMO",
  • "externalSourceId": "78bfa507-2886-4e3a-984e-392b22963f17",
  • "exportFormat": "CSV"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "taskType": "string",
  • "arguments": { },
  • "status": "INITIAL",
  • "statusMessage": "string",
  • "resultType": "json"
}

Get transactions export status

Check previously scheduled export status

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Export task ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "taskType": "string",
  • "arguments": { },
  • "status": "INITIAL",
  • "statusMessage": "string",
  • "resultType": "json"
}

Get transactions export result

Returns export task result, either file or JSON is returned depending on export task result type

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Export task ID

Responses

P2P transfer

Transaction

Check person-to-person transfer beneficiary

Verifies if beneficiary (individual customer) specified by phone number has been registered within the Tenant's space.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
phoneNumber
string

Individual customer phone number. In case of multiple accounts the request returns accountId according the following logic and priority:

  1. Accounts in the active status.
  2. Account currency is equal currency request attribute
  3. Account currency is equal tenant main currency (based on currency conversion setup)
  4. The oldest account (by createdAt date)
accountNumber
string

Individual customer account number. Account number is unique and sufficient account identifier. If accountNumber is provided all other request attributes are ignored.

currency
string

Currency code in ISO 4217 alfa-3 format. Additional parameter to define the preferable beneficiary's account. Attribute is applied only if phoneNumber is used.

Responses

Request samples

Content type
application/json
{
  • "phoneNumber": "+441237543442",
  • "accountNumber": "AE820001229623811416310",
  • "currency": "AED"
}

Response samples

Content type
application/json
{
  • "type": "INDIVIDUAL",
  • "accountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "validity": "VALID",
  • "details": {
    }
}

Preprocess person-to-person transfer

Calculates fees and performs other validations related to sending funds from one individual customer account to another individual customer account within the Tenant's space. As a result, a new Consent object is created. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
senderAccountId
required
string
recipientAccountId
required
string
localUTCOffset
string <UTC>

User mobile device locale time zone in ISO 8601 as an offset from UTC

required
object (amount)

Money object specified by value and currency

comment
string

Responses

Request samples

Content type
application/json
{
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "recipientAccountId": "95e656f0-68d7-475f-9429-f7a6e0263ad4",
  • "localUTCOffset": "+02:00",
  • "amount": {
    },
  • "comment": "Thanks for lunch"
}

Response samples

Content type
application/json
Example
{
  • "id": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:20+02:34",
  • "operationType": "P2P_TRANSFER",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "fees": [
    ],
  • "entries": [
    ],
  • "description": "Transfer 4,5 XTS to Elon M with the comment Thanks for lunch",
  • "merchantCategoryCode": "6538",
  • "details": {
    }
}

Make changes in existing preprocessing request for person-to-person transfer

Re-validates all person-to-person transfer-related checks, including fees, based on updated inputs. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Consent id

Request Body schema: application/json
senderAccountId
required
string
recipientAccountId
required
string
localUTCOffset
string <UTC>
required
object (amount)

Money object specified by value and currency

comment
string

Responses

Request samples

Content type
application/json
{
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "recipientAccountId": "95e656f0-68d7-475f-9429-f7a6e0263ad4",
  • "localUTCOffset": "+02:00",
  • "amount": {
    },
  • "comment": "Thanks for lunch"
}

Response samples

Content type
application/json
Example
{
  • "id": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:20+02:34",
  • "operationType": "P2P_TRANSFER",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "fees": [
    ],
  • "entries": [
    ],
  • "description": "Transfer 4,5 XTS to Elon M with the comment Thanks for lunch",
  • "merchantCategoryCode": "6538",
  • "details": {
    }
}

Perform person-to-person transfer

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
consentId
required
string

Responses

Request samples

Content type
application/json
{
  • "consentId": "4fd8c5c2-2988-41a4-add2-5c330de1ffce"
}

Response samples

Content type
application/json
Example
{
  • "id": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "status": "COMPLETED",
  • "consentId": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "createdAt": "2020-03-03T00:00:20+02:34",
  • "postingDate": "2020-03-03",
  • "operationType": "P2P_TRANSFER",
  • "headTransactionId": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "headOperationType": "P2P_TRANSFER",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "postedAmount": {
    },
  • "entries": [
    ],
  • "fees": [
    ],
  • "description": "Transfer 4,5 XTS to Elon M with the comment Thanks for lunch",
  • "merchantCategoryCode": "6538",
  • "details": {
    }
}

Purchase via QR code

Purchase from individual account to business account via QR code

Preprocess purchase from individual customer to merchant by QR Code payload

Calculates fees and performs other validations related to sending funds from a individual customer account to business customer account within the Tenant's space. As a result, a new Consent object is created. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
paymentToken
required
string

Payment token string from QR Code

senderAccountId
required
string
localUTCOffset
string <UTC>
required
object (amount)

Money object specified by value and currency

comment
string

Responses

Request samples

Content type
application/json
{
  • "paymentToken": "4f40e0e3-4383-42d2-b52a-37690429bda6",
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "localUTCOffset": "+02:00",
  • "amount": {
    }
}

Response samples

Content type
application/json
{
  • "id": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:14+02:34",
  • "operationType": "PURCHASE",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "merchantCategoryCode": 780,
  • "description": "Purchase 4.5 XTS at Bright Flowers with comment SALE",
  • "details": {
    }
}

Make changes in existing preprocessing request for push purchase

Re-validates all push purchase-related checks, including fees, based on updated inputs. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Consent id

Request Body schema: application/json
paymentToken
required
string

Payment token string from QR Code

senderAccountId
required
string
localUTCOffset
string <UTC>
required
object (amount)

Money object specified by value and currency

comment
string

Responses

Request samples

Content type
application/json
{
  • "paymentToken": "4f40e0e3-4383-42d2-b52a-37690429bda6",
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "localUTCOffset": "+02:00",
  • "amount": {
    }
}

Response samples

Content type
application/json
{
  • "id": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:14+02:34",
  • "operationType": "PURCHASE",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "merchantCategoryCode": 780,
  • "description": "Purchase 4.5 XTS at Bright Flowers with comment SALE",
  • "details": {
    }
}

Perform purchase transfer

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
consentId
required
string

Responses

Request samples

Content type
application/json
{
  • "consentId": "72bed29e-e201-4a89-b17c-c2b66fd0a682"
}

Response samples

Content type
application/json
{
  • "id": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "status": "COMPLETED",
  • "consentId": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "createdAt": "2020-03-03T00:00:20+02:34",
  • "postingDate": "2020-03-03",
  • "operationType": "PURCHASE",
  • "headTransactionId": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "headOperationType": "PURCHASE",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "postedAmount": {
    },
  • "entries": [
    ],
  • "merchantCategoryCode": 780,
  • "description": "Purchase 4,5 XTS at Bright Flowers with comment SALE",
  • "details": {
    }
}

Bill Payment / Mobile Topup

Bill Payment / Mobile Topup from individual account to Utility Supplier/MNO/Aggregator account

Check Utility Supplier/MNO/Aggregator account by service id

Check Bill Payment / Mobile Topup beneficiary account

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
serviceId
string

Service id

Responses

Request samples

Content type
application/json
{
  • "serviceId": "DU_ABUDHABI"
}

Response samples

Content type
application/json
{
  • "type": "PARTNER",
  • "accountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "validity": "VALID"
}

Preprocess prepaid payment to Mobile Operation or Utility Payment Provider

Calculates fees and performs other validations related to sending funds from one individual customer account to Partner account within the Tenant's space. As a result, a new Consent object is created. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
senderAccountId
required
string
localUTCOffset
string <UTC>

User mobile device locale time zone in ISO 8601 as an offset from UTC

required
object (amount)

Money object specified by value and currency

required
object

Responses

Request samples

Content type
application/json
{
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "localUTCOffset": "+02:00",
  • "amount": {
    },
  • "service": {
    }
}

Response samples

Content type
application/json
{
  • "id": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:14+02:34",
  • "operationType": "BILL_PAYMENT",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "merchantCategoryCode": 4814,
  • "description": "Du Mobile payment 4.5 XTS",
  • "details": {
    }
}

Make changes in existing preprocessing request for bill payment / mobile topup

Re-validates all bill payment-related checks, including fees, based on updated inputs. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Consent id

Request Body schema: application/json
senderAccountId
required
string
localUTCOffset
string <UTC>

User mobile device locale time zone in ISO 8601 as an offset from UTC

required
object (amount)

Money object specified by value and currency

required
object

Responses

Request samples

Content type
application/json
{
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "localUTCOffset": "+02:00",
  • "amount": {
    },
  • "service": {
    }
}

Response samples

Content type
application/json
{
  • "id": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:14+02:34",
  • "operationType": "BILL_PAYMENT",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "merchantCategoryCode": 4814,
  • "description": "Du Mobile payment 4.5 XTS",
  • "details": {
    }
}

Perform bill payment / mobile topup

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
consentId
required
string

Responses

Request samples

Content type
application/json
{
  • "consentId": "4fd8c5c2-2988-41a4-add2-5c330de1ffce"
}

Response samples

Content type
{
  • "id": "b064ad54-c263-4cc4-b80f-123032f5c0f7.1601902273",
  • "status": "COMPLETED",
  • "headTransactionId": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "consentId": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "createdAt": "2020-03-03T00:00:20+02:34",
  • "postingDate": "2020-03-03",
  • "operationType": "BILL_PAYMENT",
  • "headOperationType": "BILL_PAYMENT",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "postedAmount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "merchantCategoryCode": 4814,
  • "description": "Du Mobile payment 4.5 XTS",
  • "details": {
    }
}

Cash deposit via agent

Cash deposit (cash-in) to individual account via agent

Check cash deposit beneficiary

Look for cash deposit beneficiary account by phone number / account number and optional currency. Either phoneNumber or accountNumber must be provided.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
phoneNumber
string

Phone number to look for beneficiary by; either phoneNumber or accountNumber must be provided

accountNumber
string

Account number to look for beneficiary by; either phoneNumber or accountNumber must be provided

currency
string

Optional currency code to look for best-matching account by currency

Responses

Request samples

Content type
application/json
{
  • "phoneNumber": "+27653111146"
}

Response samples

Content type
application/json
[
  • {
    }
]

Preprocess cash deposit transaction from business terminal to individual account by individual QR Code payload

Calculates fees and performs other validations related to sending funds from a business customer account to individual customer account within the Tenant's space. As a result, a new Consent object is created. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned. Either paymentToken or recipientAccountId must be provided in request.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
operationSubtype
string

Optional operation subtype

paymentToken
string

Payment token string value; either paymentToken or recipientAccountId must be provided

recipientAccountId
string

Recipient account ID; either paymentToken or recipientAccountId must be provided

senderAccountId
required
string

Sender account ID

localUTCOffset
string <UTC>
required
object (schema)

Money object specified by value and currency

comment
string

Responses

Request samples

Content type
application/json
{
  • "paymentToken": "e9b4a401-625c-4946-9e73-81a47c9c75fd",
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "localUTCOffset": "+02:00",
  • "amount": {
    }
}

Response samples

Content type
application/json
{
  • "id": "4fdaabb45-2988-41a4-aafr3848943",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:14+02:34",
  • "operationType": "CASH_DEPOSIT",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "postedAmount": {
    },
  • "entries": [
    ],
  • "fees": [
    ],
  • "merchantCategoryCode": "6051",
  • "details": {
    }
}

Make changes in existing preprocessing request for push cash deposit transaction

Re-validates all push cash deposit-related checks, including fees, based on updated inputs. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Consent id

Request Body schema: application/json
operationSubtype
string

Optional operation subtype

paymentToken
required
string

Payment token string from QR Code

senderAccountId
required
string
localUTCOffset
string <UTC>
required
object (schema)

Money object specified by value and currency

comment
string

Responses

Request samples

Content type
application/json
{
  • "paymentToken": "e9b4a401-625c-4946-9e73-81a47c9c75fd",
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "localUTCOffset": "+02:00",
  • "amount": {
    }
}

Response samples

Content type
application/json
{
  • "id": "4fdaabb45-2988-41a4-aafr3848943",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:14+02:34",
  • "operationType": "CASH_DEPOSIT",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "postedAmount": {
    },
  • "entries": [
    ],
  • "fees": [
    ],
  • "merchantCategoryCode": "6051",
  • "details": {
    }
}

Perform cash deposit transaction

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
consentId
required
string

Responses

Request samples

Content type
application/json
{
  • "consentId": "72bed29e-e201-4a89-b17c-c2b66fd0a682"
}

Response samples

Content type
application/json
{
  • "id": "916cca88-e637-46a2-9312-1dddb5098903.1601903307",
  • "status": "COMPLETED",
  • "consentId": "4fdaabb45-2988-41a4-aafr3848943",
  • "createdAt": "2020-03-03T00:00:20+02:34",
  • "postingDate": "2020-03-03",
  • "operationType": "CASH_DEPOSIT",
  • "headTransactionId": "4fdaabb45-2988-41a4-aafr3848943",
  • "headOperationType": "CASH_DEPOSIT",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "postedAmount": {
    },
  • "fees": [
    ],
  • "entries": [
    ],
  • "merchantCategoryCode": "6051",
  • "details": {
    }
}

Cash withdrawal via agent

Cash withdrawal (cash-out) from individual account via agent

Preprocess cash withdrawal transaction from individual customer to Agent by QR Code payload

Calculates fees and performs other validations related to sending funds from a individual customer account to business customer account within the Tenant's space. As a result, a new Consent object is created. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
paymentToken
required
string

Payment token string from QR Code

senderAccountId
required
string
localUTCOffset
string <UTC>
required
object (amount)

Money object specified by value and currency

comment
string

Responses

Request samples

Content type
application/json
{
  • "paymentToken": "e9b4a401-625c-4946-9e73-81a47c9c75fd",
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "localUTCOffset": "+02:00",
  • "amount": {
    }
}

Response samples

Content type
application/json
{
  • "id": "4fdaabb45-2988-41a4-aafr3848943",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:20+02:34",
  • "operationType": "CASH_WITHDRAWAL",
  • "sender": {
    },
  • "recipient": {
    },
  • "amount": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "totalAmount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "merchantCategoryCode": "6051",
  • "description": "Cash withdrawal 25 your account with 450 XTS at Branch 98765",
  • "details": {
    }
}

Make changes in existing preprocessing request for push cash withdrawal transaction

Re-validates all push cash withdrawal-related checks, including fees, based on updated inputs. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Consent id

Request Body schema: application/json
paymentToken
required
string

Payment token string from QR Code

senderAccountId
required
string
localUTCOffset
string <UTC>
required
object (amount)

Money object specified by value and currency

comment
string

Responses

Request samples

Content type
application/json
{
  • "paymentToken": "e9b4a401-625c-4946-9e73-81a47c9c75fd",
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "localUTCOffset": "+02:00",
  • "amount": {
    }
}

Response samples

Content type
application/json
{
  • "id": "4fdaabb45-2988-41a4-aafr3848943",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:20+02:34",
  • "operationType": "CASH_WITHDRAWAL",
  • "sender": {
    },
  • "recipient": {
    },
  • "amount": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "totalAmount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "merchantCategoryCode": "6051",
  • "description": "Cash withdrawal 25 your account with 450 XTS at Branch 98765",
  • "details": {
    }
}

Perform cash withdrawal transaction

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
consentId
required
string

Responses

Request samples

Content type
application/json
{
  • "consentId": "72bed29e-e201-4a89-b17c-c2b66fd0a682"
}

Response samples

Content type
application/json
{
  • "id": "916cca88-e637-46a2-9312-1dddb5098903.1601903307",
  • "status": "COMPLETED",
  • "consentId": "4fdaabb45-2988-41a4-aafr3848943",
  • "createdAt": "2020-03-03T00:00:20+02:34",
  • "postingDate": "2020-03-03",
  • "operationType": "CASH_WITHDRAWAL",
  • "headTransactionId": "4fdaabb45-2988-41a4-aafr3848943",
  • "headOperationType": "CASH_WITHDRAWAL",
  • "sender": {
    },
  • "recipient": {
    },
  • "amount": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "totalAmount": {
    },
  • "postedAmount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "merchantCategoryCode": "6051",
  • "description": "Cash withdrawal 25 your account with 450 XTS at Branch 98765",
  • "details": {
    }
}

Own accounts transfer

Own accounts transfer

Preprocess transfer between own account within one profile

Calculates fees and currency exchange rates, performs other validations related to sending funds from one account to another within one profile (individual or business). As a result, two consent objects with one id are created because the same consent is applied to both accounts. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
senderAccountId
required
string

Source account id for authenticated profile

recipientAccountId
required
string

Target account id for authenticated profile

localUTCOffset
string <UTC>
required
object (amount)

Money object specified by value and currency

comment
string

Responses

Request samples

Content type
application/json
{
  • "senderAccountId": "c0bcdba5-d72a-4322-9f3d-10410fa8617e",
  • "recipientAccountId": "c0bcdba5-d72a-4322-9f3d-10410fa8617e",
  • "localUTCOffset": "+02:00",
  • "amount": {
    }
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Make changes in existing preprocessing request for own accounts transfer

Re-validates all own accounts transfer checks, including fees, based on updated inputs. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

Consent id

Request Body schema: application/json
senderAccountId
required
string

Source account id for authenticated profile

recipientAccountId
required
string

Target account id for authenticated profile

localUTCOffset
string <UTC>
required
object (amount)

Money object specified by value and currency

comment
string

Responses

Request samples

Content type
application/json
{
  • "senderAccountId": "c0bcdba5-d72a-4322-9f3d-10410fa8617e",
  • "recipientAccountId": "c0bcdba5-d72a-4322-9f3d-10410fa8617e",
  • "localUTCOffset": "+02:00",
  • "amount": {
    }
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Perform transfer between own accounts

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
consentId
required
string

Responses

Request samples

Content type
application/json
{
  • "consentId": "72bed29e-e201-4a89-b17c-c2b66fd0a682"
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Payout

Outgoing transaction to bank requisites (payout) initiated by individual or business end-user to payout to beneficiary - individual or company to bank requisites via partner account.

Check payout payment service

Verifies if payout payment service and partner account are valid.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
serviceId
string

Service id

Responses

Request samples

Content type
application/json
{
  • "serviceId": "SEPA"
}

Response samples

Content type
application/json
{
  • "type": "PARTNER",
  • "accountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "validity": "VALID"
}

Preprocess payout payment

Calculates fees and performs other validations related to sending funds from one individual customer account to another individual customer account within the Tenant's space. As a result, a new Consent object is created. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
senderAccountId
required
string
localUTCOffset
string <UTC>

User mobile device locale time zone in ISO 8601 as an offset from UTC

required
object (amount)

Money object specified by value and currency

required
object

Responses

Request samples

Content type
application/json
{
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "localUTCOffset": "+02:00",
  • "amount": {
    },
  • "service": {
    }
}

Response samples

Content type
application/json
{
  • "id": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:14+02:34",
  • "operationType": "BILL_PAYMENT",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "merchantCategoryCode": 4814,
  • "description": "Du Mobile payment 4.5 XTS",
  • "details": {
    }
}

Make changes in existing preprocessing request for payout payment

Re-validates all person-to-person transfer-related checks, including fees, based on updated inputs. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

Consent id

Request Body schema: application/json
senderAccountId
required
string
localUTCOffset
string <UTC>

User mobile device locale time zone in ISO 8601 as an offset from UTC

required
object (amount)

Money object specified by value and currency

required
object

Responses

Request samples

Content type
application/json
{
  • "senderAccountId": "0db95881-2968-40e8-b194-d50e2b9c20a3",
  • "localUTCOffset": "+02:00",
  • "amount": {
    },
  • "service": {
    }
}

Response samples

Content type
application/json
{
  • "id": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "status": "PENDING",
  • "createdAt": "2020-03-03T00:00:14+02:34",
  • "operationType": "BILL_PAYMENT",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "merchantCategoryCode": 4814,
  • "description": "Du Mobile payment 4.5 XTS",
  • "details": {
    }
}

Perform payout payment

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
consentId
required
string

Responses

Request samples

Content type
application/json
{
  • "consentId": "4fd8c5c2-2988-41a4-add2-5c330de1ffce"
}

Response samples

Content type
application/json
{
  • "id": "b064ad54-c263-4cc4-b80f-123032f5c0f7.1601902273",
  • "status": "COMPLETED",
  • "headTransactionId": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "consentId": "72bed29e-e201-4a89-b17c-c2b66fd0a682",
  • "createdAt": "2020-03-03T00:00:20+02:34",
  • "postingDate": "2020-03-03",
  • "operationType": "BILL_PAYMENT",
  • "headOperationType": "BILL_PAYMENT",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "postedAmount": {
    },
  • "fees": [ ],
  • "entries": [
    ],
  • "merchantCategoryCode": 4814,
  • "description": "Du Mobile payment 4.5 XTS",
  • "details": {
    }
}

Remittance

Create remittance beneficary profile Deprecated

Creates a new beneficary profile with specified phone number. Beneficiary profile is linked to Individual profile.

Authorizations:
(VeenguApiKeyAccessTokenProfile)
Request Body schema: application/json
firstName
string

Beneficiary First name

lastName
string

Beneficiary Last name

phoneNumber
required
string

Beneficiary phone number

country
required
string
Enum: "GB" "FR" "SA" "AE" "CH"

Beneficiary residence Country in ISO 3166-1 alpha-2 . Value from country handbook.

name
string

Beneficiary full name

type
string
Default: "INDIVIDUAL"
Enum: "INDIVIDUAL" "BUSINESS"

Type of beneficiary

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "phoneNumber": "string",
  • "country": "GB",
  • "name": "string",
  • "type": "INDIVIDUAL"
}

Response samples

Content type
application/json
{
  • "id": "25394fa2-b60b-47d6-aa5d-af44ec8aa540",
  • "solutionId": "9cf50459-5d19-4a07-867b-1ed033d4174e",
  • "profileId": "9a0cf434-71c8-4422-a40c-d2e082e7cd0f",
  • "name": "Benjamin Comondo",
  • "country": "US",
  • "phoneNumber": "+16507599755",
  • "status": "ACTIVE",
  • "createdAt": "2021-10-22T10:38:52.847905Z",
  • "deleted": false,
  • "lastName": "Comondo",
  • "firstName": "Benjamin",
  • "type": "INDIVIDUAL"
}

Get remittance beneficiaries for an individual profile Deprecated

Get all remittance beneficiaries for an individual profile

Authorizations:
(VeenguApiKeyAccessTokenProfile)
query Parameters
page
required
string
Example: page=1

For pagination is supported offset-based pagination - page a number of the requested page. The number of pages could be retrieved and calculated from the response Content-Range header. The simple REST client expects the API to include a Content-Range header in the response to getList calls. The value must be the total number of resources in the collection. This allows react-admin to know how many pages of resources there are in total, and build the pagination controls. Example: Content-Range: locations 0-24/319

perPage
required
string
Example: perPage=10

Number of rows on one page to be returned. Number of rows can range between 1 and 100, and the default is 10.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get remittance beneficiary for individual profile by remittance beneficiary id Deprecated

Get remittance beneficiary for individual profile

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

beneficiary record id

Responses

Response samples

Content type
application/json
{
  • "id": "25394fa2-b60b-47d6-aa5d-af44ec8aa540",
  • "solutionId": "9cf50459-5d19-4a07-867b-1ed033d4174e",
  • "profileId": "9a0cf434-71c8-4422-a40c-d2e082e7cd0f",
  • "name": "Benjamin Comondo",
  • "country": "US",
  • "phoneNumber": "+16507599755",
  • "status": "ACTIVE",
  • "createdAt": "2021-10-22T10:38:52.847905Z",
  • "deleted": false,
  • "lastName": "Comondo",
  • "firstName": "Benjamin",
  • "type": "INDIVIDUAL"
}

Edit beneficiary for remittance Deprecated

Edit beneficiary for remittance

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

beneficiary record id

Request Body schema: application/json
firstName
string

Beneficiary First name

lastName
string

Beneficiary Last name

phoneNumber
required
string

Beneficiary phone number

country
required
string
Enum: "GB" "FR" "SA" "AE" "CH"

Beneficiary residence Country in ISO 3166-1 alpha-2 . Value from country handbook.

name
string

Beneficiary full name

type
string
Default: "INDIVIDUAL"
Enum: "INDIVIDUAL" "BUSINESS"

Type of beneficiary

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "phoneNumber": "string",
  • "country": "GB",
  • "name": "string",
  • "type": "INDIVIDUAL"
}

Response samples

Content type
application/json
{
  • "id": "25394fa2-b60b-47d6-aa5d-af44ec8aa540",
  • "solutionId": "9cf50459-5d19-4a07-867b-1ed033d4174e",
  • "profileId": "9a0cf434-71c8-4422-a40c-d2e082e7cd0f",
  • "name": "Benjamin Comondo",
  • "country": "US",
  • "phoneNumber": "+16507599755",
  • "status": "ACTIVE",
  • "createdAt": "2021-10-22T10:38:52.847905Z",
  • "deleted": false,
  • "lastName": "Comondo",
  • "firstName": "Benjamin",
  • "type": "INDIVIDUAL"
}

Delete beneficiary for remittance Deprecated

Marks beneficiary for payout as deleted true

Authorizations:
(VeenguApiKeyAccessTokenProfile)
path Parameters
id
required
string

beneficiary record id

Responses

Response samples

Content type
application/json
{
  • "type": "ACCESS_ERROR",
  • "code": "ADDITIONAL_AUTHENTICATION_REQUIRED",
  • "message": "Additional authentication required",
  • "details": {
    }
}

Preprocess money remittance transaction from individual customer Deprecated

Calculates fees and performs other validations related to sending funds from one individual customer to another individual that is not within the Tenant's space. As a result, a new Consent object is created.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
recipientCountry
required
string
Enum: "GB" "FR" "SA" "AE" "CH"

Money remittance beneficiary country in ISO 3166-1 alpha-2

senderExternalSourceType
string
senderAccountId
string
recipientCurrency
string

Currency code in ISO 4217 alfa-3 format

beneficiaryId
required
string <uuid>
object
required
object
comment
string

Responses

Request samples

Content type
application/json
{
  • "recipientCountry": "AE",
  • "senderExternalSourceType": "string",
  • "senderAccountId": "string",
  • "recipientCurrency": "AED",
  • "beneficiaryId": "410e5c37-9603-4e5b-81b1-7cb895f362e8",
  • "details": {
    },
  • "beneficiaryAmount": {
    },
  • "comment": "New comment"
}

Response samples

Content type
application/json
{
  • "id": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "status": "PENDING",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "operationType": "P2P_TRANSFER",
  • "operationSubtype": "SUPERCASH",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "fees": [
    ],
  • "entries": [
    ],
  • "merchantCategoryCode": "6538",
  • "description": "Transfer 4,5 XTS to Elon M with comment \"Thanks for lunch\"",
  • "originator": {
    },
  • "payer": {
    },
  • "details": {
    }
}

Make changes in existing preprocessing request for money remittance transaction Deprecated

Re-validates all money remittance transfer checks, including fees, based on updated inputs. If the source account does not have enough funds for transfer, including fees, then error “Insufficient Funds” is returned.

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
path Parameters
id
required
string

The ID of the concent

Request Body schema: application/json
recipientCountry
required
string
Enum: "GB" "FR" "SA" "AE" "CH"

Money remittance beneficiary country in ISO 3166-1 alpha-2

senderExternalSourceType
string
senderAccountId
string
recipientCurrency
string

Currency code in ISO 4217 alfa-3 format

beneficiaryId
required
string <uuid>
object
required
object
comment
string

Responses

Request samples

Content type
application/json
{
  • "recipientCountry": "AE",
  • "senderExternalSourceType": "string",
  • "senderAccountId": "string",
  • "recipientCurrency": "AED",
  • "beneficiaryId": "410e5c37-9603-4e5b-81b1-7cb895f362e8",
  • "details": {
    },
  • "beneficiaryAmount": {
    },
  • "comment": "New string"
}

Response samples

Content type
application/json
{
  • "id": "4fd8c5c2-2988-41a4-add2-5c330de1ffce",
  • "status": "PENDING",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "operationType": "P2P_TRANSFER",
  • "operationSubtype": "SUPERCASH",
  • "sender": {
    },
  • "recipient": {
    },
  • "baseAmount": {
    },
  • "instructedAmount": {
    },
  • "amount": {
    },
  • "totalAmount": {
    },
  • "fees": [
    ],
  • "entries": [
    ],
  • "merchantCategoryCode": "6538",
  • "description": "Transfer 4,5 XTS to Elon M with comment \"Thanks for lunch\"",
  • "originator": {
    },
  • "payer": {
    },
  • "details": {
    }
}

Perform money remittance transaction Deprecated

Authorizations:
(VeenguApiKeyVeenguSolutionAccessTokenProfile)
Request Body schema: application/json
consentId
required
string

Responses

Request samples

Content type
application/json
{
  • "consentId": "72bed29e-e201-4a89-b17c-c2b66fd0a682"
}

Response samples

Content type
application/json
{
  • "id": "8f013d73-5609-478a-b8b3-11f8572c81b9.1659984688",
  • "beneficiaryAmount": {
    },
  • "remitterAmount": {
    },
  • "details": { },
  • "remitter": {
    },
  • "beneficiary": {
    },
  • "senderCountry": "AE",
  • "recipientCountry": "CM",
  • "recipientCurrency": "XAF"
}

Remittance Payout

Get remittance payout services

Get payment services available for remittance payout

Authorizations:
(VeenguApiKeyAccessTokenProfile)

Responses

Response samples

Content type
application/json
[
  • {
    }
]