undefined
undefined
shell javascript

API Reference

API is organized around REST. API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

API Versioning

API uses versioning through URL. It must be specified in each URL in format: /vN/endpoint ( Ex. /v2/persons ) API version is common for all endpoints and increases in case of breaking changes in release.

If called endpoint has no changes in new API version, it would work as before. You don't have to (and shouldn't) call it with specified obsolete version.

API version not changes often than once per release.

If your API version is less than minimum supported, you would receive 400 Bad Request Error

Example deprecated version response

{
    "errors": [
        {
            "field": "",
            "message": "API version is no longer supported. Please update your application"
        }
    ]
}

Minimum supported API version: 2

Actual API version: 3

Authentication

API uses email/password to authenticate user. You can be authenticated with help of /login endpoint. After successful authentication you will receive JWT in the response body.

Authorization

Authorize your account when using API by including your JWT in the request as x-access-token HTTP header value. You get this secret after authentication. Do not share your JWT in publicly accessible areas such GitHub, client-side code, and so forth.

API server response will contain refreshed token (with expiration time) in the same x-access-token HTTP header.

Errors

API uses conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.). Codes in the 5xx range indicate an error with servers (these are rare).

Validation Errors

Example of validation error

{
    "errors": [
        {
            "field": "email",
            "message": "Email is required",
            "code": "10002"
        }
    ]
}

Contains information about validation details and errors. Error object has the following signature:

Field Type Description
field string Contains information about field in which the error occured. Can be empty
message string Description the error
code number Optional. Additional code that helps to determine exactly what type of error has been occured

List of common validation error codes

Error Code Description
10001 Invalid value of field. Details about valid values can be found on documention page of the entity or in details of error object
10002 Field is required. Fieldname can be found at field property of an error
10003 Verification code is expired

| 21001 | This API version is no longer supported | | 21002 | This API version is not supported |

List of transacttion error codes

Error Code Description
20001 Unknown transaction type. See endpoint specification
20002 Insufficient funds on the account
20003 Account is not registered
20004 Account is not fully registered
20005 Amount of the transaction is less than minimum required amount
20006 Your corporation has the unpaid invoice on the wallet
20009 Transaction is not allowed for Arkea payment processor
20010 Transaction is not allowed with specified currency
20011 Beneficiary IBAN can only receive euros
20012 Couldn't transfer to the same bank account

Pagination

Pagination is a mechanism to request many entities from API. Instead of grabbing all entries that are presented in the application you should specify how many entries do you want to get(limit), what order should they have an so on by meta parameters.

Example of request GET /transactions


curl -X GET \
  'https://api.intergiro.com/v2/transactions?meta[sort_by]=createdAt&meta[sort_type]=DESC&meta[limit]=20' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example of response format

{
    "list": [{"type":"invoice-payment","score":null,"score_range_id":null, ...}, ...],
    "meta":{"number_of_records":1425,"limit":10,"has_more":true,"sort_by":"created_at","sort_type":"DESC"}},
}

Response format:

Login

"staff" vs "person"

People in system are categorized as person and staff members.

Some part of API accessible only for staff members. For example, Create corporation wallet endpoint. Other part of API accessible only for person members. For example, Create a transfer endpoint. Access to API endpoints regulated by x-access-token header with token value, which returned after a successful login as staff or as person

Staff sign in [POST /staff/signin]

For signing in, you'll need to send account data to /staff/signin endpoint. By default for staff members, 2FA required. So 2FA enabled, this means the system sends SMS with code to phone number, which specified for staff. For sign in with 2FA you should send account data and two_fa_code again to /staff/signin endpoint. After successful sign in you'll receive JWT in the response body.

Example request POST /staff/signin

curl -X POST \
  https://api.intergiro.com/v2/staff/signin \
    -H 'Content-Type: application/json' \
    -d '{
        "email": "staff@system.com",
        "password": "secure-password"
    }'

Example response

{
    "truncated_phone_number": "**********19",
    "two_fa_code": "084105"
}

Example request POST /staff/signin

curl -X POST \
  https://api.intergiro.com/v2/staff/signin \
    -H 'Content-Type: application/json' \
    -d '{
        "email": "staff@system.com",
        "password": "secure-password",
        "two_fa_code": "123456"
    }'

Example response

{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0"
}

Person sign in [POST /person/signin]

For signing in, you'll need to send account data to /person/signin endpoint. In case if 2FA enabled, this means the system sends SMS with code to phone number, which specified for person. For sign in with 2FA you should send account data and two_fa_code again to /person/signin endpoint. After successful sign in you'll receive JWT in the response body.

System uses person's fingerprint for detect unique device id. Field id_fingerprint should contain unique ID of device.

Example request POST /person/signin

curl -X POST \
  https://api.intergiro.com/v2/person/signin \
    -H 'Content-Type: application/json' \
    -d '{
        "email": "person@nike.com",
        "password": "secure-password",
        "fp_client_data": {
            "identifiers": {
                "id_fingerprint": 3599313320
            }
        }
    }'

Example response

{
    "truncated_phone_number": "**********19",
    "two_fa_code": "084105"
}

Example request POST /person/signin

curl -X POST \
  https://api.intergiro.com/v2/person/signin \
    -H 'Content-Type: application/json' \
    -d '{
        "email": "person@nike.com",
        "password": "secure-password",
        "fp_client_data": {
            "identifiers": {
                "id_fingerprint": 3599313320
            }
        },
        "two_fa_code": "123456"
    }'

Example response

{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0"
}

Example bad response

{
    "errors": [
        {
            "field": "code",
            "message": "Invalid verification code. Please, try again or check your phone No."
        }
    ]
}

Example bad response after third tries

{
    "errors": [
        {
            "field": "code",
            "message": "Invalid verification code. The verification code we've sent you has expired."
        }
    ]
}

Example bad response after fourth and more tries

{
    "errors": [
        {
            "field": "code",
            "message": "Invalid verification code. Please, try again or check your phone No."
        }
    ]
}

Introducer sign in using 2fa [POST /introducer/signin]

Sign in is completed in 2 steps:

  1. Send email and password to /introducer/signin endpoint. The system will send SMS with verification code to introducers phone number.
  2. Repeat request adding two_fa_code to post data. After successful sign in you'll receive JWT in the response body.

  3. Parameters

    • email: (string, required) - Introducer's email address
    • password: (string, required) - Introducer's password
    • two_fa_code: (string, optional) - Code from SMS

Example request POST /person/signin

curl -X POST \
  https://api.intergiro.com/v2/person/signin \
    -H 'Content-Type: application/json' \
    -d '{
        "email": "lionel.messi@fcb.com",
        "password": "secure-password",
    }'

Example response

{
    "truncated_phone_number": "**********19",
    "two_fa_code": "084105"
}

Example request POST /person/signin

curl -X POST \
  https://api.intergiro.com/v2/person/signin \
    -H 'Content-Type: application/json' \
    -d '{
        "email": "lionel.messi@fcb.com",
        "password": "secure-password",
        "two_fa_code": "084105"
    }'

Example response

{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0"
}

Example bad response

{
    "errors": [
        {
            "field": "code",
            "message": "Invalid verification code. Please, try again or check your phone No."
        }
    ]
}

Example bad response after 5 tries

{
    "errors": [
        {
            "field": "code",
            "message": "Invalid verification code. The verification code we've sent you has expired."
        }
    ]
}

Person sign in using biometrics [POST /person/biometricsignin]

NOT IMPLEMENTED YET.

Authentication with biometrics by resolving the challenge.

Step 1.

Example request POST /person/biometricsignin

curl -X POST \
  https://api.intergiro.com/v2/person/biometricsignin \
    -H 'Content-Type: application/json' \
    -H 'x-device-id: <device-ID>' \
    -d '{
      "personId": "rJdsYRwg4N"
    }'

Example response (300 Redirect)

{
    "challenge": {
        "biometry": {
            "challenge_id": "fY63Oalo0",
            "nonce": "8KidHYs630LSO0lcna3jio"
        }
    }
}

Step 2. Biometry challenge.

Example request POST /person/biometricsignin

curl -X POST \
 https://api.intergiro.com/v2/person/biometricsignin \
    -H 'Content-Type: application/json' \
    -H 'x-device-id: <device-ID>' \
    -d '{
        "challenge_id": "fY63Oalo0",
        "signature": "<signature(nonce)>"
    }'

Example response (200 OK)

{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp"
}

Person forgot password [POST /person/forgot-password]

Example request POST /person/forgot-password


curl -X POST \
  https://api.intergiro.com/v2/person/forgot-password \
    -H 'Content-Type: application/json' \
    -d '{
        "email": "person@company.com"
    }'

Example response

{}

In case if your person forgot password, you are able to send email with reset password instruction to email address which you can specify in request body. This email contains link for password recovery.

To proceed with password update you must request password recovery.

Person recover password [POST /person/recover-password]

For being able to recover password you must first request forgot password

After successful request to forgot password, person receives email with the link for password recovery. This link contains token which you must use in password recovery.

Example of link https://portal.intergiro.com/recover-password/3umXBEg6YnOWzwL6y5Z4v6ePygvAqS1mNJ5Zr4e0JHOVcFglTJA3uG1-MJOHNlsR

Example request POST /person/recover-password


curl -X POST \
  https://api.intergiro.com/v2/person/recover-password \
    -H 'Content-Type: application/json' \
    -d '{
        "password": "secure-password",
        "token": "3umXBEg6YnOWzwL6y5Z4v6ePygvAqS1mNJ5Zr4e0JHOVcFglTJA3uG1-MJOHNlsR"
    }'

Example response

{}

API sign in [POST /api/signin]

For signing in via api, you'll need to send private key to /api/signin endpoint. API keys are generated by staff. After successful sign in you'll receive JWT in the response body.

Example request POST /api/signin

curl -X POST \
  https://api.intergiro.com/v2/api/signin \
  -H 'Content-Type: application/json' \
  -d '{"apiKey": "fc4934aa-ba43-4a1b-9a31-9523ad2614e4"}'

Example response

{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IkgxZTJyTkd2ciIsInR5cGUiOiJhcGkiLCJhcGlLZXlJZCI6IlNreGwyU0V6UEgiLCJpYXQiOjE1Njg5Nzg0NjcsImV4cCI6MTU2ODk4MDI2NywiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.RNatcDxMnSFIVt-uSgj0lwJT-fp2EeoFZcyec0SmNRQ"
}

Lookup

SEPA validation of iban [GET /lookup/ibans/is-sepa-enabled{?source_id, iban}]

Field Type Necessity Description
source_id string required The id of corporate wallet
iban string required IBAN number to validate

curl -X GET \
  'https://api.intergiro.com/v2/lookup/ibans/is-sepa-enabled?source_id=BkxQXkM4Br&iban=BE96106398327013' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

    {"is_sepa_enabled_iban":true}

Person

Fields with * mark mean accessible only for staff members.

The person object

    {
        "first_name": "Tom",
        "last_name": "Ram",
        "date_of_birth": "1987-09-20",
        "phone": "375298880019",
        "country": "BY",
        "street": "test12",
        "city": "test12",
        "region": "test12",
        "post_code": "32353512",
        "gender": "male",
        "email": "demo1@demo.com",
        "is_person_limits_disabled": true,
        "longitude": null,
        "latitude": null,
        "social_security_number": "254654",
        "score_adjustment": null,
        "email_domain_creation_date": null,
        "nationality": "DZ",
        "person_login_id": "bd4d2gsyd",
        "created_at": "2018-03-23T18:52:20.000Z",
        "profile_level": "gold",
        "is_invitation_accepted": true,
        "other_phone": "375298880012",
        "deleted_at": null,
        "is_2_fa_enabled": true,
        "is_politically_exposed": false,
        "political_institution": null,
        "position_in_political_institution": null,
        "ownership": null,
        "position": null,
        "is_ubo": false,
        "is_director": true,
        "is_tax_resident": false,
        "primary_currency": "USD",
        "is_blocked":false,
        "id": "adwFe2gsyd",
        "updated_at": "2019-01-29T11:58:43.000Z",
        "account": {...},
        "identity": {...},
        "login": {...},
        "emails": [...],
        "fingerprints": [{...}],
        "ips": [{...}],
        "created_by": {
            "id": "S1t4G6G8",
            "type": "staff",
            "full_name": "Clint Eastwood"
        },
        "updated_by": {
            "id": "S1t4G6G8",
            "type": "staff",
            "full_name": "Clint Eastwood"
        },
        "roles": [{...}],
        "screening_info": {
            "is_person_under_review": false,
            "person_profile": {
                "politically_exposed": false,
                "sanctions_lists_entity": false,
                "relative_or_close_associate": false,
                "board_member": false
            }
        },
        "type": "employee"
    }
Field Type Description
account object Partial Account object. See Account
city string Person's city
country string Person's country. Should be in two-letter format. Ex: 'GB'.
created_at string Creation timestamp
created_by object Partial object of a user who created a specific person. See CreatedBy/UpdatedBy.
date_of_birth string Person's DOB. Should be in following format YYYY-MM-DD
deleted_at string Blocking timestamp
email string Person's email address
email_domain_creation_date date TBD. Date of creation of domain of email address
emails object TBD. Partial Emails object. See Emails
fingerprints array Array of partial Fingerprint object. See Fingerprint
first_name string Person's first name
gender string Person's gender. Can be one of the following: male, female, transgender or unknown.
id string Person ID
identity object Partial Identity object. See Identity
ips array Array of partial Fingerprint object. See Fingerprint
is_2_fa_enabled * boolean A flag that indicates whether a person's 2FA is enabled or not.
is_blocked boolean A flag that indicates whether a person blocked or not
is_director boolean A flag that indicates whether a person is a director or not
is_invitation_accepted boolean A flag that indicates whether person accepted invitation or not
is_person_limits_disabled boolean TBD. Person's limits disabled or not.
is_politically_exposed boolean A flag that indicates whether a person or any of a person's close family members classified as a politically exposed person or not
is_tax_resident boolean A flag that indicates whether a person is United States tax resident or not
is_ubo boolean A flag that indicates whether a person is an ultimate beneficial owner or not
last_name string Person's last name
latitude string TBD. Person's latitude. Used for fraud detection
login object Partial Login object. See Login
longitude string TBD. Person's longitude. Used for fraud detection
nationality string Person's nationality. Should be in two-word format. Ex: 'GB'
other_phone string Person's other phone number. Maybe working phone number
ownership number Ownership percentage of the Company. Can be from 0 to 100.
permissions object Object that contains Person's permissions.
person_login_id string Person Login ID.
phone string Person's phone number. Used for 2FA.
political_institution string A political institution where a person is politically significant
position string Position in the Company. For example director
position_in_political_institution string Position in a political institution
post_code string Person's postal code
primary_currency string TBD. Primary person currency. Should be three-word uppercase currency code. Ex.: USD.
profile_level string TBD. Person's profile level. Always gold.
region string Person's region
roles array Array of person's roles. See Roles
score_adjustment number This adjustment will always add to calculation transaction score for specific person. Can be positive, negative or zero.
screening_info object Person's screening result. Screening results are updated every week or you can request screening check manually by Screening
social_security_number string Person's Social Security number
street string Person's street
updated_at string Updated timestamp
updated_by object Partial object of a user who updated a specific person. See CreatedBy/UpdatedBy.
type string Describes corporate person as corporate employee or corporate consumer. Invitation link is not created for consumers. employee is set by default

Create a person [POST /v2/persons]

Example request POST /persons

curl -X POST \
  https://api.intergiro.com/v2/persons \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \
    -d '{
        "gender":"female",
        "is_ubo":true,
        "is_director":true,
        "first_name":"Kelsie",
        "email":"dumezyqi@mailinator.net",
        "phone":"+14342172665",
        "date_of_birth":"1979-05-16",
        "post_code":"224243",
        "street":"Quis quod sit duis ",
        "last_name":"Griffin",
        "other_phone":"+14342173453",
        "region":"Est enim voluptas no",
        "city":"Harum blanditiis aut",
        "social_security_number":"100",
        "nationality":"DZ",
        "roles":[
            "BkDgShpaGqM"
        ],
        "country":"DZ",
        "type": "employee"
    }'

Example response

{
   "roles":[{...}],
   "first_name":"Kelsie",
   "last_name":"Griffin",
   "date_of_birth":"1979-05-16",
   "phone":"14342172665",
   "country":"DZ",
   "street":"Quis quod sit duis",
   "city":"Harum blanditiis aut",
   "region":"Est enim voluptas no",
   "post_code":"224243",
   "gender":"female",
   "email":"dumezyqi@mailinator.net",
   "is_person_limits_disabled":true,
   "longitude":null,
   "latitude":null,
   "social_security_number":"100",
   "score_adjustment":0,
   "email_domain_creation_date":null,
   "nationality":"DZ",
   "person_login_id":"HyiKRveE4",
   "created_at":"2019-01-31T12:48:03.000Z",
   "profile_level":"newbie",
   "is_invitation_accepted":false,
   "other_phone":"14342173453",
   "deleted_at":null,
   "is_2_fa_enabled":true,
   "is_politically_exposed":false,
   "political_institution":null,
   "position_in_political_institution":null,
   "ownership":null,
   "position":null,
   "is_ubo":true,
   "is_director":true,
   "is_tax_resident":false,
   "primary_currency":"USD",
   "id":"rJdsYRwg4N",
   "updated_at":"2019-01-31T12:48:03.000Z",
   "account":{...},
   "identity":{...},
   "login":{...},
   "emails":[...],
   "fingerprints":[{...}],
   "ips":[{...}],
   "created_by":{
      "id":"adwFe2gsyd",
      "type":"person",
      "full_name":"Tom Ram"
   },
   "type": "employee"
}
Field Type Necessity Format / Validation rules
first_name string required Max length 100
last_name string required Max length 100
is_ubo boolean optional Ignored if type is consumer
is_director boolean optional Ignored if type is consumer
email string required(optional) Person's email address. Can be optional only if a person is an UBO without roles and not a director(is_director = false and is_ubo = true and roles are absent). For this person system does not check email duplicates.
gender string required One of unknown, male, female, transgender
date_of_birth string optional YYYY-MM-DD ISO 8601
phone string optional
other_phone string optional
country string optional Two-word format. Ex: GB
nationality string optional Two-word format. Ex: GB
street string optional Max length 64
city string optional Max length 64
region string optional Max length 100
post_code string optional Max length 10
social_security_number string optional Max length 100
roles array optional List of roles id's. Ex: ['SJglunTTM9f', 'SJGOhppf9G']. See Roles. Ignored if type is consumer
type string required(optional) One of employee, consumer. Required for corporations with multiple types allowed
account_id string required(ignored) Id of Account. Required for staff

Update a person [PUT /v2/persons]

Example request PUT /persons/:id

curl -X PUT \
  https://api.intergiro.com/v2/persons/rJdsYRwg4N \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \
    -d '{
        "gender":"male",
        "is_ubo":false,
        "is_director":false,
        "other_phone":"+14342173453"
    }'

Example response

{
   "roles":[{...}],
   "first_name":"Kelsie",
   "last_name":"Griffin",
   "date_of_birth":"1979-05-16",
   "phone":"14342172665",
   "country":"DZ",
   "street":"Quis quod sit duis",
   "city":"Harum blanditiis aut",
   "region":"Est enim voluptas no",
   "post_code":"224243",
   "gender":"male",
   "email":"dumezyqi@mailinator.net",
   "is_person_limits_disabled":true,
   "longitude":null,
   "latitude":null,
   "social_security_number":"100",
   "score_adjustment":0,
   "email_domain_creation_date":null,
   "nationality":"DZ",
   "person_login_id":"HyiKRveE4",
   "created_at":"2019-01-31T12:48:03.000Z",
   "profile_level":"newbie",
   "is_invitation_accepted":false,
   "other_phone":"14342173453",
   "deleted_at":null,
   "is_2_fa_enabled":true,
   "is_politically_exposed":false,
   "political_institution":null,
   "position_in_political_institution":null,
   "ownership":null,
   "position":null,
   "is_ubo":false,
   "is_director":false,
   "is_tax_resident":false,
   "primary_currency":"USD",
   "id":"rJdsYRwg4N",
   "updated_at":"2019-01-31T12:48:03.000Z",
   "account":{...},
   "identity":{...},
   "login":{...},
   "emails":[...],
   "fingerprints":[{...}],
   "ips":[{...}],
   "created_by":{
      "id":"adwFe2gsyd",
      "type":"person",
      "full_name":"Tom Ram"
   },
   "type": "employee"
}

Updates the specified person by setting the values of the parameters passed. Any parameters not provided will be left unchanged. This request accepts arguments described below. Fields with ** mark mean accessible only for person members.

Field Type Necessity Format / Validation rules
first_name string optional
last_name string optional
country string optional Two-word format. Ex: GB
nationality string optional Two-word format. Ex: GB
city string optional Max length 64
region string optional Max length 100
post_code string optional Max length 10
street string optional Max length 64
date_of_birth string optional YYYY-MM-DD ISO 8601
social_security_number string optional Max length 100
position string optional
ownership number optional
is_politically_exposed boolean optional
is_tax_resident boolean optional
is_ubo boolean optional
is_director boolean optional
is_2_fa_enabled * boolean optional
email * string optional
gender string optional One of unknown, male, female, transgender
phone * string optional
other_phone string optional
is_questionnaire_filled boolean optional
political_institution string optional
position_in_political_institution string optional
roles array optional List of roles id's. Ex: ['SJglunTTM9f', 'SJGOhppf9G']. See Roles
password string optional
confirm_password string optional
current_password ** string optional

Block a person [DELETE /v2/persons/:id]

Example Request

curl -X DELETE \
  https://api.intergiro.com/v2/persons/rJdsYRwg4N \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0'

Example response

    {
        "id": "rkz2l8Gln"
    }

Restore a person [PUT /v2/persons/:id/restore]

Example Request

curl -X PUT \
  https://api.intergiro.com/v2/persons/rJdsYRwg4N/restore \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0'

Example response

    {
        "id": "rkz2l8Gln"
    }

Retrieve person [GET /v2/persons/:id]

Example request GET /persons/rkz2l8Gln

curl -X GET \
  https://api.intergiro.com/v2/persons/rkz2l8Gln \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0'

Example response

{
    "first_name": "Tom",
    "last_name": "Ram",
    "date_of_birth": "1987-09-20",
    "phone": "375298880019",
    "country": "BY",
    "street": "test12",
    "city": "test12",
    "region": "test12",
    "post_code": "32353512",
    "gender": "male",
    "email": "demo1@demo.com",
    "is_person_limits_disabled": true,
    "longitude": null,
    "latitude": null,
    "social_security_number": "254654",
    "score_adjustment": null,
    "email_domain_creation_date": null,
    "nationality": "DZ",
    "person_login_id": "bd4d2gsyd",
    "created_at": "2018-03-23T18:52:20.000Z",
    "profile_level": "gold",
    "is_invitation_accepted": true,
    "other_phone": "375298880012",
    "deleted_at": null,
    "is_2_fa_enabled": true,
    "is_politically_exposed": false,
    "political_institution": null,
    "position_in_political_institution": null,
    "ownership": null,
    "position": null,
    "is_ubo": false,
    "is_director": true,
    "is_tax_resident": false,
    "primary_currency": "USD",
    "id": "adwFe2gsyd",
    "updated_at": "2019-01-29T11:58:43.000Z",
    "account": {...},
    "identity": {...},
    "login": {...},
    "emails": [...],
    "fingerprints": [{...}],
    "ips": [{...}],
    "created_by": {
        "id": "S1t4G6G8",
        "type": "staff",
        "full_name": "Clint Eastwood"
    },
    "updated_by": {
        "id": "S1t4G6G8",
        "type": "staff",
        "full_name": "Clint Eastwood"
    },
    "roles": [{...}],
    "screening_info": {
        "is_person_under_review": false,
        "person_profile": {
            "politically_exposed": false,
            "sanctions_lists_entity": false,
            "relative_or_close_associate": false,
            "board_member": false
        }
    },
    "type": "employee"
}

List all persons [GET /persons]

Persons endpoint has pagination. You can see how to use it here.

Example request GET /persons


curl -X GET \
  'https://api.intergiro.com/v2/persons?meta[sort_by]=createdAt&meta[sort_type]=DESC&meta[limit]=20&meta%5Blimit%5D=20&meta%5Bsort_type%5D=DESC&meta%5Bsort_by%5D=createdAt' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example responce

{
    "list": [
        {
            "id": "adwFe2gsyd",
            "first_name": "Tom",
            "last_name": "Ram",
            "country": "BY",
            "nationality": "DZ",
            "email": "demo1@demo.com",
            "phone": "375298880019",
            "created_at": "2018-03-23T18:52:20.000Z",
            "deleted_at": null,
            "is_invitation_accepted": true,
            "is_ubo": false,
            "is_director": true,
            "account": {...},
            "identity": {...},
            "login": {...},
            "emails": [...],
            "fingerprints": [{...}],
            "ips": [{...}],
            "roles": [{...}],
            "type": "employee",
            "screening_info": {
                "status": "check_passed",
                "profile": {
                    "politically_exposed": false,
                    "sanctions_lists_entity": false,
                    "relative_or_close_associate": false,
                    "board_member": false
                }
            }
        },
        ....
    ],
    "meta": {
        "number_of_records": 7,
        "limit": 20,
        "has_more": false,
        "sort_by": "createdAt",
        "sort_type": "DESC"
    }
}

Retrieve current logged in person [GET /persons/me]

To retrieve current logged in person you should use this endpoint. Response body has additional object(permissions) with permissions assigned to a user.

Example request GET /persons/me

curl -X GET \
  https://api.intergiro.com/v2/persons/me \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0'

Example response

{
   "permissions":{
      "persons_management.read":true
   },
   "first_name":"Tom",
   "last_name":"Ram",
   "date_of_birth":"1987-09-20",
   "phone":"375298880019",
   "country":"BY",
   "street":"test12",
   "city":"test12",
   "region":"test12",
   "post_code":"32353512",
   "gender":"transgender",
   "email":"demo1@demo.com",
   "is_person_limits_disabled":true,
   "longitude":null,
   "latitude":null,
   "social_security_number":"254654",
   "score_adjustment":null,
   "email_domain_creation_date":null,
   "nationality":"DZ",
   "person_login_id":"bd4d2gsyd",
   "created_at":"2018-03-23T18:52:20.000Z",
   "profile_level":"gold",
   "is_invitation_accepted":true,
   "other_phone":"375298880012",
   "deleted_at":null,
   "is_2_fa_enabled":true,
   "is_politically_exposed":false,
   "political_institution":null,
   "position_in_political_institution":null,
   "ownership":null,
   "position":null,
   "is_ubo":false,
   "is_director":true,
   "is_tax_resident":false,
   "primary_currency":"USD",
   "is_blocked":false,
   "id":"adwFe2gsyd",
   "updated_at":"2019-01-29T11:58:43.000Z",
   "account":{...},
   "identity":{...},
   "login":{...},
   "type": "employee",
   "created_by":{
      "id":"adwFe2gsyd",
      "type":"person",
      "full_name":"Tom Ram"
   },
   "updated_by":{
      "id":"S1t4G6G8",
      "type":"staff",
      "full_name":"Clint Eastwood"
   },
    "roles":[{...}],
    "screening_info":{...}
}

Update current logged in person [PUT /persons/me]

Example request PUT /persons/me

curl -X PUT \
  https://api.intergiro.com/v2/persons/me \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \
    -d '{
        "gender":"male",
        "is_ubo":true,
        "is_director":false,
        "other_phone":"+14342173453",
        "current_password":"secure-password",
        "password":"mega-secure-password",
        "confirm_password":"mega-secure-password"
    }'

Example response

{
    "first_name": "Tom",
    "last_name": "Ram",
    "date_of_birth": "1987-09-20",
    "phone": "375298880019",
    "country": "BY",
    "street": "test12",
    "city": "test12",
    "region": "test12",
    "post_code": "32353512",
    "gender": "male",
    "email": "demo1@demo.com",
    "is_person_limits_disabled": true,
    "longitude": null,
    "latitude": null,
    "social_security_number": "254654",
    "score_adjustment": null,
    "email_domain_creation_date": null,
    "nationality": "DZ",
    "person_login_id": "bd4d2gsyd",
    "created_at": "2018-03-23T18:52:20.000Z",
    "profile_level": "gold",
    "is_invitation_accepted": true,
    "other_phone": "14342173453",
    "deleted_at": null,
    "is_2_fa_enabled": true,
    "is_politically_exposed": false,
    "political_institution": null,
    "position_in_political_institution": null,
    "ownership": null,
    "position": null,
    "is_ubo": true,
    "is_director": false,
    "is_tax_resident": false,
    "primary_currency": "USD",
    "id": "adwFe2gsyd",
    "type": "employee",
    "updated_at": "2019-01-31T17:37:53.000Z",
    "account": {...},
    "identity": {...},
    "login": {...},
    "emails": [...],
    "ips": [{...}],
    "fingerprints": [{...}],
    "created_by": {
        "id": "adwFe2gsyd",
        "type": "person",
        "full_name": "Tom Ram"
    },
    "updated_by": {
        "id": "adwFe2gsyd",
        "type": "person",
        "full_name": "Tom Ram"
    },
    "roles": [{...}],
    "screening_info": {
        "is_person_under_review": false,
        "person_profile": {
            "politically_exposed": false,
            "sanctions_lists_entity": false,
            "relative_or_close_associate": false,
            "board_member": false
        }
    }
}

Updates the current person by setting the values of the parameters passed. Any parameters not provided will be left unchanged. This request accepts arguments described below. The way to update field with * mark is descibed below.

Field Type Necessity Format / Validation rules
is_ubo boolean optional
is_director boolean optional
gender string optional One of unknown, male, female, transgender
phone * string optional
other_phone string optional
is_questionnaire_filled boolean optional
political_institution string optional
position_in_political_institution boolean optional
roles array optional List of roles ids. Ex: ['SJglunTTM9f', 'SJGOhppf9G']. See Roles
current_password string optional If you want to update password, you should specify current person's password
password string optional New person's password
confirm_password string optional Confirm new person's password

Update current person's phone [PUT /persons/me]

Example request PUT /persons/me

curl -X PUT \
  https://api.intergiro.com/v2/persons/me \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \
    -d '{
        "current_password":"secure-password",
        "phone":"+375298880056"
    }'

Example response

{
    "two_fa_code":"045657",
    "truncated_phone_number":"**********56"
}

Completing update current person's phone [PUT /persons/me]

Example request PUT persons/me

curl -X PUT \
  https://api.intergiro.com/v2/persons/me \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \
    -d '{
        "two_fa_code":"045657"
    }'

Example response

{
   "first_name":"Tom",
   "last_name":"Ram",
   "date_of_birth":"1987-09-20",
   "phone":"375298880056",
   "country":"BY",
   "street":"test12",
   "city":"test12",
   "region":"test12",
   "post_code":"32353512",
   "gender":"male",
   "email":"demo1@demo.com",
   "is_person_limits_disabled":true,
   "longitude":null,
   "latitude":null,
   "social_security_number":"254654",
   "score_adjustment":null,
   "email_domain_creation_date":null,
   "identity_id":"SJPWS3aTM9z",
   "nationality":"DZ",
   "person_login_id":"bd4d2gsyd",
   "created_at":"2018-03-23T18:52:20.000Z",
   "profile_level":"gold",
   "is_invitation_accepted":true,
   "other_phone":"14342173453",
   "deleted_at":null,
   "is_2_fa_enabled":true,
   "is_politically_exposed":false,
   "political_institution":null,
   "position_in_political_institution":null,
   "ownership":null,
   "position":null,
   "type": "employee",
   "is_ubo":true,
   "is_director":false,
   "is_tax_resident":false,
   "primary_currency":"USD",
   "id":"adwFe2gsyd",
   "updated_at":"2019-02-01T13:01:29.000Z",
   "account":{...}
}

Authentication with biometrics by resolving the challenge [POST /persons/:id/biometricsignin]

NOT IMPLEMENTED YET.

Example request POST /person/biometricsignin

curl -X POST \
  https://api.intergiro.com/v2/person/biometricsignin \
    -H 'Content-Type: application/json' \
    -H 'x-device-id: <device-ID>' \
    -d '{
        "challenge_result": {
            "biometryChallenge": {
                "challenge_id": "fY63Oalo0",
                "signature": "<signature(nonce)>"
            }
        }
    }'

Example response (200 OK)

{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp"
}

Register a public key [POST /persons/:id/biometrics]

NOT IMPLEMENTED YET.

At this step the server validates the signature with the received public key to ensure the public key is valid.

Example request POST /persons/:id/biometrics

curl -X POST \
  https://api.intergiro.com/v2/persons/rJdsYRwg4N/biometrics \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5c' \
    -H 'x-device-id: <device-ID>' \
    -d '{
        "publicKey": "<public-key>",
        "cnonce": "<client-nonce>",
        "signature": "<signature(client-nonce)>"
    }'

Example response (200 OK)

{ }

Unregister public key [DELETE /persons/:id/biometrics]

NOT IMPLEMENTED YET.

Example request DELETE /persons/:id/biometrics

curl -X DELETE \
  https://api.intergiro.com/v2/persons/rJdsYRwg4N/biometrics \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5c' \
    -H 'x-device-id: <device-ID>'

Example response (200 OK)

{ }

Transaction

Authorization Codes

Code Name Description
0 APPROVED Transaction was approved by system and funds were delivered
1 AUTHORIZED Transaction passed the first part of validation, but it can be declined in case of invalid payment data
10 DECLINED Transaction wasn't approved by system and funds were not delivered. Code means that transaction was declined during processing of payment.
21 REFUNDED Transaction funds were refunded to account holder
22 HOLD Transaction funds were held by the system. In this case please contact system support.
30 REJECTED Transaction wasn't approved by system and funds were not delivered. Code means that payment processing wasn't started for the transaction. For example, limits were reached.
40 PENDING Transaction was initialized and the transaction amount was reserved. But processing of transaction still not started by the system.
41 PENDING_AUTH Processing of transaction started by the system
42 UNDER_REVIEW Transaction with this status is under staff review
43 INITIALIZED This status is used only for fee payments. Transaction with this status means that the system waits for a customer to cover the fee amount to start transfer processing.

Error Codes

Upon processing by system, transaction can be assigned an error code below

Code Name Description
101 PICK_UP
1300 INVALID_DATA_FORMAT
1301 INVALID_OR_INCOMPLETE_DATA_PROVIDED
1310 INVALID_AMOUNT
1318 INVALID_DATE
1320 INVALID_CURRENCY_CODE
1322 INVALID_CUSTOMER_DATA
1330 INVALID_ACCOUNT
1352 INVALID_AGENT
1360 BAD_PROCESSING_CODE
1385 INVALID_BANK_OPERATION_CODE
1392 INVALID_REFERENCE
1393 TRANSACTION_CANNOT_BE_COMPLETED
5100 GENERIC_DECLINE
5101 DECLINED_BY_PERSON
5120 INSUFFICIENT_FUNDS
5121 AMOUNT_EXCEED_LIMIT
5141 CLOSED_ACCOUNT_NUMBER
5160 UNAUTHORIZED_USER
5161 UNAUTHORIZED
5173 ACCOUNT_TYPE_INVALID
5200 DUPLICATE_TRANSACTION
5450 WRONG_IBAN
5501 SYSTEM_VELOCITY_REACHED
5700 TRANSACTION_NOT_PERMITTED
5701 NO_TRANSACTION
5800 REVERSAL_REJECTED
5801 CANCELLATION_REQUEST
5802 FINAL_RESPONSE_MANDATE_CANCELLED
5803 NO_MANDATE
5804 RETURN_FUNDS
5805 RETURN_AFTER_INVESTIGATION
6301 ACCOUNT_IN_BLACKLIST
6303 WHITELIST_VALIDATION_ERROR
6400 SPECIFIC_SERVICE_OFFERED
7710 AUTHENTICATION_FAILED
7721 AUTHORISATION_WAITING
7730 AUTHORISED_AND_CANCELLED
8000 PROCESSOR_SYSTEM_ERROR
8040 CUT_OFF_TIME
8100 FATAL_COMMUNICATION_ERROR
9110 TRANSACTION_DECLINED
9500 SUSPECTED_FRAUD
9505 PAYMENT_DATA_ARE_BLOCKED
9542 BANK_NOT_SUPPORTED
9544 BANK_NOT_REGISTERED_UNDER_BIC
9600 UNRECOGNIZED_RESPONSE_CODE
9610 UNRECOGNIZED_INITIAL_PARTY
9620 UNKNOWN_END_CUSTOMER
9621 DECEASED_END_CUSTOMER
9630 UNKNOWN_REASON
9631 REASON
9700 BALANCE_REQUEST
9800 HTTP_ERROR
9900 TECHNICAL_PROBLEM
-100 TRANSACTION_SCORE_TOO_LOW Score is too low
-114 CORPORATION_LIMIT_REACHED Corporation Limit was reached
-115 CORPORATION_VELOCITY_REACHED Corporation Velocity was reached
-116 CORPORATION_ATTEMPT_VELOCITY_PER_HOUR_REACHED Corporation Attempt's velocity per hour was reached
-117 CORPORATION_AMOUNT_REACHED Corporation Amount was reached
-118 CORPORATION_AMOUNT_BELOW_MIN Amount is below minimum
-119 CORPORATION_AMOUNT_ABOVE_MAX Amount is above limit per transaction
-300 PAYMENT_PROCESSOR_NOT_FOUND No Payment Processor
-420 TOTAL_CARD_LIMIT_REACHED Total card limit was reached

The transaction object

{
    "amount_dkk":7467,
    "amount_eur":1000,
    "amount_gbp":897,
    "amount_nok":9816,
    "amount_sek":10642,
    "amount_usd":1124,
    "charge_dkk":7467,
    "charge_eur":1000,
    "charge_exchange_rate":null,
    "charge_gbp":897,
    "charge_nok":9816,
    "charge_sek":10642,
    "charge_usd":1124,
    "created_at":"2019-06-18T13:16:33.000Z",
    "created_by":{
        "id":"HJ6rSYWpCN",
        "type":"person",
        "full_name":"Coby Potts"
    },
    "deleted_at":null,
    "exchange_rate":null,
    "fingerprint":{...},
    "id":"SJ+F44DLyB",
    "identity":{...},
    "meta":{...},
    "payment_processor_responses": {...},
    "review":null,
    "score_calc_logs":[],
    "score_range_id":"excellent",
    "score":1201,
    "source_amount":1000,
    "source_counterparty_id":"1b4bae7f-6ea8-46ad-ada5-13621def9dd6",
    "source_currency":"EUR",
    "source_last_known_good_processor_reason_of_missing":null,
    "source_payment_processor":{...},
    "source":{...},
    "status":{...},
    "target_amount":1000,
    "target_counterparty_id":"02bad5d3-d713-4942-bd29-ebfef182b5b8",
    "target_currency":"EUR",
    "target_last_known_good_processor_reason_of_missing":null,
    "target_payment_processor":{...},
    "target":{...},
    "type":"transfer-outgoing",
    "updated_at":"2019-06-18T13:16:33.000Z"
}
Field Type Description
amount_dkk number Transaction amount in indivisible units in DKK equvalent
amount_eur number Transaction amount in indivisible units in EUR equvalent
amount_gbp number Transaction amount in indivisible units in GBP equvalent
amount_nok number Transaction amount in indivisible units in NOK equvalent
amount_sek number Transaction amount in indivisible units in SEK equvalent
amount_usd number Transaction amount in indivisible units in USD equvalent
charge_dkk number Charge amount in indivisible units in DKK equvalent
charge_eur number Charge amount in indivisible units in EUR equvalent
charge_exchange_rate number TBD
charge_gbp number Charge amount in indivisible units in GBP equvalent
charge_nok number Charge amount in indivisible units in NOK equvalent
charge_sek number Charge amount in indivisible units in SEK equvalent
charge_usd number Charge amount in indivisible units in USD equvalent
created_at string Creation timestamp
created_by object Partial object of a user who created a specific transaction. See CreatedBy/UpdatedBy.
deleted_at string Deletion timestamp
exchange_rate number TBD
fingerprint object Partial Fingerprint object. See Fingerprint
id string Transaction ID
identity object Identity object. See Identity
meta object Transaction meta object. See Transaction meta
payment_processor_responses object Responses of specific payment processor which were selected during transaction creation
review object Review object. See Transaction review
score_calc_logs array TBD
score_range_id string Transaction category classification according to Scoring Rule Ranges. See Scoring Rule Ranges.
score number A number, calculated using Scoring Rules and current transaction related data. See Scoring Rules.
source_amount number Amount in indivisible units which will be reserved on the wallet
source_counterparty_id number TBD
source_currency string Currency of wallet from which transaction was initiated
source_last_known_good_processor_reason_of_missing string TBD. Reason why source last known good processor wasn't found.
source_payment_processor object Partial Payment Processor object. See Payment Processor
source object Entity to deduct from balance. In case transfer-outgoing transaction - source is partial Corporation Wallet object. In case transfer-incoming transaction - source is partial Corporation Payment Account object. See Transaction source/target
status object Transaction status object. See Transaction status
target object Entity to add balance. In case transfer-incoming transaction - target is partial Corporation Wallet object. In case transfer-outgoing transaction - target is partial Corporation Payment Account object. In case convert transaction - target is partial Corporation Wallet object. See Transaction source/target
target_amount number Amount in cents which will be sent to the target
target_counterparty_id number TBD
target_currency string Currency in which the target will receive funds
target_last_known_good_processor_reason_of_missing string TBD. Reason why target last known good processor wasn't found.
target_payment_processor object Partial Payment Processor object. See Payment Processor
type string Transaction type. Can be one of transfer-outgoing, transfer-incoming, invoice-payment, fee.
updated_at string Timestamp of an update

Transaction status object

Each transaction contains status object, which displays current state of the transaction. With the help of status object, you can define if transaction was approved or not.

{
  ...transaction,
  "status": {
    "id":"By4I4ECHmE",
    "code":42,
    "error_code":8000,
    "description":"Invalid Virtual IBAN",
    "is_disputed":false,
    "approved":false,
    "total_fee_amount":0
  }
}
Field Type Description
approved boolean This field displays the fact of successful delivery of funds
code number Transaction Authorization Code
description string Transaction error description. Depends on error code.
error_code number Transaction Error code. In case of successful payment, field will be nullable.
id string Transaction status ID
is_disputed boolean Deprecated field
total_fee_amount number This field displays an amount of fees that were charged. Includes transfer fee and exchange fee. See Fees

Transaction review

TODO

Transaction payment processor responses

TODO

Transaction source/target

The main info in transaction is remitter and beneficiary. So system stores this info in source/target objects.

In some cases source or target fields within wallet object can have pending or real wallet. Pending wallet contains reserved funds. Transaction requisites are always placed in real wallet.

{
  ...transaction,
  "source": {
    "object": "wallet",
    "id": "Hy1JWkINE",
    "real": {
      "id": "HJL9PmBMsz",
      "requisites": {
        "id": "BkR6GGwpM",
        "number": "BY13NBRB3600900000002Z00AB00",
        "code": "NBRBBY2X"
      }
    },
    "requisites": null
  },
  "target": {
    "object": "payment-account",
    "id": "bqrrtbMl2AjMma8Cs_zf8kPK6vwCRZXm",
    "source_type": "iban",
    "truncated_identifier": "SE3091028692552944474488",
    "scheme": "iban",
    "payment_account_reputations": []
  }
}
Field Type Description
object string wallet or payment-account.
rest of the fields will be from partial Corporation Payment Account object or partial Corporation Wallet object

List all transactions [GET /transactions]

Transactions endpoint has pagination. You can see how to use it here.

Field Type Necessity Description Format / Validation rules
meta.sort_by string optional Indicates the parameter using which results will be sorted by
meta.sort_type string optional Indicates the type of results sorting DESC, ASC
meta.limit number optional Indicates the parameter using which results will be sorted by
brand_id string optional Brand to which transactions belong
intermediary_id string optional Intermediary to which transactions belong
search string optional Search string
range.from string optional Timestamp from which transactions should be shown
range.to string optional Timestamp to which transactions should be shown
status number optional Indicates the status code of transactions that should be shown
account_ids array optional Array of Corporate account IDs to which transactions belong
currency string optional Transactions currency Possible values: USD, EUR, GBP, SEK, DKK, NOK

Example request GET /transactions


curl -X GET \
  'https://api.intergiro.com/v2/transactions?meta%5Bsort_by%5D=createdAt&meta%5Bsort_type%5D=DESC&meta%5Blimit%5D=20' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{
  "list":[
    {
      "amount_dkk":7467,
      "amount_eur":1000,
      "amount_gbp":897,
      "amount_nok":9816,
      "amount_sek":10642,
      "amount_usd":1124,
      "charge_dkk":7467,
      "charge_eur":1000,
      "charge_exchange_rate":null,
      "charge_gbp":897,
      "charge_nok":9816,
      "charge_sek":10642,
      "charge_usd":1124,
      "created_at":"2019-06-18T13:16:33.000Z",
      "created_by":{
        "id":"HJ6rSYWpCN",
        "type":"person",
        "full_name":"Coby Potts"
      },
      "deleted_at":null,
      "exchange_rate":null,
      "fingerprint":{...},
      "id":"SJ+F44DLyB",
      "identity":{...},
      "meta":{...},
      "review":null,
      "score_range_id":"excellent",
      "score":1201,
      "source_amount":1000,
      "source_counterparty_id":"1b4bae7f-6ea8-46ad-ada5-13621def9dd6",
      "source_currency":"EUR",
      "source_last_known_good_processor_reason_of_missing":null,
      "source_payment_processor":{...},
      "source":{...},
      "status":{...},
      "target_amount":1000,
      "target_counterparty_id":"02bad5d3-d713-4942-bd29-ebfef182b5b8",
      "target_currency":"EUR",
      "target_last_known_good_processor_reason_of_missing":null,
      "target_payment_processor":{...},
      "target":{...},
      "type":"transfer-outgoing",
      "updated_at":"2019-06-18T13:16:33.000Z"
    },
    ...
  ],
  "meta":{
    "number_of_records":87,
    "limit":20,
    "has_more":true,
    "sort_by":"createdAt",
    "sort_type":"DESC"
  }
}

Get transaction by id [GET /transactions/:id]

Example request GET /transactions/Bk7rgYJD44


curl -X GET \
  'https://api.intergiro.com/v2/transactions/Bk7rgYJD44' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{
  "charge_exchange_rate":null,
  "created_at":"2019-06-19T12:30:40.000Z",
  "created_by":{
    "id":"HJ6rSYWpCN",
    "type":"person",
    "full_name":"Coby Potts"
  },
  "exchange_rate":null,
  "fingerprint":{...},
  "id":"Bk7rgYJD44",
  "identity":{...},
  "payment_processor_responses":{...}
  "review":null,
  "score_calc_logs":[],
  "score_range_id":"excellent",
  "score":1201,
  "source_amount":1000,
  "source_counterparty_id":"1b4bae7f-6ea8-46ad-ada5-13621def9dd6",
  "source_currency":"EUR",
  "source_last_known_good_processor_reason_of_missing":null,
  "source_payment_processor":{...},
  "source":{...},
  "status":{...},
  "target_amount":1000,
  "target_counterparty_id":"69183ced-0a48-4296-a109-df8559f03b33",
  "target_currency":"EUR",
  "target_last_known_good_processor_reason_of_missing":null,
  "target_payment_processor":{...},
  "target":{...},
  "type":"transfer-outgoing",
}

Create a transfer [POST /v2/transactions]

Field Type Necessity Description Format / Validation rules
amount number required Transaction amount in indivisible units Should be > 0 and max length is 16
target.id string optional Wallet id used for transfering money to certain wallet within the system. The entire beneficiary field is not considered after that
beneficiary.account.number object required Local Account No. (only in conjuction with Sort code) or IBAN (only in conjuction with BIC) IBAN or Local number
beneficiary.account.code string required Sort code (only in conjuction with Local Account No.) or BIC (only in conjuction with IBAN) BIC or Sort code
beneficiary.address.city string may vary Beneficiary city Optional if Arkea transfer / GBP-transfer using Local No. / EUR-transfer using SEPA IBAN. Otherwise - reqired.
beneficiary.address.country string may vary Beneficiary country 2-letter code Optional if Arkea transfer / GBP-transfer using Local No. / EUR-transfer using SEPA IBAN. Otherwise - reqired.
beneficiary.address.post_code string may vary Beneficiary postal code Optional if Arkea transfer / GBP-transfer using Local No. / EUR-transfer using SEPA IBAN. Otherwise - reqired.
beneficiary.address.region string optional Beneficiary state/region
beneficiary.address.street string may vary Beneficiary street, home, apts etc. info Optional if Arkea transfer / GBP-transfer using Local No. / EUR-transfer using SEPA IBAN. Otherwise - reqired.
beneficiary.name string required Beneficiary name Max length - 35 symbols. Allowed symbols depend on Payment processor that will be used during transfer.
currency string required Transaction currency Possible values: USD, EUR, GBP, SEK, DKK, NOK
identity_id string required Identity ID
payment_details string required Some detauls about the payment (purpose of it)
source.currency string required Source wallet currency Possible values: USD, EUR, GBP, SEK, DKK, NOK
source.id string required Source wallet ID
source.payment_processor_adapter string required Source wallet payment processor adapter
type string required Transaction type transfer

Example request POST /transactions

curl -X POST \
  https://api.intergiro.com/v2/transactions \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \
    -d '{
      "type":"transfer",
      "source":{
        "id":"rkG3La0NkS",
        "currency":"EUR",
        "payment_processor_adapter":"Saxo"
      },
      "beneficiary":{
        "account":{
          "number":"SE3397700000010000000025",
          "code":"FTCSSESS"
        },
        "address":{
          "street":"Dicta quas ab tenetu",
          "post_code":"575679",
          "city":"Ipsa iste non sequ",
          "country":"FR"
        },
        "name":"DuBuque LLC",
        "account_id":"BJxm39swJS"
      },
      "amount":1000,
      "currency":"EUR",
      "payment_details":"donation",
      "identity_id":"S1hBrFWT0V"
    }'

Example response with 2FA

{
  "two_fa_code": "096867",
  "truncated_phone_number": "*********89"
}

Example response with verified 2FA

{
  "charge_exchange_rate":null,
  "created_at":"2019-06-19T12:30:40.000Z",
  "exchange_rate":null,
  "fingerprint_id":"rkPlsoDyH",
  "id":"B1bOejiwkH",
  "identity_id":"rJeNrKbTRV",
  "score_range_id":"excellent",
  "score":1201,
  "source_amount":1000,
  "source_counterparty_id":"1b4bae7f-6ea8-46ad-ada5-13621def9dd6",
  "source_currency":"EUR",
  "source_last_known_good_processor_reason_of_missing":null,
  "source_payment_processor_id":"ryUePXpRN",
  "source":{...},
  "status":{...},
  "target_amount":1000,
  "target_counterparty_id":"69183ced-0a48-4296-a109-df8559f03b33",
  "target_currency":"EUR",
  "target_last_known_good_processor_reason_of_missing":null,
  "target_payment_processor_id":"ryUePXpRN",
  "target":{...}
  "type":"transfer-outgoing",
}
Field Type Necessity Description Format / Validation rules
amount number required Transfer amount, in cents Min amounts by currencies: EUR: 100, USD: 200, GBP: 100, SEK: 1500, NOK: 1500, DKK: 800
currency string required Transfer currency USD, EUR, GBP, SEK, NOK, DKK. Some corporate accounts accept only EUR currency. It depends on agreement with the system owner.
payment_details string required Transfer payment details Max length 35
source.id string required Corporation Wallet ID
target.address_1 string required Address of the person or entity to whom funds are being send. For ex.: 3 Railway St. Max length 35
target.address_2 string required Address of the person or entity to whom funds are being send. For ex.: Ruawai 0592. Max length 35
target.beneficiary_name string required Name of the person or entity to whom funds are being send Max length 35
target.city string required City of the person or entity to whom funds are being send Max length 18
target.country string required Country of the person or entity to whom funds are being send Should be in two-word format. Ex: 'GB'.
target.post_code string required Postal code of the person or entity to whom funds are being send Max length 12
target.requisites.code string required Can be Sort code (only in conjuction with Local Account No. in target.requisites.number field) or BIC (only in conjuction with IBAN in target.requisites.number field)
target.requisites.number string required Can be Local Account No. (only in conjuction with Sort code in target.requisites.code field) or IBAN (only in conjuction with BIC in target.requisites.code field)
type string required Transaction type transfer

Each time you create a transfer you should pass 2FA. But when you create transfer inside corporate account 2FA disabled.

To proceed with 2FA you should request Create a transfer endpoint again with the same data plus two_fa_code field with code value which person receives via SMS.

Create a convert [POST /v2/transactions]

Example request POST /transactions

curl -X POST \
  https://api.intergiro.com/v2/transactions \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \
    -d '{
      "type":"convert",
      "source":{
        "id":"rkD9wmSMoz"
      },
      "amount":200,
      "currency":"USD"
    }'

Example response

{
  "identity_id":"ryx5vQHfiG",
  "type":"transfer-outgoing",
  "score":1400,
  "score_range_id":"excellent",
  "fingerprint_id":"HJ5nyF-N4",
  "source_amount":100,
  "source_currency":"EUR",
  "source_payment_processor_id":"S1oEBo8qz",
  "exchange_rate":null,
  "charge_exchange_rate":null,
  "target_amount":100,
  "target_currency":"USD",
  "target_payment_processor_id":"S1oEBo8qz",
  "source_last_known_good_processor_reason_of_missing":null,
  "target_last_known_good_processor_reason_of_missing":null,
  "payment_account_holder_id":"Hki3kFdV4",
  "id":"BygonkFuEV",
  "created_at":"2019-02-06T15:39:30.000Z",
  "status":{...},
  "source":{...},
  "target":{...}
}
Field Type Necessity Description Format / Validation rules
amount number required Transfer amount, in cents Min amounts by currencies: EUR: 100, USD: 200, GBP: 100, SEK: 1500, NOK: 1500, DKK: 800
currency string required Transfer currency USD, EUR, GBP, SEK, NOK, DKK
source.id string required Corporation Wallet ID
type string required Transaction type convert

2FA is disabled for convert transfers

Validation errors for create transaction endpoint [POST /v2/transactions]

Besides common validation errors, there are additional validation errors:

Error Code Description
20001 Unknown transaction type: transaction with this type is not exist
20002 Not enough funds to make transaction
20003 A wallet(source or target for a convert transaction) that has been choosen is not exist
20004 A wallet(source or target for a convert transaction) that has been choosen is not set up fully, so can't be used
20005 An amount is less than minimum allowed amount
20006 There an is unpaid invoice for the corporation, so it's unable to create a transaction
20009 Convert transactions are not allowed for Arkea Payment Processor wallets
20010 A conversion shouldn't be to the same currency - choose another currency
20011 A target account can receive only EUR currency
20012 A transfer shouldn't have the same source and target accounts

Feedback

Feedback [POST /feedback]

For sending feedback the user should complete the recaptcha challenge

Example request POST /feedback

curl -X POST \
  https://api.intergiro.com/v2/feedback \
    -H 'Content-Type: application/json' \
    -d '{
        "name": "Bon Jovi",
        "password": "itsmylife",
        "email": "bonj@ftcs.se",
        "recaptcha": "slkdfj45LKJjkfkl",
        "subject": "My feelings about intergiro.com",
        "feedback": "The best banking app in the world"
    }'

Example response:

{}

Report

Pdf statement report [GET /reports/statement/pdf]

Field Type Necessity Description Format / Validation rules
timezone string optional The timezone for the user. 'UTC' is used if nothing specified Check Wiki for tz names
walletId string required Exactly one existing Wallet should be specified for the particular statement
from string optional Indicates the start date for the statement YYYY-MM-DD
to string optional Indicates the end date for the statement. The statement will include transactions from this day. Internally we are addding a one day to this day and perform a search YYYY-MM-DD
corporationId string optional Identifier of Corporaton to generate report for. For staff and api users this param is required. For person this param is ignored

Example request GET /reports/statement/pdf

curl -X GET \
  https://api.intergiro.com/v2/reports/statement/pdf?walletId=erdDfd34Gj&from=2019-01-01&to=2019-02-02&timezone=Europe%2FMinsk \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \

Example response

{
    "report_path": "https://sandbox.minio.intergiro.pw/reports/Customer%20reports/S1t4G6G8/USD%20Account%20statement%202019-07-31.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=devdevdev%2F20190731%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190731T143652Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=19419eeff5cba5be847b31853fcfb273edb48cfbf70db99442f512802f82d40d"
}

Csv statement report [GET /reports/statement/csv]

Field Type Necessity Description Format / Validation rules
timezone string optional The timezone for the user. 'UTC' is used if nothing specified Check Wiki for tz names
wallets array required Multiple Wallet IDs should be specified for the particular statement
from string optional Indicates the start date for the statement YYYY-MM-DD
to string optional Indicates the end date for the statement. The statement will include transactions from this day. Internally we are addding a one day to this day and perform a search YYYY-MM-DD
corporationId string optional Identifier of Corporaton to generate report for. For staff and api users this param is required. For person this param is ignored

Example request GET /reports/statement/csv

curl -X GET \
  https://api.intergiro.com/v2/reports/statement/csv?wallets[0]=erdDfd34Gj&from=2019-01-01&to=2019-02-02&timezone=Europe%2FMinsk \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \

Example response

{
    "report_path": "https://sandbox.minio.intergiro.pw/reports/Customer%20reports/S1t4G6G8/Transaction_list_2019-07-31.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=devdevdev%2F20190731%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190731T143652Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=19419eeff5cba5be847b31853fcfb273edb48cfbf70db99442f512802f82d40d"
}

Introducer corporate fee report [GET /reports/introducers-corporates-fee]

Field Type Necessity Description Format / Validation rules
corporationIds string optional Sublist of introducers corporations if not provided, report will include ALL introducers corporations
introducerId string required Introducer's ID
from string required Indicates the start date for the statement YYYY-MM-DD
to string required Indicates the end date for the statement. The statement will include transactions from this day. Internally we are addding a one day to this day and perform a search YYYY-MM-DD

Example request GET /reports/introducers-corporates-fee

curl -X GET \
  https://api.intergiro.com/v2/reports/introducers-corporates-fee?introducerId=1ee463df-b7cc-4c81-baed-92e20aa78398&corporationIds[0]=rJWrJO3HXr&corporationIds[1]=fDfd8+fkF&from=2019-08-01&to=2019-08-31 \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \

Example response

{
    "report_path": "https://sandbox.minio.intergiro.pw/reports/Introducer%20revenues/Introducer%20revenue%20report%20on%202019-08-01%20-%20.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=devdevdev%2F20190822%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190822T154323Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e9b483e80d48987d2d5200d034e45a470656c283ec96cefa0579841b6dd179fb"
}

Corporation

Object

{
    "id":"BkEqCx4VBE",
    "account_id":"HJ+BAx4VHV",
    "address":"Kulman str. 11, Minsk",
    "city":null,
    "country":"AT",
    "created_at": "2019-02-15T12:30:07.000Z",
    "created_by":{
        "id":"S1t4G6G8",
        "type":"staff",
        "full_name":"Clint Eastwood"
    },
    "currency":"USD",
    "deleted_at": null,
    "email":"paralect@paralect.com",
    "identity":{
        "id":"S1lqAxN4SN",
        "type":"corporate",
        "is_kyc_verified":true,
        "is_questionnaire_filled":true
    },
    "is_another_bank_account":false,
    "is_initial_application_filled":true,
    "is_onboarded":true,
    "kyc_data_provided_by_id":null,
    "kyc_data_provider":null,
    "name":"Paralect",
    "onboarded_at":"2018-05-20T16:10:00.000Z",
    "post_code":null,
    "region":null,
    "updated_by":{
        "id": "S1t4G6G8",
        "type": "staff",
        "full_name": "Clint Eastwood"
    }
}
Field Type Description
id string Corporation ID.
account_id string TBD ID of account that is connected with the company. See Account
address string Registration address of the company. Usually, this field contains company location address. Ex.: 1 Avalon Drive
city string Company location city name
country string Company location country code. Can be two-word uppercase country code format. Ex.: AT
created_at string Timestamp of the corporation creation datetime
created_by object Partial object of a user that created the Company. See CreatedBy/UpdatedBy
currency string Default corporation currency. Possible values: USD, EUR, GBP, SEK, DKK, NOK
deleted_at string Timestamp of the corporation block time. Null if corporation is active
email string Company email
identity object Partial object of Identity that connected with the company
is_another_bank_account boolean This field shows does the company currently have a bank account in the EU or not
is_initial_application_filled boolean This field shows is initial application form filled for the company or not. See Initial Application Form
is_onboarded boolean This field shows is the company onboarded or not. If the company is not onboarded any operations with its wallets are disabled
kyc_data_provided_by_id string ID of KYC data provider user
kyc_data_provider object KYC data provider user object
name string Corporation name
onboarded_at string Timestamp of the corporation onboarding datetime
post_code string Corporation location postal code
region string Corporation location region name
updated_by object Partial object of a user that updated the Company. See CreatedBy/UpdatedBy

Sign up corporation [POST /v2/corporation/signup]

After success sign up request, you'll get a letter on email with the further registration instructions

Example request POST /v2/corporation/signup


curl -X POST \
  'https://api.intergiro.com/v2/corporation/signup' \
  -H 'Content-Type: application/json' \
  -d '{
      "companyName":"Paralect",
      "email":"paralect@paralect.com",
      "firstName":"Contact",
      "lastName":"Person",
      "phone":"+375(29)000-00-00",
      "country":"AT","recaptcha":"03AOLTBLTrc7DPetiqSDbhKmvYIrYf-jmiHmq7gSVjG2xJmuQC0b2_TEUqCNl1azW8cbCNBGCWdRCXV3KjIFi1ut7PYuShhP1UZWRholj-vm_PMSoYeeAShxglQEP74sZRla2Jc4kleIpmqXxnzBzAfumCwB1J-2oy1SKOi8aMsvEiLryn5ohBPvQjXom3yULXuZi7fnBTkNrdhmppidIk3WWJcSUp_KLiJVpTHLzbmNTaEnFVEto5na0BzUZocMFZcJ9KwehlRUFAKElz2oZpinzR9BYKcwnBNIu0pcBxnKgYQLpxxesFPeI5lsxcKgqE2PXxQBIo_xX9"
    }'

Example response

{
  "id":"BkEqCx4VBE"
}

Response format:

Field Type Description
id string Created Corporation ID

List all corporations [GET /v2/corporations]

Example request GET /v2/corporations


curl -X GET \
  'https://api.intergiro.com/v2/corporations' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{
  "list":[
    {
        "id":"BkEqCx4VBE",
        "account_id":"HJ+BAx4VHV",
        "address":"Kulman str. 11, Minsk",
        "city":null,
        "country":"AT",
        "created_by":{
            "id":"S1t4G6G8",
            "type":"staff",
            "full_name":"Clint Eastwood"
        },
        "currency":"USD",
        "deleted_at": null,
        "email":"paralect@paralect.com",
        "identity":{
            "id":"S1lqAxN4SN",
            "type":"corporate",
            "is_kyc_verified":true,
            "is_questionnaire_filled":true
        },
        "is_another_bank_account":false,
        "is_initial_application_filled":true,
        "is_onboarded":true,
        "kyc_data_provided_by_id":null,
        "kyc_data_provider":null,
        "name":"Paralect",
        "onboarded_at":"2018-05-20T16:10:00.000Z",
        "post_code":null,
        "region":null,
        "updated_by": {
            "id": "S1t4G6G8",
            "type": "staff",
            "full_name": "Clint Eastwood"
        }
    },
    ...
  ],
  "meta":{
    "number_of_records":5,
    "limit":30,
    "has_more":false,
    "sort_by":"name",
    "sort_type":"ASC"
  }

Get current corporation [GET /v2/corporations/current]

Example request GET /v2/corporations/current


curl -X GET \
  'https://api.intergiro.com/v2/corporations/current' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{
    "id":"BkEqCx4VBE",
    "account_id":"HJ+BAx4VHV",
    "address":"Kulman str. 11, Minsk",
    "city":null,
    "country":"AT",
    "created_by":{
        "id":"S1t4G6G8",
        "type":"staff",
        "full_name":"Clint Eastwood"
    },
    "currency":"USD",
    "deleted_at": null,
    "email":"paralect@paralect.com",
    "identity":{
        "id":"S1lqAxN4SN",
        "type":"corporate",
        "is_kyc_verified":true,
        "is_questionnaire_filled":true
    },
    "is_another_bank_account":false,
    "is_initial_application_filled":true,
    "is_onboarded":true,
    "kyc_data_provided_by_id":null,
    "kyc_data_provider":null,
    "name":"Paralect",
    "onboarded_at":"2018-05-20T16:10:00.000Z",
    "post_code":null,
    "region":null,
    "updated_by": {
        "id": "S1t4G6G8",
        "type": "staff",
        "full_name": "Clint Eastwood"
    }
}

Update corporation [PUT /v2/corporation/:id]

Endpoint accessible only for staff members. Updates the specified corporation by setting the values of the parameters passed. Any parameters not provided will be left unchanged. This request accepts arguments described below.

Field Type Necessity Format / Validation rules
name string optional
email string optional
country string optional Two-word format. Ex: GB. See Corporation countries
currency string optional Only EUR
city string optional Max length 64
region string optional Max length 100
post_code string optional Max length 10
address string optional Max length 64
is_kyc_verified boolean optional
is_onboarded boolean optional

Example request PUT /v2/corporation/rJ+tP37P94


curl -X POST \
  'https://api.intergiro.com/v2/corporation/rJ+tP37P94' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q' \
  -d '{
        "name": "Allen Bauer",
        "email": "test@yahsdfoo.com",
        "country": "RU",
        "currency": "EUR",
        "region": "test",
        "address": "test",
        "city": "Moscow",
        "post_code": "323423"
    }'

Example response

{
    "name": "Allen Bauer",
    "email": "test@yahsdfoo.com",
    "country": "RU",
    "currency": "EUR",
    "region": "test",
    "address": "test",
    "city": "Moscow",
    "post_code": "323423",
    "kyc_data_provided_by_id": "BJiKPnQw5V",
    "is_onboarded": true,
    "onboarded_at": "2019-04-19T11:13:03.000Z",
    "is_initial_application_filled": true,
    "is_another_bank_account": true,
    "deleted_at": null,
    "id": "rJ+tP37P94",
    "created_at": "2019-04-19T11:09:20.000Z",
    "identity": {...},
    "account": {...},
    "kyc_data_provider": {
        "id": "BJiKPnQw5V",
        "first_name": "Laith",
        "last_name": "Mcclure"
    },
    "created_by": {
        "id": "S1t4G6G8",
        "type": "staff",
        "full_name": "Clint Eastwood"
    },
    "updated_by": {
        "id": "S1t4G6G8",
        "type": "staff",
        "full_name": "Clint Eastwood"
    },
    "questionnaire": {...},
    "overall_screening_info": {
        "is_corporation_under_review": false,
        "corporation_profile": {
            "politically_exposed": false,
            "sanctions_lists_entity": false,
            "relative_or_close_associate": false,
            "board_member": false
        },
        "corporate_users_profile": {
            "politically_exposed": false,
            "sanctions_lists_entity": false,
            "relative_or_close_associate": false,
            "board_member": false
        }
    }
}

Corporation countries

The system only accepts customers from the countries listed below.

Two-word format Country
AT Austria
BE Belgium
BG Bulgaria
HR Croatia
CY Cyprus
CZ Czech Republic
DK Denmark
EE Estonia
FI Finland
FR France
DE Germany
GR Greece
HU Hungary
IS Iceland
IE Ireland
IT Italy
LV Latvia
LI Liechtenstein
LT Lithuania
LU Luxembourg
MT Malta
NL Netherlands
NO Norway
PL Poland
PT Portugal
RO Romania
SK Slovakia
SI Slovenia
ES Spain
SE Sweden
CH Switzerland
GB United Kingdom

Corporation Payment Account

Object

{
    "id":"6qL6H3wOlE0UWD67pT3EDHWs1BJAYtbf",
    "bank_code":"ABNANL2A",
    "comment":null,
    "credit_card_issuer_country": null,
    "expiry":"",
    "holder":"Arthur King",
    "identity_id":"S1lqAxN4SN",
    "is_enabled":true,
    "issue_number":null,
    "last_known_processor_id":null,
    "last_used_currency":"USD",
    "processor_id":null,
    "scheme":"iban",
    "source_type":"iban",
    "success_attempts":0,
    "total_attempts":0,
    "truncated_identifier":"SE1997700000166165941409"
}
Field Type Description
id string Payment Account ID
bank_code string Bank Identifier Code (BIC)
comment string Additional comment for a payment account. Default value is null
credit_card_issuer_country string TBD Issuing country code of a credit card. Has value only if source type is credit-card. Default value is null
expiry string TBD Expiration date of a credit card. Has value only if source type is credit-card. Default value is empty string
holder string Account holder name
identity_id string Identity ID. See Identity
is_enabled boolean This field shows is payment account enabled or not
issue_number number TBD Issue number of a credit card. Has value only if source type is credit-card. Default value is null
last_known_processor_id string TBD Last Payment Processor ID that has provided successful transaction
last_used_currency string Last currency that has been used for this payment account. Can be three-word uppercase currency code. Ex.: USD.
processor_id string Payment Processor ID that is used to handle the Payment Account operations. Default value is null
scheme string TBD Multinational company providing services of payment operations. Ex.: iban, mastercard
source_type string Payment Account type. Ex.: iban, credit-card
success_attempts number TBD Successful attempts to use Payment Account
total_attempts number TBD Number of attempts to use Payment Account
truncated_identifier string Masked account

Corporation Wallet

Object

{
    "id":"rJxruXr-hN",
    "amount":1000,
    "type":"real",
    "name":"EUR SEPA Account",
    "currency":"EUR",
    "payment_processor_adapter":"Arkea",
    "identity_id":"ryx5vQHfiG",
    "pending":{...},
    "created_by":{
        "id":"S1t4G6G8",
        "type":"staff",
        "full_name":"Clint Eastwood"
    },
    bank_address: {
        name: 'Intergiro International Stockholm AB (publ)',
        street: 'Regeringsgatan 59',
        postCode: '11156',
        city: 'Stockholm',
        country: 'Sweden',
    },
    "wallet_requisites":[{...}]

}
Field Type Description
amount number This field displays available funds
created_by object Partial object of a user who created a specific corporation wallet. See CreatedBy/UpdatedBy.
currency string Corporation wallet currency. Value should be EUR.
id string Corporation wallet ID
identity_id string Identity ID. See Identity
name string Corporation wallet name
payment_processor_adapter string Payment processor adapter that will process payments for the wallet. Value should be Arkea or Saxo (deprecated)
pending object This object means wallet which contain reserved funds
type string Can be real or pending. pending wallets automatically assigned to real wallets. There is no pending wallet for real wallet until there is at least one transaction from/to this wallet.
wallet_requisites array Array of partial objects of Corporation wallet requisites
bank_address object This field displays information about the bank for this wallet

Get corporation wallets by id [GET /corporations/:id/wallets/:walletId]

Example request GET /corporations/SyW5DXBzsz/wallets/ByDWIWRcXB


  'https://api.intergiro.com/v2/corporations/SyW5DXBzsz/wallets/ByDWIWRcXB' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'
  -d '{
        "adapter:"Arkea",
        "requisites_ids:["SyHOmSO34"]
    }'

Example response

{
    "id": "ByDWIWRcXB",
    "amount": 0,
    "type": "real",
    "name": "NOK Account",
    "currency": "NOK",
    "payment_processor_adapter": "Saxo",
    "identity_id": "rklXalAc7S",
    "created_by_login_id": "9W+B6995HH",
    "purpose": null,
    "requisites": [
        {
            "id": "BkZLbC9Qr",
            "number": "NL94RABO9565235778",
            "code": "CRDAADADXXX",
            "type": "cross-border",
            "identity_id": "rklXalAc7S"
        }
    ],
    "created_by": {
        "id": "S1t4G6G8",
        "type": "staff",
        "full_name": "Clint Eastwood"
    }
}

List all corporation wallets [GET /corporations/:id/wallets]

Example request GET /corporations/SyW5DXBzsz/wallets


curl -X GET \
  'https://api.intergiro.com/v2/corporations/SyW5DXBzsz/wallets' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

[
    {
        "id":"S1u5v7HGoG",
        "amount":0,
        "type":"real",
        "name":"GBP Account",
        "currency":"GBP",
        "payment_processor_adapter":"Saxo",
        "identity_id":"ryx5vQHfiG",
        "pending":{...},
        "created_by":{
            "id":"S1t4G6G8",
            "type":"staff",
            "full_name":"Clint Eastwood"
        },
        bank_address: {
            name: 'Saxo Bank A/S (Headquarters)',
            street: 'Philip Heymans Alle 15',
            postCode: '2900',
            city: 'Hellerup',
            country: 'Denmark',
        },
        "wallet_requisites":[{...}]
    },
    ...
]

Create corporation wallet [POST /corporations/:id/wallets]

Example request POST /corporations/SyW5DXBzsz/wallets


curl -X POST \
  'https://api.intergiro.com/v2/corporations/SyW5DXBzsz/wallets' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'
  -d '{
        "purpose": "CARD"
    }'

Example response

{
    "amount": 0,
    "purpose": "CARD",
    "id": "H1l58lBjwB",
    "name": "EUR SEPA Account",
    "currency": "EUR",
    "type": "real",
    "payment_processor_adapter": "Arkea",
    "created_by_login_id": "9W+B6995HH",
    "identity_id": "H1xmdXbH1H",
    "updated_at": "2019-09-27T07:54:57.786Z",
    "created_at": "2019-09-27T07:54:57.786Z"
}
Field Type Adapter Description
adapter string - Payment processor adapter that will process payments for the wallet. Value should be Arkea, Onpex, or Saxo (deprecated)
ukLocal.number string Saxo UK local number (deprecated)
ukLocal.code string Saxo Sort code (deprecated)
crossBorder.number string Saxo Cross border IBAN (deprecated)
crossBorder.code string Saxo Cross border BIC
sepa.number string Saxo\Arkea Sepa IBAN
sepa.code string Saxo Sepa BIC
manual_or_automatic string Arkea Control the method of creating requisites. One of manual or automatic (default).
purpose string Arkea Optional. Pass CARD to be able to issue cards
currencies array Onpex Supported currencies to create for Onpex wallets

Corporation Wallet Requisites

Object

{
    "id":"SyHOmSO34",
    "number":"MT84MALT011000012345MTLCAST001S",
    "code":"ABNANL2A",
    "type":"sepa",
    "identity_id":"rkx5tX9NsE",
    "updated_at":"2019-05-14T13:32:29.356Z",
    "created_at":"2019-05-14T13:32:29.356Z"
}
Field Type Description
id string Corporation Wallet Requisites ID
number string This field contains SEPA IBAN
code string This field contains BIC
type string Type of requisite. Value should be sepa
identity_id string Identity ID. See Identity
created_at string Corporation Wallet Requisites Creation timestamp.
updated_at string Corporation Wallet Requisites last Update timestamp.

List all wallet requisites [GET /corporations/:corporation_id/wallet-requisites]

Example request GET /corporations/SyW5DXBzsz/wallet-requisites


curl -X GET \
  'https://api.intergiro.com/v2/corporations/SyW5DXBzsz/wallet-requisites' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

[
    {
        "id":"SyHOmSO34",
        "number":"MT84MALT011000012345MTLCAST001S",
        "code":"ABNANL2A",
        "type":"sepa",
        "identity_id":"rkx5tX9NsE",
        "updated_at":"2019-05-14T13:32:29.356Z",
        "created_at":"2019-05-14T13:32:29.356Z"
    },
    ...
]

Create wallet requisites [POST /corporations/:corporation_id/wallet-requisites]

Example request POST /corporations/SyW5DXBzsz/wallet-requisites


curl -X POST \
  'https://api.intergiro.com/v2/corporations/SyW5DXBzsz/wallet-requisites' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'
  -d '{
      "adapter":"Arkea",
      "manual_or_automatic":"automatic"
    }'

Example response

[
    {
        "id":"SyHOmSO34",
        "number":"MT84MALT011000012345MTLCAST001S",
        "code":"ABNANL2A",
        "type":"sepa",
        "identity_id":"rkx5tX9NsE",
        "updated_at":"2019-05-14T13:32:29.356Z",
        "created_at":"2019-05-14T13:32:29.356Z"
    }
]
Field Type Description
adapter string Payment processor adapter that will process payments for the requisites. Value should be Arkea or Saxo (deprecated)
sepa object This field should be filled in case manual_or_automatic field has manual value
sepa.code string BIC
sepa.number string SEPA IBAN
manual_or_automatic string This field describes should IBAN be generated automatically or we specify it manually. Values can be automatic or manual

Attach wallet requisites [POST /corporations/:corporation_id/wallet-requisites/attach]

This method attaches new requisites to an existing wallet

Example request POST /corporations/SyW5DXBzsz/wallet-requisites


curl -X POST \
  'https://api.intergiro.com/v2/corporations/SyW5DXBzsz/wallet-requisites/attach' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'
  -d '{
      "adapter":"Arkea",
      "manual_or_automatic":"automatic",
      "wallet_id":"Ske4QTUOh4"
    }'

Example response

[
    {
        "id":"SyHOmSO34",
        "number":"MT84MALT011000012345MTLCAST001S",
        "code":"ABNANL2A",
        "type":"sepa",
        "identity_id":"rkx5tX9NsE",
        "updated_at":"2019-05-14T13:32:29.356Z",
        "created_at":"2019-05-14T13:32:29.356Z"
    }
]
Field Type Description
adapter string Payment processor adapter that will process payments for the requisites. Value should be Arkea
sepa object This field should be filled in case manual_or_automatic field has manual value
sepa.code string BIC
sepa.number string SEPA IBAN
manual_or_automatic string This field describes should IBAN be generated automatically or we specify it manually. Values can be automatic or manual
wallet_id string Wallet for which the requisites will be attached

Delete wallet requisites [DELETE /corporations/:corporation_id/wallet-requisites/:id]

Example request DELETE /corporations/SyW5DXBzsz/wallet-requisites/ryUwuvdhE


curl -X DELETE \
  'https://api.intergiro.com/v2/corporations/SyW5DXBzsz/wallet-requisites/ryUwuvdhE' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{
    "id":"SyHOmSO34"
}

Corporation KYC documents

Object

{
    "id": "SygdBwF+LN",
    "name": "test.png",
    "verifying_status": "noMark",
    "type": "corporate",
    "path": "http://fileserver.com",
    "created_by_login_id": "SyfPEU+PmN",
    "updated_by_login_id": "SyfPEU+PmN",
    "identity_id": "HJxhLJBtBV",
    "created_at": "2019-02-25T15:18:24.450Z",
    "updated_at": "2019-02-25T15:18:24.450Z",
    "created_by": {
        "id": "SyfPEU+PmN",
        "type": "staff",
        "full_name": "Clint Eastwood"
    },
    "updated_by": {
        "id": "SyfPEU+PmN",
        "type": "staff",
        "full_name": "Clint Eastwood"
    }
}
Field Type Description
id string KYC document ID.
name string KYC document name.
verifying_status string KYC Document verification status. Possible values: noMark, verified, notVerified.
type string KYC Document category. Available categories: corporate.
path string Document file path.
created_by_login_id string TBD. ID of the login, who has created KYC document.
updated_by_login_id string TBD. ID of the login, who has last updated KYC document.
identity_id string Identity ID. See Identity.
created_at string Corporation KYC document Creation timestamp.
updated_at string Corporation KYC document last Update timestamp.
created_by object Partial object of a user who created a specific corporation kyc document. See CreatedBy/UpdatedBy.
updated_by object Partial object of a user who last updated a specific corporation kyc document. See CreatedBy/UpdatedBy.

Add kyc-document [POST /corporations/:id/kyc-documents]

You can find corporation ID by retrieving current logged in person. You can find corporation ID in account object of current person.

Example request POST /corporations/Byb3IyrFr4/kyc-documents


curl -X POST \

  'https://api.intergiro.com/v2/corporations/Byb3IyrFr4/kyc-documents' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlN5ZlBFVStQbU4iLCJ0eXBlIjoic3RhZmYiLCJpYXQiOjE1NTExNjMzNzUsImV4cCI6MTU1MTE2Njk3NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.GsfUO7TEF9Pkh3l97jIrd1nhDJhji2CDpX7n0j-A9GU' \
  -F type=corporate \
  -F file=@/path/to/file

Example response

{
    "verifying_status": "noMark",
    "type": "corporate",
    "path": "path/to/file",
    "name": "test.png",
    "created_by_login_id": "SyfPEU+PmN",
    "updated_by_login_id": "SyfPEU+PmN",
    "identity_id": "HJxhLJBtBV",
    "created_at": "2019-02-25T15:18:24.450Z",
    "updated_at": "2019-02-25T15:18:24.450Z",
    "id": "SygdBwF+LN",
    "created_by": {
        "id": "SyfPEU+PmN",
        "type": "staff",
        "full_name": "Clint Eastwood"
    },
    "updated_by": {
        "id": "SyfPEU+PmN",
        "type": "staff",
        "full_name": "Clint Eastwood"
    }
}
Field Type Necessity Format / Validation rules
file blob required Supportable formats: JPEG, PNG, PDF, DOC, DOCX, XLS, XLSX.
type string required Available categories: corporate.

Get list of kyc-documents [GET /corporations/:id/kyc-documents]

You can find corporation ID by retrieving current logged in person. You can find corporation ID in account object of current person.

Example request GET /corporations/Byb3IyrFr4/kyc-documents


curl -X GET \
  'https://api.intergiro.com/v2/corporations/Byb3IyrFr4/kyc-documents' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

[
    {
        "verifying_status": "noMark",
        "type": "corporate",
        "path": "http://...",
        "name": "test.png",
        "created_by_login_id": "SyfPEU+PmN",
        "updated_by_login_id": "SyfPEU+PmN",
        "identity_id": "HJxhLJBtBV",
        "created_at": "2019-02-25T15:18:24.450Z",
        "updated_at": "2019-02-25T15:18:24.450Z",
        "id": "SygdBwF+LN",
        "created_by": {
            "id": "SyfPEU+PmN",
            "type": "staff",
            "full_name": "Clint Eastwood"
        },
        "updated_by": {
            "id": "SyfPEU+PmN",
            "type": "staff",
            "full_name": "Clint Eastwood"
        }
    },
    ...
]

Update kyc-document [PUT /corporations/:id/kyc-documents/:documentId]

Updates the specified KYC document by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

You can find corporation ID by retrieving current logged in person. You can find corporation ID in account object of current person.

Example request PUT /corporations/Byb3IyrFr4/kyc-documents/H1lFP85ZLE


curl -X PUT \
  'https://api.intergiro.com/v2/corporations/Byb3IyrFr4/kyc-documents/H1lFP85ZLE' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlN5ZlBFVStQbU4iLCJ0eXBlIjoic3RhZmYiLCJpYXQiOjE1NTExNjMzNzUsImV4cCI6MTU1MTE2Njk3NSwiYXVkIjoiYXVaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.GsfUO7TEF9Pkh3l97jIrd1nhDJhji2CDpX7n0j-A9GU' \
  -d '{
        "name": "new-name.png",
        "type": "corporate",
        "expiration_at": "2019-03-01",
        "verifying_status": "verified"
    }'

Example response

{
    "id": "H1lFP85ZLE",
    "name": "new-name.png",
    "type": "corporate",
    "verifying_status": "verified",
    "path": "15511634334361702588996.png",
    "expiration_at": "2019-03-01T00:00:00.000Z",
    "created_by_login_id": "SyfPEU+PmN",
    "updated_by_login_id": "SyfPEU+PmN",
    "identity_id": "Skgvy4jZUN",
    "created_at": "2019-02-26T06:43:53.516Z",
    "updated_at": "2019-02-26T06:44:00.559Z"
}
Field Type Necessity Format / Validation rules
name string optional Document name
type string optional KYC Document category. Available categories: corporate.
expiration_at date optional Expiry date.
verifying_status string optional KYC Document verification status. Possible values: verified, notVerified, noMark.

Remove kyc-document [DELETE /corporations/:id/kyc-documents/:documentId]

You can find corporation ID by retrieving current logged in person. You can find corporation ID in account object of current person.

Example request DELETE /corporations/Byb3IyrFr4/kyc-documents/H1lFP85ZLE


curl -X DELETE \
  'https://api.intergiro.com/v2/corporations/Byb3IyrFr4/kyc-documents/H1lFP85ZLE' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{
    "id": "H1lFP85ZLE"
}

Corporation Invoice

Object

{
    "id": "INV00008",
    "is_paid": true,
    "type": "opening-fee",
    "amount": 1000,
    "unpaid_amount": 0,
    "identity_id": "HkgFSX9+rN",
    "currency": "USD",
    "invoice_payment_transaction_id": "SyWUDqZHV",
    "repayments": [
        {
            "id": "B1QeMHc+HN",
            "amount": 1000,
            "type": "balance"
        }
    ],
    "created_at": "2019-02-13T13:10:32.181Z",
    "updated_at": "2019-02-13T13:10:32.613Z"
}
Field Type Description
id string Invoice ID.
is_paid boolean Flag that marks whether the invoice is paid.
type string Invoice type. Available types: opening-fee, monthly-service-fee.
amount number Invoice amount.
unpaid_amount number Unpaid invoice amount.
identity_id string Identity ID. See Identity.
currency string Invoice currency. Possible values: USD, EUR, GBP, SEK, DKK, NOK.
invoice_payment_transaction_id string ID of transaction. See Transaction.
repayments array List of repayments objects.
created_at string Corporation invoice creation timestamp.
updated_at string Corporation invoice last update timestamp.

Get list of invoices [GET /corporations/:id/invoices]

You can find corporation ID by retrieving current logged in person. You can find corporation ID in account object of current person.

Example request GET /corporations/Byb3IyrFr4/kyc-documents


curl -X GET \
  'https://api.intergiro.com/v2/corporations/BJ+trQ5ZSV/invoices' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

[
    {
        "is_paid": true,
        "repayments": [
            {
                "id": "B1QeMHc+HN",
                "amount": 1000,
                "type": "balance"
            }
        ],
        "amount": 1000,
        "unpaid_amount": 0,
        "identity_id": "HkgFSX9+rN",
        "currency": "USD",
        "type": "opening-fee",
        "created_at": "2019-02-13T13:10:32.181Z",
        "updated_at": "2019-02-13T13:10:32.613Z",
        "invoice_payment_transaction_id": "SyWUDqZHV",
        "id": "INV00008"
    },
    ...
]

Corporation Limits

Object

  {
    "identityId": "SJescxXjGN",
    "paymentMethod": "bank-transfer",
    "transactionType": "transfer-outgoing",
    "createdAt": "2019-03-06T12:30:20.073Z",
    "updatedAt": "2019-03-06T12:30:20.073Z",
    "id": "HkgNPa4aLE",
    "limitSet": {
      "dailySuccessfulVelocity": 4,
      "monthlySuccessfulVelocity": 1,
      "weeklySuccessfulVelocity": 3,
      "attemptVelocityPerHour": 5,
      "minimumAmount": 400,
      "maximumAmount": 500,
      "dailyLimitAmount": 300,
      "weeklyLimitAmount": 200,
      "monthlyLimitAmount": 800,
      "_id": "B14P6V6I4",
      "createdAt": "2019-03-06T12:30:20.072Z",
      "updatedAt": "2019-03-06T12:30:20.072Z"
    }
  }
Field Type Description
identity_id string Identity ID. See Identity.
payment_method string Person Payment Limit Method. Ex. bank-transfer
created_at date Created timestamp
updated_at date Last updated timestamp
daily_successful_velocity number Daily successful velocity rate
monthly_successful_velocity number Monthly successful velocity rate
weekly_successful_velocity number Weekly successful velocity rate
attempt_velocity_per_hour number Max payment attempt limit per hour
minimum_amount number Min payment amount
maximum_amount number Max payment amount
daily_limit_amount number Max daily transaction amount limit
weekly_limit_amount number Max weekly transaction amount limit
monthly_limit_amount number Max monthly transaction amount limit

List all corporation limits [GET /corporations/:id/limits]

You can find corporation ID by retrieving current logged in person. You can find corporation ID in account object of current person.

Example request GET /corporations/P3NOQn9Xss/limits


curl -X GET \
  'https://api.intergiro.com/v2/corporations/SybicgQizV/limits' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example responce

[
    {
    "identityId": "SJescxXjGN",
    "paymentMethod": "bank-transfer",
    "transactionType": "transfer-outgoing",
    "createdAt": "2019-03-06T12:30:20.073Z",
    "updatedAt": "2019-03-06T12:30:20.073Z",
    "id": "HkgNPa4aLE",
    "limitSet": {
      "dailySuccessfulVelocity": 4,
      "monthlySuccessfulVelocity": 1,
      "weeklySuccessfulVelocity": 3,
      "attemptVelocityPerHour": 5,
      "minimumAmount": 400,
      "maximumAmount": 500,
      "dailyLimitAmount": 300,
      "weeklyLimitAmount": 200,
      "monthlyLimitAmount": 800,
      "_id": "B14P6V6I4",
      "createdAt": "2019-03-06T12:30:20.072Z",
      "updatedAt": "2019-03-06T12:30:20.072Z"
    }
  },
    ...
]

Get corporation limit by id [GET /corporations/:id/limits/:limitId]

You can find corporation ID by retrieving current logged in person. You can find corporation ID in account object of current person.

Example request GET /corporations/P3NOQn9Xss/limits/HkgNPa4aLE


curl -X GET \
  'https://api.intergiro.com/v2/corporations/SybicgQizV/limits/HkgNPa4aLE' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example responce

 {
    "identityId": "SJescxXjGN",
    "paymentMethod": "bank-transfer",
    "transactionType": "transfer-outgoing",
    "createdAt": "2019-03-06T12:30:20.073Z",
    "updatedAt": "2019-03-06T12:30:20.073Z",
    "id": "HkgNPa4aLE",
    "limitSet": {
      "dailySuccessfulVelocity": 4,
      "monthlySuccessfulVelocity": 1,
      "weeklySuccessfulVelocity": 3,
      "attemptVelocityPerHour": 5,
      "minimumAmount": 400,
      "maximumAmount": 500,
      "dailyLimitAmount": 300,
      "weeklyLimitAmount": 200,
      "monthlyLimitAmount": 800,
      "_id": "B14P6V6I4",
      "createdAt": "2019-03-06T12:30:20.072Z",
      "updatedAt": "2019-03-06T12:30:20.072Z"
    }
  }

Update corporation limit [PUT /corporations/:id/limits/:id]

You can find corporation ID by retrieving current logged in person. You can find corporation ID in account object of current person.

Example request PUT /corporations/P3NOQn9Xss/limits/HkgNPa4aLE


curl -X PUT \
  'https://api.intergiro.com/v2/corporations/SybicgQizV/limits/HkgNPa4aLE' \
  -d '{
    "paymentMethod": "bank-transfer",
    "transactionType": "transfer-outgoing",
    "id": "HkgNPa4aLE",
    "limitSet": {
        "dailySuccessfulVelocity": 4,
        "monthlySuccessfulVelocity": 1,
        "weeklySuccessfulVelocity": 3,
        "attemptVelocityPerHour": 5,
        "minimumAmount": 4,
        "maximumAmount": 5,
        "dailyLimitAmount": 3,
        "weeklyLimitAmount": 2,
        "monthlyLimitAmount": 8
    },
    "corporationId": "SybicgQizV"
  }' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example responce

 {
  "paymentMethod": "bank-transfer",
  "transactionType": "transfer-outgoing",
  "id": "HkgNPa4aLE",
  "limitSet": {
    "dailySuccessfulVelocity": 4,
    "monthlySuccessfulVelocity": 1,
    "weeklySuccessfulVelocity": 3,
    "attemptVelocityPerHour": 5,
    "minimumAmount": 400,
    "maximumAmount": 500,
    "dailyLimitAmount": 300,
    "weeklyLimitAmount": 200,
    "monthlyLimitAmount": 800
  },
  "identityId": "SJescxXjGN",
  "createdAt": "2019-03-06T12:30:20.073Z",
  "updatedAt": "2019-03-11T10:59:58.497Z"
}

Remove corporation limit [DELETE /corporations/:id/limits/:limitId]

You can find corporation ID by retrieving current logged in person. You can find corporation ID in account object of current person.

Example request DELETE /corporations/P3NOQn9Xss/limits/HkgNPa4aLE:


curl -X DELETE \
  'https://api.intergiro.com/v2/corporations/SybicgQizV/limits/HkgNPa4aLE' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example responce

 {
    "identityId": "SJescxXjGN",
    "paymentMethod": "bank-transfer",
    "transactionType": "transfer-outgoing",
    "createdAt": "2019-03-06T12:30:20.073Z",
    "updatedAt": "2019-03-06T12:30:20.073Z",
    "id": "HkgNPa4aLE",
    "limitSet": {
      "dailySuccessfulVelocity": 4,
      "monthlySuccessfulVelocity": 1,
      "weeklySuccessfulVelocity": 3,
      "attemptVelocityPerHour": 5,
      "minimumAmount": 400,
      "maximumAmount": 500,
      "dailyLimitAmount": 300,
      "weeklyLimitAmount": 200,
      "monthlyLimitAmount": 800,
      "_id": "B14P6V6I4",
      "createdAt": "2019-03-06T12:30:20.072Z",
      "updatedAt": "2019-03-06T12:30:20.072Z"
    }
  }

Corporation API Key

Only staff has access to corporate api keys management.

Object

Corporation API key is a type of credentials (#credential). The only one difference is using private key instead of login and password. Private key should be used for signing in to get jwt access token.

{
    "id": "r1PudfzPB",
    "name": "primary",
    "private_key": "375f26f7-0e27-4d0f-b118-cee1f171868e",
    "is_active": true,
}
Field Type Description
id string API key ID.
name string API key name.
private_key string API key value used for signing in.
is_active boolean Flag that marks whether the key is active.

Get list of corporate api keys [GET /corporations/:corporation_id/api-keys]

You can find corporation ID by retrieving current logged in person. You can find corporation ID in account object of current person.

Example request GET /corporations/Byb3IyrFr4/api-keys


curl -X GET \
  https://api.intergiro.com/v2/corporations/SJZKQg15eB/api-keys/ \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IkJrTWRoSHlpNDQiLCJ0eXBlIjoic3RhZmYiLCJpYXQiOjE1Njg5NzgzMTAsImV4cCI6MTU2ODk4MDExMCwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLasdfasdfzdWJqZWN0In0.L_j5HKE_4hgyJCtmH8xbkmhsCwOaRq0QQNkRZZOY_Pc' \

Example response

{
    "api_keys": [
        {
            "id": "SJZKQg15eB",
            "name": "primary"
        }
    ]
}

Add new corporate api key [POST /corporations/:corporation_id/api-keys]

Example request POST /corporations/SJZKQg15eB/api-keys


curl -X POST \
  https://api.intergiro.com/v2/corporations/SJZKQg15eB/api-keys/ \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IkJrTWRoSHlpNDQiLCJ0eXBlIjoic3RhZmYiLCJpYXQiOjE1Njg4OTkyNjAsImV4cCI6MTU3MjQ5NTY2MCwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcasdfdsafiJzdWJqZWN0In0.4Whpo8vydMECsvXzCC63PbTRw3xZH7LbO2zv2dMNXMc' \
  -d '{"name": "new"}'

Example response

{
    "is_active": true,
    "id": "Sk7B8IfwS",
    "private_key": "b2f73dc8-31b6-4b80-bd9d-b86f42e7eec5",
    "name": "new"
}

Delete corporate api key [GET /corporations/:corporation_id/api-keys/:id]

Example request DELETE /corporations/Byb3IyrFr4/api-keys/Sk7B8IfwS


curl -X DELETE \
  https://api.intergiro.com/v2/corporations/SJZKQg15eB/api-keys/Sk7B8IfwS \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IkJrTWRoSHlpNDQiLCJ0eXBlIjoic3RhZmYiLCJpYXQiOjE1Njg4OTkyNjAsImV4cCI6MTU3MjQ5NTY2MCwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXsdfasdfsdfadWJqZWN0In0.4Whpo8vydMECsvXzCC63PbTRw3xZH7LbO2zv2dMNXMc' \

Example response

{
    "removed": true
}

Corporation settings

Object

{
    "id": "BkEqCx4VBE",
    "allowed_person_types": ["employee", "consumer"],
    "created_at": "2019-09-24T14:44:17.222Z",
    "updated_at": "2019-09-24T14:44:17.222Z"
}
Field Type Description
id string Corporation ID
allowed_person_types array Types of users that can be created in this corporation
created_at string Timestamp of the corporation settings creation datetime
updated_at object Timestamp of the corporation settings update datetime

Get corporation settings [GET /v2/corporations/:id/settings]

Example request GET /v2/corporations/BkEqCx4VBE/settings


curl -X GET \
  'https://api.intergiro.com/v2/corporations/BkEqCx4VBE/settings' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{
    "id": "BkEqCx4VBE",
    "allowed_person_types": ["employee", "consumer"],
    "created_at": "2019-09-24T14:44:17.222Z",
    "updated_at": "2019-09-24T14:44:22.646Z",
}

Update corporation settings [PUT /v2/corporations/:id/settings]

Parameters

Field Type Necessity Format / Validation rules
allowed_person_types array optional Set of Person types. "Employee" assigned automatically

Example request PUT /v2/corporations


curl -X PUT \
  'https://api.intergiro.com/v2/corporations/rJZseLQi94/settings' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjlXK0I2OTk1SEgiLCJ0eXBlIjoic3RhZmYiLCJpYXQiOjE1NjgwNDk3MTIsImV4cCI6MTU3MTY0NjExMiwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.MbGIFtvK4ej32AN4Hjp7asa-HpK8ficUgsNWLyDXaic' \
  -d '{
        "allowed_person_types": ["consumer"]
  }'

Example response

{
    "id": "BkEqCx4VBE",
    "allowed_person_types": ["employee", "consumer"],
    "created_at": "2019-09-24T14:44:17.222Z",
    "updated_at": "2019-09-24T14:44:22.646Z",
}

Beneficiary

Basically beneficiary is a special type of counterparty. It's a receiver of the payment and this payment was initiated off the platform. The main use case for beneficiaries is a suggestions on the interface. Beneficiaries are mutable because we don't need to track historical changes of beneficiaries which we have to do for counterparties.

Beneficiary object

{
    "id": "10ba038e-48da-487b-96e8-8d3b99b6d18a",
    "name": "Eugene Shilin",
    "friendlyName": "Eugene",
    "phone": "+375292922245",
    "address": {
        "country": "BY",
        "city": "Minsk",
        "region": "Minsk region",
        "street": "Kulman 11 kv 2",
        "postCode": "210027"
    },
    "account": {
        "number": "SE4550000000058398257466",
        "bankCode": "FTCSSSESS",
        "currnency": "USD",
        "country": "BY",
        "lastUsedAt": "2019-07-31T08:46:49.621Z",
        "type": "sepa",
    },
    "entityId": "11ba038e-48da-487b-96e8-8d3b99b6d18a",
    "createdAt": "2017-12-19T15:58:34.485Z",
    "updatedAt": "2017-12-19T15:58:34.485Z",
    "status": "ACTIVE",
}
Field Type Necessity Description Format / Validation rules
id string required Beneficiary ID UUID v4
name string required Beneficiary name
entityId string required Beneficiary's corporation identity ID
friendly_name string optional Beneficiary friendly name
phone string optional Beneficiary phone number E.164 number, Ex.: +551155256325
address.city string optional Beneficiary city
address.country string optional Beneficiary country 2-letter code ISO 3166-1 Alpha-2 code, Ex.: "SE", "BY"
address.post_code string optional Beneficiary postal code
address.region string optional Beneficiary state/region
address.street string optional Beneficiary street, home, apts etc. info
account.number string required Local Account No. or IBAN IBAN or Local number
account.bankCode string required Accounr Sort code or BIC BIC or Sort code
account.currency string optional Account currency ISO 4217
account.country string optional Account country 2-letter code ISO 3166-1 Alpha-2 code, Ex.: "SE", "BY"
account.last_used_at string optional Account last use datetime ISO 8601, YYYY-MM-DDThh:mm:ss.sTZD
account.type string optional Account type One of: 'cross-border', 'sepa', 'uk-local'
status string optional Beneficiary's status. One of: 'ACTIVE', 'DELETED', 'FORBIDDEN'
created_at string required Beneficiary creation datetime ISO 8601, YYYY-MM-DDThh:mm:ss.sTZD
updated_at string optional Beneficiary last update datetime ISO 8601, YYYY-MM-DDThh:mm:ss.sTZD

Get all beneficiaries associated with user [GET /beneficiaries]

Example request GET /beneficiaries


curl -X GET \
  "https://api.intergiro.com/v${API_VERSION}/beneficiaries" \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

    [{
        "id": "10ba038e-48da-487b-96e8-8d3b99b6d18a",
        "name": "Eugene Shilin",
        "phone": "+375292922245",
        "address": {
            "country": "BY",
            "city": "Minsk",
            "region": "Minsk region",
            "street": "Kulman 11 kv 2",
            "postCode": "210027"
        },
        "account": {
            "number": "SE4550000000058398257466",
            "bankCode": "FTCSSSESS",
        },
        "entityId": "11ba038e-48da-487b-96e8-8d3b99b6d18a",
        "createdAt": "2017-12-19T15:58:34.485Z",
        "status": "ACTIVE",
    }]

Composed Fee

Composed fee object [GET /fee-options/composed/:id]

Field Type Description
id string Composed fee ID
name string Composed fee name
type string Composed fee type. Possible values: GLOBAL, INDIVIDUAL.
fee_options object Properties are fee actions, values are corresponding percentage prices
intermediary_id string Intermediary which Composed fee belongs to
created_at string Composed fee creation date
updated_at string Composed fee update date
entity_type string Type of entity which belongs to this fee. Possible values: INTRODUCER.
entity_ids array Array of entities assigned to this fee.

Get Composed Fee by ID

Example request GET /fee-options/composed/rkz2l8Gln

curl -X GET \
  https://api.intergiro.com/v2/fee-options/composed/rkz2l8Gln \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0'

Example response 200

    {
        "id": "rkz2l8Gln",
        "name": "Europian partners",
        "type": "individual",
        "fee_options": {
            "currency-exchange": 3,
            "transfer-outgoing": 3,
            "transfer-incoming": 0,
            "opening_fee": 0,
            "monthly_service_fee": 3,
        },
        "intermediary_id": "all",
        "entity_type": "introducer",
        "entity_ids": ["dgEg34d3"],
        "created_at": "2017-07-04T09:00:38.000Z",
        "updated_at": "2017-07-04T09:00:38.000Z",
    }

Get all composed fees [GET /fee-options/composed{?intermediary_id, entity_type}]

Example request GET /fee-options/composed

curl -X GET \
  'https://api.intergiro.com/v2/fee-options/composed' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response 200

    [
        {
            "id": "Hk70VxYxkG",
            "name": "Europian partners",
            "type": "individual",
            "fee_options": {
                "currency-exchange": 3,
                "transfer-outgoing": 3,
                "opening_fee": 0,
                "transfer-incoming": 0,
                "monthly_service_fee": 3,
            },
            "intermediary_id": "all",
            "entity_type": "introducer",
            "entity_ids": ["dgEg34d3"],
            "created_at": "2017-07-04T09:00:38.000Z",
            "updated_at": "2017-07-04T09:00:38.000Z"
        }
    ]

Example response 401

    {
      "errors": [
        {
          "field": "jwt",
          "message": "No auth token"
        }
      ]
    }

Example response 404

    {
      "message": "Not Found",
      "error": {
        "status": 404
      }
    }

Create a new composed fee [POST /fee-options/composed]

Example request POST /fee-options/composed

curl -X POST \
  https://api.intergiro.com/v2/fee-options/composed \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \
    -d '{
       "type": "global",
       "intermediary_id": "Hk0egjObl",
       "entity_type": "introducer",
       "entity_ids": ["dgEg34d3"],
        "fee_options": {
            "currency-exchange": 3,
            "transfer-outgoing": 3,
            "opening_fee": 0,
            "transfer-incoming": 0,
            "monthly_service_fee": 3,
        },
    }'

Example response 200

    {
        "id": "Hk70VxYxkG",
        "type": "global",
        "fee_options": {
            "currency-exchange": 3,
            "transfer-outgoing": 3,
            "opening_fee": 0,
            "transfer-incoming": 0,
            "monthly_service_fee": 3,
        },
        "intermediary_id": "all",
        "entity_type": "introducer",
        "entity_ids": ["dgEg34d3"],
        "created_at": "2017-07-04T09:00:38.000Z",
        "updated_at": "2017-07-04T09:00:38.000Z"
    }

Update composed fee [PUT /fee-options/composed/:id]

Example request PUT /fee-options/composed/:id

curl -X PUT \
  https://api.intergiro.com/v2/fee-options/composed/rJdsYRwg4N \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0' \
    -d '{
        "fee_options": {
            "currency-exchange": 3,
            "transfer-outgoing": 3,
            "opening_fee": 0,
            "transfer-incoming": 0,
            "monthly_service_fee": 3,
        },
    }'

Example response 200

    {
        "id": "Hk70VxYxkG",
        "type": "global",
        "entity_type": "introducer",
        "entity_ids": ["dgEg34d3"],
        "fee_options": {
            "currency-exchange": 3,
            "transfer-outgoing": 3,
            "opening_fee": 0,
            "transfer-incoming": 0,
            "monthly_service_fee": 3,
        },
        "intermediary_id": "all",
        "created_at": "2017-07-04T09:00:38.000Z",
        "updated_at": "2017-07-04T09:00:38.000Z"
    }

Delete composed fee [DELETE /fee-options/composed/:id]

Remove Composed Fee with Id from the system (set deleted_at field to now()). Returns object with id field, if success.

Example Request

curl -X DELETE \
  https://api.intergiro.com/v2/fee-options/composed/rJdsYRwg4N \
    -H 'Content-Type: application/json' \
    -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg3NjMwODEsImV4cCI6MTU0ODc2NDg4MSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.3d47yjcV9_NW-ChdF5CCRh5B4i7IFSb8Co5EynJhQ-0'

Example Response 200

    {
        "id": "rkz2l8Gln"
    }

Fee amount

This endpoint provides information about the transaction fee.

Request [GET /fee-options/amount]

Field Type Description Necessity Format / Validation rules
currency string Transaction currency. optional Possible values: USD, EUR, GBP, SEK, DKK, NOK
method string Composed fee type. optional Possible values: bank-transfer
amount string Transaction amount in indivisible units. optional
action string Action type. optional Possible values: currency-exchange, transfer-outgoing
paymentRail string Transaction payment rail. Only for outgoing transfer. optional Possible values: SWIFT, SEPA, Local

Response [GET /fee-options/amount]

Field Type Description
margin_amount number Transaction fee amount in indivisible units.
reseller_price_amount number DEPRECATED
tariff_price_amount number DEPRECATED
total_fee_amount number DEPRECATED
transaction_price_amount number DEPRECATED

Example request GET /fee-options/amount


curl -X GET \
  'https://api.intergiro.com/v2/fee-options/amount?action=currency-exchange&currency=EUR&amount=1000' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{
    margin_amount: 300,
    reseller_price_amount: 0,
    tariff_price_amount: 300,
    total_fee_amount: 300,
    transaction_price_amount: 0,
}

Validators

Validate IBAN [GET validators/iban]

Example request validators/iban?iban=SE6697700000010000000983


curl -X GET \
  'https://api.intergiro.com/v2/validators/iban?iban=SE6697700000010000000983' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{ is_valid: true }

Validate BIC [GET validators/bic]

Example request validators/bic?bic=FTCSSESS


curl -X GET \
  'https://api.intergiro.com/v2/validators/bic?bic=FTCSSESS' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{ is_valid: true }

Validate Local Account Number [GET validators/local-account-number]

Example request validators/local-account-number?local_account_number=12312


curl -X GET \
  'https://api.intergiro.com/v2/validators/local-account-number?local_account_number=12312' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{ 
  is_valid: false,
  errors: ['Local Account Number length should be 8 digits']
}

Validate Sort Code [GET /validators/sort-code]

Example request validators/sort-code?sort_code=12312


curl -X GET \
  'https://api.intergiro.com/v2/validators/sort-code?sort_code=12312' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{ 
  is_valid: false,
  errors: ['Sort Code length should be 6 digits']
}

Cards

Object

{
  "status": "ACTIVE",
  "available_balance": 0,
  "expiry": {
    "year": "2020",
    "month": "08"
  },
  "display_name": "My Card",
  "funding_source_id": "NGQyZ3N5ZCI",
  "type": "VIRTUAL",
  "brand": "MASTERCARD",
  "region": "EUROPE",
  "currency": "EUR",
  "embossed_data": {
    "embossed_first_name": "EUGENE",
    "embossed_last_name": "SHILIN"
  },
  "cardholder": {
    "external_id": "I6ImJkNGQ",
    "id": "7dab8722-68d1-4d57-823a-4e73d48ecff4"
  },
  "pan": {
    "bin": "530925",
    "last_four": "1327"
  },
  "created_at": "2019-09-24T14:59:59.156Z",
  "modified_at": "2019-09-24T14:59:59.156Z",
  "id": "c62a08f1-e0e8-4352-b87c-4abb9d334331"
}
Field Type Description
id string Card Id
embossed_data object The data that embossed on the card
embossed_data.embossed_first_name string Shortened first name of cardholder embossed on the issued card
embossed_data.embossed_last_name string Shortened last name of cardholder embossed on the issued card
display_name string Card alias
funding_source_id string Account (wallet) which issued card will be assigned to Wallet
pan object Details about card number
pan.last_four string Last 4 numbers of the card
pan.bin string Bank identification numbers. Normally 6 first numbers of the card
brand string Brand of the card. Possible values: MASTERCARD, VISA
available_balance number The available balance on the card. Calculated according to limits set on the card
currency string Default card currency. Possible values: USD, EUR, GBP, SEK, DKK, NOK
expiry object Expiration card
status string Card status. Possible values: ACTIVE, INACTIVE, CANCELED, LOST, STOLEN, PENDING
type object Card type. Possible values: VIRTUAL, PHYSICAL
cardholder object Contains information about cardholder of the card
cardholder.external_id string Reference to person
cardholder.id string Cardholder identifier

List all cards [GET /cards]

Example request GET /cards


curl -X GET \
  'https://api.intergiro.com/cards' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

[
  {
    "status": "ACTIVE",
    "available_balance": 0,
    "display_name": "My Card",
    "funding_source_id": "S1Q8UPW84",
    "expiry": {
      "year": "2020",
      "month": "03"
    },
    "type": "VIRTUAL",
    "brand": "MASTERCARD",
    "region": "EUROPE",
    "address": {
      "country": "AT",
      "city": "city",
      "street": "add",
      "region": null,
      "post_code": "234234"
    },
    "currency": "EUR",
    "embossed_data": {
      "embossed_first_name": "Austin",
      "embossed_last_name": "Wilkins",
      "embossed_company_name": "Kevin House"
    },
    "cardholder": {
        "external_id": "HkZC4T6eDS",
        "id": "23fa5732-1417-4451-9dae-8a3e85006e8c"
    },
    "created_at": "2019-09-03T08:45:42.421Z",
    "modified_at": "2019-09-03T08:45:42.421Z",
    "id": "9e7dffbf-5d48-4846-b5ec-dfe845e89b27"
  }
]

Get card by id [GET /cards/:id]

Example request GET /cards/5230c1a9-aa49-46e3-ab4f-6fc40224da01


curl -X GET \
  'https://api.intergiro.com/cards/5230c1a9-aa49-46e3-ab4f-6fc40224da01' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{
  "status": "ACTIVE",
  "available_balance": 0,
  "expiry": {
    "year": "2020",
    "month": "08"
  },
  "display_name": "My Card",
  "funding_source_id": "NGQyZ3N5ZCI",
  "type": "VIRTUAL",
  "brand": "MASTERCARD",
  "region": "EUROPE",
  "currency": "EUR",
  "embossed_data": {
    "embossed_first_name": "EUGENE",
    "embossed_last_name": "SHILIN"
  },
  "cardholder": {
    "external_id": "I6ImJkNGQ",
    "id": "7dab8722-68d1-4d57-823a-4e73d48ecff4"
  },
  "pan": {
    "bin": "530925",
    "last_four": "1327"
  },
  "created_at": "2019-09-24T14:59:59.156Z",
  "modified_at": "2019-09-24T14:59:59.156Z",
  "id": "c62a08f1-e0e8-4352-b87c-4abb9d334331"
}

Get card credentials by card id [GET /cards/:id/credentials]

Example request GET /cards/5230c1a9-aa49-46e3-ab4f-6fc40224da01/credentials


curl -X GET \
  'https://api.intergiro.com/cards/5230c1a9-aa49-46e3-ab4f-6fc40224da01/credentials' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{
  "pan": "5309250589620002",
  "cvc2": "488"
}

Get card transactions [GET /cards/:id/transactions]

Example request GET /cards/5230c1a9-aa49-46e3-ab4f-6fc40224da01/transactions


curl -X GET \
  'https://api.intergiro.com/cards/5230c1a9-aa49-46e3-ab4f-6fc40224da01/transactions' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q'

Example response

{
  "list":[
    {
      "amount_dkk":7467,
      "amount_eur":1000,
      "amount_gbp":897,
      "amount_nok":9816,
      "amount_sek":10642,
      "amount_usd":1124,
      "charge_dkk":7467,
      "charge_eur":1000,
      "charge_exchange_rate":null,
      "charge_gbp":897,
      "charge_nok":9816,
      "charge_sek":10642,
      "charge_usd":1124,
      "created_at":"2019-06-18T13:16:33.000Z",
      "created_by":{
        "id":"HJ6rSYWpCN",
        "type":"person",
        "full_name":"Coby Potts"
      },
      "deleted_at":null,
      "exchange_rate":null,
      "fingerprint":{...},
      "id":"SJ+F44DLyB",
      "identity":{...},
      "meta":{...},
      "review":null,
      "score_range_id":"excellent",
      "score":1201,
      "source_amount":1000,
      "source_counterparty_id":"1b4bae7f-6ea8-46ad-ada5-13621def9dd6",
      "source_currency":"EUR",
      "source_last_known_good_processor_reason_of_missing":null,
      "source_payment_processor":{...},
      "source":{...},
      "status":{...},
      "target_amount":1000,
      "target_counterparty_id":"02bad5d3-d713-4942-bd29-ebfef182b5b8",
      "target_currency":"EUR",
      "target_last_known_good_processor_reason_of_missing":null,
      "target_payment_processor":{...},
      "target":{...},
      "type":"transfer-outgoing",
      "updated_at":"2019-06-18T13:16:33.000Z"
    },
    ...
  ],
  "meta":{
    "number_of_records":87,
    "limit":20,
    "has_more":true,
    "sort_by":"created_at",
    "sort_type":"DESC"
  }
}

Create card [POST /cards/issue]

This request accepts arguments described below.

Field Type Necessity Format / Validation rules Description
card.expiry object required Data about expiry card
card.expiry.month string required Numbers from 1 to 12 Month of expiration
card.expiry.year string required Years after 2018 Year of expiration
card.display_name string optional Displayed name of the card. Alias
card.funding_source_id string required Account (wallet) which issued card will be assigned to Wallet
card.type string required enum Only VIRTUAL value is available at the moment
card.brand string required enum Only MASTERCARD value is available at the moment
card.region string required enum Only EUROPE value is available at the moment
card.currency string required enum Only EUR value is available at the moment
company.external_id string required Corporate account identifier
company.name string required Max length: 255 Corporate account name
company.email string required Corporate account email
company.phone string optional Corporate account phone
company.address object required Corporate account address
company.address.street string required Corporate account street
company.address.country string required Corporate account country
company.address.post_code string required Corporate account postal code
company.address.city string required Corporate account city
cardholder.external_id string required Relation to previously created person inside corporate account.
cardholder.first_name string required Max length: 255 Cardholder's first name
cardholder.last_name string required Max length: 255 Cardholder's last name
cardholder.type string required Enum Cardholder's type. PRIMARY or AUTHORISED values are available
cardholder.phone string required Cardholder's phone. Will be used for 3d secure
cardholder.email string required Cardholder's email
cardholder.address object optional Cardholder's address. Will be required for plastic cards
template_id string optional Template is used for populating default card properties. Only `BCV_PREDEFINED_TEMPLATE available

Example request POST /cards/issue


curl -X POST \
  'https://api.intergiro.com/cards/issue' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q' \
  -d '{
    "cardholder": {
        "external_id": "cCI6IkpX",
        "first_name": "Eugene",
        "last_name": "Shilin",
        "phone": "+375292922245",
        "email": "e.shilin@paralect.com",
                "type": "AUTHORISED"
    },
    "company": {
        "external_id": "aRd0YVYuSwOhj",
        "name": "Intergiro",
        "email": "hello@intergiro.com",
        "phone": "+375292922245",
        "address": {
            "street": "Kulman 11",
            "country": "BY",
            "post_code": "212314",
            "city": "Minsk"
        }
    },
    "card": {
        "expiry": {
            "year": "2020",
            "month": "08"
        },
        "display_name": "Piggy bank",
        "funding_source_id": "yZ3N5ZCIsInR",
                "type": "VIRTUAL",
                "brand": "MASTERCARD",
                "region": "EUROPE",
                "currency": "EUR"
    },
    "template_id": "BCV_PREDEFINED_TEMPLATE"
}'

Example response

{
    "id": "5230c1a9-aa49-46e3-ab4f-6fc40224da01",
}

Simulate card transaction [POST /card/simulation]

This request accepts arguments described below.

Field Type Necessity Format / Validation rules Description
card_id string required UUID Card identifier of previously issued card
amount number required Amount of simulated card
currency string required Currency of transaction. For now only EUR available

curl -X POST \
  'https://api.intergiro.com/card/simulation' \
  -H 'Content-Type: application/json' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNGQyZ3N5ZCIsInR5cGUiOiJwZXJzb24iLCJpYXQiOjE1NDg5NTE5OTUsImV4cCI6MTU0ODk1Mzc5NSwiYXVkIjoiYXVkaWVuY2UiLCJpc3MiOiJtb2hpdG8uZGFpcXVpcmkiLCJzdWIiOiJzdWJqZWN0In0.Rp8zaRd0YVYuSwOhjypc54Qpqt_qMYf9Lo4PpToSY5Q' \
  -d '{
    "cardId": "6e10d376-5ca5-46aa-bc65-856624f80f78",
    "amount": 5000,
    "currency": "EUR"
}'

Example response

{
  "authorised": false,
  "code": "14"
}

List of authorisation codes available

Code Description
00 APPROVED
01 REFER_TO_CARD_ISSUER
02 REFER_TO_CARD_ISSUER_SPECIAL
03 INVALID_MERCHANT
04 PICK_UP_CARD
05 DO_NOT_HONOUR
06 ERROR
07 PICK_UP_CARD_SPECIAL
09 REQUEST_IN_PROGRESS
12 INVALID_TRANSACTION
13 INVALID_AMOUNT
14 INVALID_CARD_NUMBER
19 REENTER_TRANSACTION
21 NO_ACTION_TAKEN
30 FORMAT_ERROR
41 LOSR_CARD_PICK_UP
43 STOLEN_CARD_PICK_UP
51 NOT_SUFFICENT_FUNDS
52 NO_CHECKING_ACCOUNT
53 NO_SAVING_ACCOUNTS
54 EXPIRED_CARD
55 PIN_INCORRECT
57 TRANSACTION_NOT_ALLOWED_FOR_CARDHOLDER
58 TRANSACTION_NOT_ALLOWED_FOR_MERCHANT
61 EXCEEDS_WITHDRAWAL_AMOUNT_LIMIT
62 RESTRICTED_CARD
63 SECURITY_VIOLATION
65 ACTIVITY_COUNT_LIMIT_EXCEEDED
75 PIN_RETRIES_EXCEEDED
77 INCONSISTENT_WITH_ORIGINAL
78 NO_ACCOUNT
84 PREAUTHORISATION_TIME_TOO_GREAT
86 CANNOT_VERIFY_PIN
91 ISSUER_UNAVAILABLE
92 INVALID_RECEVING_INSTITUTION_ID
93 TRANSACTION_VIOLATES_LAW
94 DUPLICATE_TRANSACTION
96 SYSTEM_MANLFUNCTION

CHANGELOG

v0.0.0 {01-05-2019}

v1.0.0 {01-06-2019}

v1.1.0 {20-06-2019}

v2.0.0 {08-08-2019}

v3.0.0 {02-09-2019}

    2FA challenge response:
    {
        "challenge": {
            "two_fa": {
                "truncated_phone_number": "*********69",
                "code_issued_timestamp": 1565257904,
                "code_expiration_sec": 300,
                "challenge_id": "151838"
            }
        }
    }
    Request with challenge:
    {
        ...endpointFields,
        "challenge": {
          "two_fa": {
              "challenge_id": "151838",
              "two_fa_code": "123456"
          }
        }
    }
    2FA error example:
    {
        "errors": [
            {
                "field": "code",
                "message": "Invalid verification code. Please, try again or check your phone No.",
                "code": 10001
            }
        ]
    }

v3.1.0 {09-09-2019}

v3.2.0 {13-09-2019}