Skip to content

rail API Specification (1.1.2)

Welcome to the rail Developer Guide!

Download OpenAPI description
Languages
Servers
Mock server

https://docs.rail.io/_mock/api-docs/openapi/rail-spec/

Sandbox - Stable API Instance

https://sandbox.layer2financial.com/api/

Production - Stable API Instance

https://platform.layer2financial.com/api/

Applications

Applications represent the onboarding journey for your customers. They are used to collect KYC information and documents required to open accounts on the platform. Visit our guides for a detailed understanding on how to use these APIs.

Operations

Request

Retrieves a list of applications given the filter parameters provided

Security
OAuth2Flow
Query
pageinteger(int32)

Page of records to get (default 0 = first page)

page_sizeinteger(int32)

Records to return per page (default = 20)

order_bystring

Field to order result set by (e.g. customer_id)

orderstring

Direction of ordering (ASC or DESC)

statusstring

Application status

application_typestring

Application Type

terms_and_conditions_acceptedboolean

Have Terms and Conditions being Accepted

information_attestedboolean

Information Attested

customer_idstring

Customer ID

customer_namestring

Customer Name

email_addressstring

Customer Email Address

Headers
Authorizationstring

OAuth bearer token (see authentication flows)

x-l2f-request-idstring

Optional Unique ID per request, useful for fault resolution/diagnosis and audit.

curl -i -X GET \
  'https://docs.rail.io/_mock/api-docs/openapi/rail-spec/v1/applications?page=0&page_size=0&order_by=string&order=string&status=string&application_type=string&terms_and_conditions_accepted=true&information_attested=true&customer_id=string&customer_name=string&email_address=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-l2f-request-id: string'

Responses

Success

Bodyapplication/json
dataobject(ApplicationList)required
data.​applicationsArray of objects(Application)required

Application List

data.​applications[].​idstringread-onlyrequired

Unique Identifier for the application

data.​applications[].​statusstringread-onlyrequired

Status of the application

Enum"INCOMPLETE""READY_FOR_SUBMISSION""SUBMITTED""PROCESSING""CHANGES_REQUESTED""REJECTED""APPROVED"
data.​applications[].​application_typestringrequired

Type of Application (Individual or CorporationApplication)

Enum"INDIVIDUAL""CORPORATION"
Discriminator
data.​applications[].​account_to_openobject(AccountOpen)required

Details of the account to open for the customer

data.​applications[].​account_to_open.​account_idstringrequired

The identifier you wish to use to uniquely identify this account. The account id follows the External Identifier pattern.

data.​applications[].​account_to_open.​product_idstringrequired

Select the type of account being opened. You can customise and/or create new product offerings by visiting the Management Interface

Pre configured products that are available for use are

  • DEPOSIT_BASIC
data.​applications[].​account_to_open.​asset_type_idstringrequired

Select the asset type of the account being opened. Asset type selection is not open ended, it must be configured per product via the Management Interface.

Asset type IDs follow a simple structure as follows: {$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE} Simple asset type to test with include

  • ETHEREUM_SEPOLIA_ETH
  • ETHEREUM_SEPOLIA_USDC
  • SOLANA_DEVNET_SOL
  • BITCOIN_TESTNET_BTC
  • FIAT_TESTNET_USD
  • FIAT_TESTNET_USD
  • FIAT_MAINNET_USD
  • FIAT_TESTNET_EUR
data.​applications[].​terms_and_conditions_acceptedbooleanrequired

Set to true when the end customer accepts all terms and conditions for use of the platform. An application cannot be submitted until accepted.

data.​applications[].​information_attestedbooleanrequired

Setting to true means that the Customer (or the Ultimate Beneficial Owner, CEO, or Control Person for Corporate Customers) attests that all of the information provided on the application is true, accurate, and up to date at the time of submission. Rail Subscribers as defined in the Rail Platform Agreement, may not attest on behalf of the Customer.

Default false
data.​applications[].​customer_idstringrequired

The identifier you wish to use to uniquely identify this customer (applies to both individual and corporate customers). The customer ID follows the External Identifier pattern.

data.​applications[].​customer_detailsobject(IndividualApplication)required

Details of the applying individual

data.​applications[].​customer_details.​first_namestringrequired

First name

data.​applications[].​customer_details.​middle_namestring

Middle Name(s) (if present)

data.​applications[].​customer_details.​last_namestringrequired

Last name

data.​applications[].​customer_details.​email_addressstring

Email Address

data.​applications[].​customer_details.​mailing_addressobject(mailing_address)

Mailing Address

data.​applications[].​customer_details.​telephone_numberstring

Telephone Number in E.164 format

data.​applications[].​customer_details.​tax_reference_numberstring

Tax reference number of the country (SSN, ITIN, SIN, National Insurance Number etc)

data.​applications[].​customer_details.​passport_numberstring

Passport Number

data.​applications[].​customer_details.​nationalitystring

Nationality (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

data.​applications[].​customer_details.​citizenshipArray of strings

Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

data.​applications[].​customer_details.​date_of_birthstring(date)

RFC3339 (YYYY-MM-DD) Date of Birth

data.​applications[].​customer_details.​ip_addressstring

IP address from which customer initiated the application request

data.​applications[].​customer_details.​tax_reference_number_countrystring

Registered tax reference number (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

data.​applications[].​customer_details.​us_residency_statusstring

US Residency Status

Enum"US_CITIZEN""RESIDENT_ALIEN""NON_RESIDENT_ALIEN"
data.​applications[].​customer_details.​employment_statusstring

Employment Status

Enum"EMPLOYEE""SELF_EMPLOYED""RETIRED""UNEMPLOYED""OTHER"
data.​applications[].​customer_details.​employment_descriptionstring

Employment (job) description.

data.​applications[].​customer_details.​employer_namestring

Employer name

data.​applications[].​customer_details.​occupationstring

Occupation

data.​applications[].​customer_details.​investment_profileobject(ProfileIndividualInvesting)

Investment Profile of the Individual

data.​applications[].​customer_details.​kyc_profileobject(ProfileIndividualKYC)

KYC Profile of the Individual

linksobject(Page)required

See the pagination section for additional details on the generic pagination approach.

links.​selfstringrequired

endpoint to the current page of results

links.​firststringrequired

endpoint to the first page of results

links.​prevstringrequired

endpoint to the previous page of results

links.​nextstringrequired

endpoint to the next page of results

links.​laststringrequired

endpoint to the last page of results

Response
application/json
{ "data": { "applications": [] }, "links": { "self": "string", "first": "string", "prev": "string", "next": "string", "last": "string" } }

Request

Start a new application to onboard a person or corporation. Once the application is created, proceed to add individuals and update as needed, and then submit once the status allows for it.

Security
OAuth2Flow
Headers
Authorizationstring

OAuth bearer token (see authentication flows)

x-l2f-request-idstring

Optional Unique ID per request, useful for fault resolution/diagnosis and audit.

x-l2f-idempotency-idstring

Unique ID used to safely retry an operation. See idempotency section for more details.

Bodyapplication/jsonrequired
application_typestringrequired

Type of Application (Individual or CorporationApplication)

Enum"INDIVIDUAL""CORPORATION"
Discriminator
account_to_openobject(AccountOpen)required

Details of the account to open for the customer

account_to_open.​account_idstringrequired

The identifier you wish to use to uniquely identify this account. The account id follows the External Identifier pattern.

account_to_open.​product_idstringrequired

Select the type of account being opened. You can customise and/or create new product offerings by visiting the Management Interface

Pre configured products that are available for use are

  • DEPOSIT_BASIC
account_to_open.​asset_type_idstringrequired

Select the asset type of the account being opened. Asset type selection is not open ended, it must be configured per product via the Management Interface.

Asset type IDs follow a simple structure as follows: {$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE} Simple asset type to test with include

  • ETHEREUM_SEPOLIA_ETH
  • ETHEREUM_SEPOLIA_USDC
  • SOLANA_DEVNET_SOL
  • BITCOIN_TESTNET_BTC
  • FIAT_TESTNET_USD
  • FIAT_TESTNET_USD
  • FIAT_MAINNET_USD
  • FIAT_TESTNET_EUR
terms_and_conditions_acceptedbooleanrequired

Set to true when the end customer accepts all terms and conditions for use of the platform. An application cannot be submitted until accepted.

information_attestedbooleanrequired

Setting to true means that the Customer (or the Ultimate Beneficial Owner, CEO, or Control Person for Corporate Customers) attests that all of the information provided on the application is true, accurate, and up to date at the time of submission. Rail Subscribers as defined in the Rail Platform Agreement, may not attest on behalf of the Customer.

Default false
customer_idstringrequired

The identifier you wish to use to uniquely identify this customer (applies to both individual and corporate customers). The customer ID follows the External Identifier pattern.

customer_detailsobject(IndividualApplication)required

Details of the applying individual

customer_details.​first_namestringrequired

First name

customer_details.​middle_namestring

Middle Name(s) (if present)

customer_details.​last_namestringrequired

Last name

customer_details.​email_addressstring

Email Address

customer_details.​mailing_addressobject(mailing_address)

Mailing Address

customer_details.​telephone_numberstring

Telephone Number in E.164 format

customer_details.​tax_reference_numberstring

Tax reference number of the country (SSN, ITIN, SIN, National Insurance Number etc)

customer_details.​passport_numberstring

Passport Number

customer_details.​nationalitystring

Nationality (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

customer_details.​citizenshipArray of strings

Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

customer_details.​date_of_birthstring(date)

RFC3339 (YYYY-MM-DD) Date of Birth

customer_details.​ip_addressstring

IP address from which customer initiated the application request

customer_details.​tax_reference_number_countrystring

Registered tax reference number (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

customer_details.​us_residency_statusstring

US Residency Status

Enum"US_CITIZEN""RESIDENT_ALIEN""NON_RESIDENT_ALIEN"
customer_details.​employment_statusstring

Employment Status

Enum"EMPLOYEE""SELF_EMPLOYED""RETIRED""UNEMPLOYED""OTHER"
customer_details.​employment_descriptionstring

Employment (job) description.

customer_details.​employer_namestring

Employer name

customer_details.​occupationstring

Occupation

customer_details.​investment_profileobject(ProfileIndividualInvesting)

Investment Profile of the Individual

customer_details.​kyc_profileobject(ProfileIndividualKYC)

KYC Profile of the Individual

curl -i -X POST \
  https://docs.rail.io/_mock/api-docs/openapi/rail-spec/v1/applications \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'x-l2f-idempotency-id: string' \
  -H 'x-l2f-request-id: string' \
  -d '{
    "application_type": "INDIVIDUAL",
    "account_to_open": {
      "account_id": "string",
      "product_id": "string",
      "asset_type_id": "string"
    },
    "terms_and_conditions_accepted": true,
    "information_attested": false,
    "customer_id": "string",
    "customer_details": {
      "first_name": "string",
      "middle_name": "string",
      "last_name": "string",
      "email_address": "string",
      "mailing_address": {
        "unit_number": "string",
        "address_line1": "string",
        "address_line2": "string",
        "address_line3": "string",
        "city": "string",
        "state": "string",
        "postal_code": "string",
        "country_code": "string"
      },
      "telephone_number": "string",
      "tax_reference_number": "string",
      "passport_number": "string",
      "nationality": "string",
      "citizenship": [
        "string"
      ],
      "date_of_birth": "2019-08-24",
      "ip_address": "string",
      "tax_reference_number_country": "string",
      "us_residency_status": "US_CITIZEN",
      "employment_status": "EMPLOYEE",
      "employment_description": "string",
      "employer_name": "string",
      "occupation": "string",
      "investment_profile": {
        "primary_source_of_funds": "EMPLOYMENT",
        "primary_source_of_funds_description": "string",
        "total_assets": "UPTO_10K",
        "usd_value_of_fiat": "UPTO_10K",
        "monthly_deposits": "UPTO_5",
        "monthly_withdrawals": "UPTO_5",
        "monthly_investment_deposit": "UPTO_1K",
        "monthly_investment_withdrawal": "UPTO_1K",
        "usd_value_of_crypto": "UPTO_10K",
        "monthly_crypto_deposits": "UPTO_5",
        "monthly_crypto_withdrawals": "UPTO_5",
        "monthly_crypto_investment_deposit": "UPTO_1K",
        "monthly_crypto_investment_withdrawal": "UPTO_1K"
      },
      "kyc_profile": {
        "funds_send_receive_jurisdictions": [
          "string"
        ],
        "business_jurisdictions": [
          "string"
        ],
        "engage_in_activities": [
          "NONE"
        ],
        "vendors_and_counterparties": [
          "SELF"
        ]
      }
    }
  }'

Responses

Success

Bodyapplication/json
dataobject(ApplicationBase)required
data.​idstringread-onlyrequired

Unique Identifier for the application

Response
application/json
{ "data": { "id": "string" } }

Request

Submit the application for processing, can only be performed once the application status is "READY_FOR_SUBMISSION".

Security
OAuth2Flow
Path
idstringrequired

Application ID

Headers
Authorizationstring

OAuth bearer token (see authentication flows)

x-l2f-request-idstring

Optional Unique ID per request, useful for fault resolution/diagnosis and audit.

x-l2f-idempotency-idstring

Unique ID used to safely retry an operation. See idempotency section for more details.

curl -i -X POST \
  'https://docs.rail.io/_mock/api-docs/openapi/rail-spec/v1/applications/{application_id}/submit' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-l2f-idempotency-id: string' \
  -H 'x-l2f-request-id: string'

Responses

Success

Bodyapplication/json
dataobject(ApplicationBase)required
data.​idstringread-onlyrequired

Unique Identifier for the application

Response
application/json
{ "data": { "id": "string" } }

Request

Adds an individual to the corporate application. Not applicable for individual applications

Security
OAuth2Flow
Path
idstringrequired

Application ID

Headers
Authorizationstring

OAuth bearer token (see authentication flows)

x-l2f-request-idstring

Optional Unique ID per request, useful for fault resolution/diagnosis and audit.

x-l2f-idempotency-idstring

Unique ID used to safely retry an operation. See idempotency section for more details.

Bodyapplication/jsonrequired
individual_typeArray of stringsrequired

Type of individual in the corporation

Items Enum"OFFICER""BENEFICIAL_OWNER""CONTROL_PERSON""AUTHORIZED_PERSON"
first_namestringrequired

First name

middle_namestring

Middle Name(s) (if present)

last_namestringrequired

Last name

email_addressstring

Email Address

mailing_addressobject(mailing_address)

Mailing Address

telephone_numberstring

Telephone Number in E.164 format

tax_reference_numberstring

Tax reference number of the country (SSN, ITIN, SIN, National Insurance Number etc)

tax_reference_number_countrystring

Registered tax reference number country (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

passport_numberstring

Passport Number

nationalitystring

Nationality (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

citizenshipArray of strings

Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

date_of_birthstring(date)

RFC3339 (YYYY-MM-DD) Date of Birth

percentage_ownershipinteger(int32)

(Only where type is BENEFICIAL_OWNER) Percentage ownership of the corporation (0 to 100)

titlestring

Example values CEO, COO, CFO, President, BenefitsAdministrationOfficer, CIO, VP, AVP, Treasurer, Secretary, Controller, Manager, Partner or Member.

us_residency_statusstring

US Residency Status

Enum"US_CITIZEN""RESIDENT_ALIEN""NON_RESIDENT_ALIEN"
curl -i -X POST \
  'https://docs.rail.io/_mock/api-docs/openapi/rail-spec/v1/applications/{application_id}/individual' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'x-l2f-idempotency-id: string' \
  -H 'x-l2f-request-id: string' \
  -d '{
    "individual_type": [
      "OFFICER"
    ],
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "email_address": "string",
    "mailing_address": {
      "unit_number": "string",
      "address_line1": "string",
      "address_line2": "string",
      "address_line3": "string",
      "city": "string",
      "state": "string",
      "postal_code": "string",
      "country_code": "string"
    },
    "telephone_number": "string",
    "tax_reference_number": "string",
    "tax_reference_number_country": "string",
    "passport_number": "string",
    "nationality": "string",
    "citizenship": [
      "string"
    ],
    "date_of_birth": "2019-08-24",
    "percentage_ownership": 0,
    "title": "string",
    "us_residency_status": "US_CITIZEN"
  }'

Responses

Success

Bodyapplication/json
dataobject(IndividualBase)required
data.​idstringread-onlyrequired

Unique ID of the Individual

Response
application/json
{ "data": { "id": "string" } }

Request

Generate an access code for use with the rail Customer Onboarding SDK.

Security
OAuth2Flow
Path
idstringrequired
Headers
Authorizationstring

OAuth bearer token (see authentication flows)

x-l2f-request-idstring

Optional Unique ID per request, useful for fault resolution/diagnosis and audit.

x-l2f-idempotency-idstring

Unique ID used to safely retry an operation. See idempotency section for more details.

curl -i -X POST \
  'https://docs.rail.io/_mock/api-docs/openapi/rail-spec/v1/applications/{application_id}/accesscode' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-l2f-idempotency-id: string' \
  -H 'x-l2f-request-id: string'

Responses

Success

Bodyapplication/json
dataobject(ApplicationAccessCode)required
data.​idstringread-onlyrequired

Unique Identifier for the application

data.​access_codestringread-onlyrequired

Access code for use with the rail Customer Onboarding SDK

data.​expirystring(date-time)read-onlyrequired

Date time the access code will expire. At this point a new access code must be generated. Visit the Management Interface to configure expiry settings.

Response
application/json
{ "data": { "id": "string", "access_code": "string", "expiry": "2019-08-24T14:15:22Z" } }

Request

Retrieve full details of the application

Security
OAuth2Flow
Path
idstringrequired

Application ID

Headers
Authorizationstring

OAuth bearer token (see authentication flows)

x-l2f-request-idstring

Optional Unique ID per request, useful for fault resolution/diagnosis and audit.

curl -i -X GET \
  'https://docs.rail.io/_mock/api-docs/openapi/rail-spec/v1/applications/{application_id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-l2f-request-id: string'

Responses

Success

Bodyapplication/json
One of:
dataobject(ApplicationIndividual)required
data.​idstringread-onlyrequired

Unique Identifier for the application

data.​statusstringread-onlyrequired

Status of the application

Enum"INCOMPLETE""READY_FOR_SUBMISSION""SUBMITTED""PROCESSING""CHANGES_REQUESTED""REJECTED""APPROVED"
data.​application_typestringrequired

Type of Application (Individual or CorporationApplication)

Enum"INDIVIDUAL""CORPORATION"
data.​account_to_openobject(AccountOpen)required

Details of the account to open for the customer

data.​account_to_open.​account_idstringrequired

The identifier you wish to use to uniquely identify this account. The account id follows the External Identifier pattern.

data.​account_to_open.​product_idstringrequired

Select the type of account being opened. You can customise and/or create new product offerings by visiting the Management Interface

Pre configured products that are available for use are

  • DEPOSIT_BASIC
data.​account_to_open.​asset_type_idstringrequired

Select the asset type of the account being opened. Asset type selection is not open ended, it must be configured per product via the Management Interface.

Asset type IDs follow a simple structure as follows: {$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE} Simple asset type to test with include

  • ETHEREUM_SEPOLIA_ETH
  • ETHEREUM_SEPOLIA_USDC
  • SOLANA_DEVNET_SOL
  • BITCOIN_TESTNET_BTC
  • FIAT_TESTNET_USD
  • FIAT_TESTNET_USD
  • FIAT_MAINNET_USD
  • FIAT_TESTNET_EUR
data.​terms_and_conditions_acceptedbooleanrequired

Set to true when the end customer accepts all terms and conditions for use of the platform. An application cannot be submitted until accepted.

data.​information_attestedbooleanrequired

Setting to true means that the Customer (or the Ultimate Beneficial Owner, CEO, or Control Person for Corporate Customers) attests that all of the information provided on the application is true, accurate, and up to date at the time of submission. Rail Subscribers as defined in the Rail Platform Agreement, may not attest on behalf of the Customer.

Default false
data.​customer_idstringrequired

The identifier you wish to use to uniquely identify this customer (applies to both individual and corporate customers). The customer ID follows the External Identifier pattern.

data.​customer_detailsobject(IndividualApplication)required

Details of the applying individual

data.​customer_details.​first_namestringrequired

First name

data.​customer_details.​middle_namestring

Middle Name(s) (if present)

data.​customer_details.​last_namestringrequired

Last name

data.​customer_details.​email_addressstring

Email Address

data.​customer_details.​mailing_addressobject(mailing_address)

Mailing Address

data.​customer_details.​telephone_numberstring

Telephone Number in E.164 format

data.​customer_details.​tax_reference_numberstring

Tax reference number of the country (SSN, ITIN, SIN, National Insurance Number etc)

data.​customer_details.​passport_numberstring

Passport Number

data.​customer_details.​nationalitystring

Nationality (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

data.​customer_details.​citizenshipArray of strings

Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

data.​customer_details.​date_of_birthstring(date)

RFC3339 (YYYY-MM-DD) Date of Birth

data.​customer_details.​ip_addressstring

IP address from which customer initiated the application request

data.​customer_details.​tax_reference_number_countrystring

Registered tax reference number (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

data.​customer_details.​us_residency_statusstring

US Residency Status

Enum"US_CITIZEN""RESIDENT_ALIEN""NON_RESIDENT_ALIEN"
data.​customer_details.​employment_statusstring

Employment Status

Enum"EMPLOYEE""SELF_EMPLOYED""RETIRED""UNEMPLOYED""OTHER"
data.​customer_details.​employment_descriptionstring

Employment (job) description.

data.​customer_details.​employer_namestring

Employer name

data.​customer_details.​occupationstring

Occupation

data.​customer_details.​investment_profileobject(ProfileIndividualInvesting)

Investment Profile of the Individual

data.​customer_details.​kyc_profileobject(ProfileIndividualKYC)

KYC Profile of the Individual

Response
application/json
{ "data": { "id": "string", "status": "INCOMPLETE", "application_type": "INDIVIDUAL", "account_to_open": {}, "terms_and_conditions_accepted": true, "information_attested": false, "customer_id": "string", "customer_details": {} } }

Request

Update applicant properties. For Individuals attached to a corporation, you much patch the individuals directly using Update Individual.

Security
OAuth2Flow
Path
idstringrequired

Application ID

Headers
Authorizationstring

OAuth bearer token (see authentication flows)

x-l2f-request-idstring

Optional Unique ID per request, useful for fault resolution/diagnosis and audit.

x-l2f-idempotency-idstring

Unique ID used to safely retry an operation. See idempotency section for more details.

Bodyapplication/jsonrequired
updatesArray of objects(PatchApplication)

Follow standard patch guidance

curl -i -X PATCH \
  'https://docs.rail.io/_mock/api-docs/openapi/rail-spec/v1/applications/{application_id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'x-l2f-idempotency-id: string' \
  -H 'x-l2f-request-id: string' \
  -d '{
    "updates": [
      {
        "field": "string",
        "value": "string"
      }
    ]
  }'

Responses

Success

Bodyapplication/json
dataobject(ApplicationBase)required
data.​idstringread-onlyrequired

Unique Identifier for the application

Response
application/json
{ "data": { "id": "string" } }

Request

Deletes an individual from a corporate application. This action is permanent and cannot be reversed. All related details of the individual (including uploaded documents) will also be deleted.

Security
OAuth2Flow
Path
idstringrequired

Application ID

individual_idstringrequired

Individual ID

Headers
Authorizationstring

OAuth bearer token (see authentication flows)

x-l2f-request-idstring

Optional Unique ID per request, useful for fault resolution/diagnosis and audit.

x-l2f-idempotency-idstring

Unique ID used to safely retry an operation. See idempotency section for more details.

curl -i -X DELETE \
  'https://docs.rail.io/_mock/api-docs/openapi/rail-spec/v1/applications/{application_id}/individual/{individual_id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-l2f-idempotency-id: string' \
  -H 'x-l2f-request-id: string'

Responses

Success

Bodyapplication/json
dataobject(IndividualBase)required
data.​idstringread-onlyrequired

Unique ID of the Individual

Response
application/json
{ "data": { "id": "string" } }

Request

Update individual properties. This applies only for corporate applications where individuals associated to the company need to be updated.

Security
OAuth2Flow
Path
idstringrequired

Application ID

individual_idstringrequired

Individual ID

Headers
Authorizationstring

OAuth bearer token (see authentication flows)

x-l2f-request-idstring

Optional Unique ID per request, useful for fault resolution/diagnosis and audit.

x-l2f-idempotency-idstring

Unique ID used to safely retry an operation. See idempotency section for more details.

Bodyapplication/jsonrequired
updatesArray of objects(PatchIndividual)

Follow standard patch guidance

curl -i -X PATCH \
  'https://docs.rail.io/_mock/api-docs/openapi/rail-spec/v1/applications/{application_id}/individual/{individual_id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'x-l2f-idempotency-id: string' \
  -H 'x-l2f-request-id: string' \
  -d '{
    "updates": [
      {
        "field": "string",
        "value": "string"
      }
    ]
  }'

Responses

Success

Bodyapplication/json
dataobject(IndividualBase)required
data.​idstringread-onlyrequired

Unique ID of the Individual

Response
application/json
{ "data": { "id": "string" } }

Request

Retrieve the detailed status of an application

Security
OAuth2Flow
Path
idstringrequired

Application ID

Headers
Authorizationstring

OAuth bearer token (see authentication flows)

x-l2f-request-idstring

Optional Unique ID per request, useful for fault resolution/diagnosis and audit.

curl -i -X GET \
  'https://docs.rail.io/_mock/api-docs/openapi/rail-spec/v1/applications/{application_id}/status' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-l2f-request-id: string'

Responses

Success

Bodyapplication/json
dataobject(ApplicationState)required
data.​idstringread-onlyrequired

Unique Identifier for the application

data.​statusstringread-onlyrequired

Status of the application

Enum"INCOMPLETE""READY_FOR_SUBMISSION""SUBMITTED""PROCESSING""CHANGES_REQUESTED""REJECTED""APPROVED"
data.​application_errorsArray of stringsread-only

List of errors with the application.

Items Enum"MISSING_BENEFICIAL_OWNER""MISSING_OFFICER""MISSING_INDIVIDUAL""TERMS_AND_CONDITIONS_NOT_ACCEPTED""MISSING_AUTHORIZED_PERSON""MISSING_CONTROL_PERSON"
data.​validation_errorsArray of objects(ApplicationFieldError)read-only

List of validation errors with the application.

data.​application_document_errorsArray of objects(DocumentError)read-only

List of document errors with the application.

data.​application_individual_errorsArray of objects(IndividualState)read-only

ONLY for corporate applications. List of errors for the submitted individuals

data.​created_datestringread-onlyrequired

Date when the application was created

data.​status_update_datestringread-onlyrequired

Date when the application was updated

Response
application/json
{ "data": { "id": "string", "status": "INCOMPLETE", "application_errors": [], "validation_errors": [], "application_document_errors": [], "application_individual_errors": [], "created_date": "string", "status_update_date": "string" } }

Accounts

Accounts are used to hold funds on the platform. Once a customer is onboarded via the application process, you can create accounts for them in various currencies.

Operations

Counterparties

Counterparties represent external entities that you may wish to send or receive funds from. All counterparties are verified to ensure compliance with regulatory requirements prior to being available for use for withdrawals.

Operations

Customers

Customers can only be created via the application process. Once created, customers can have multiple accounts associated with them.

Operations

Deposits

Deposits are used to request instructions for funding platform managed accounts from external sources. A given account may have many deposits associated with it depending on the supported rails and configurations.

Operations

Documents

Document uploading and management functions.

Operations

Exchanges

Exchanges are used to convert funds from one currency to another. This is achieved by moving money between 2 platform accounts that are denominated in different currencies. We have eliminated the complexity of traditional currency trading.

Operations

Payments

Payments are used to orchestrate end to end payment flows from external parties or from within the platform.

Operations

Transactions

Transactions are created to record the movement of funds between accounts. The transactions endpoint allows the bulk retrieval of transaction data for reconciliation and reporting purposes.

Operations

Transfers

Transfer are used to move funds between two platform managed accounts that are denominated in the same currency.

Operations

Withdrawals

Move funds from a platform managed account to an external counterparty via supported rails.

Operations

Settlements

Settlement services for funds confirmation and reconciliation. Settlements are a deprecated concept and will be removed in future versions of the API. Please use Payments for all new integrations.

Operations

Subscriptions (Webhooks)

Manage your callback (webhook) subscriptions. Subscriptions allow you to receive real-time notifications of events that occur within your platform instance. Visit the guides for a full breakdown of all available events.

Operations