1. Overview

Volante API Service (VAPI) is a simple and powerful API, which supports extensive set of financial messaging standards covering multiple domains. Volante API Service can be embedded in any infrastructure(On-Premise, Cloud Hosted - AWS, Azure, GCP) or it can be accessed as Volante Hosted Service.

This API service allows you to,

  • Construct Message

  • Validate Message

  • Transform Message

  • Create Message

The OpenAPI (aka Swagger) Specification, which is a specification for machine-readable interface files for describing, producing, consuming, and visualizing RESTful web services, is available in the following location:

The Authentication, Limits & Quotas sections mentioned below are applicable only to subscribers of the ISO20022 service hosted by Volante. Specifically, this does not apply to On-Prem customers.

2. Authentication

The first step is to authenticate and receive a access token from the server. The access token should be passed in the Authorization header for all the subsequent REST calls. The server validates the access token and allows the call to execute further.

Refer to Volante Authentication API, to know more about generating access token and extending its validtity.

3. Limits and Quotas

Based on the plan you have subscribed to there is an upper limit on the no. of calls you can make per minute. If you exceed this limit, the APIs will respond with an HTTP 429 response code. In such a scenario, you can wait till your access rate decreases to the allowed limit before making the next call.

Apart from the per-minute limit, there is a per-day limit as well as an annual quota. These limits depend on the plan to which you have subscribed.

Check with the ISO20022 Service administrator for more details.

4. General Information

4.1. Version information

Version : 2.0

4.2. URI scheme

Host : <domain>:443
BasePath : /iso20022
Schemes : HTTPS

4.3. Tags

  • SubscriptionInfo : Service to retrieve user subscription information.

  • Constructor Service : Service for constructing messages from JSON data as per the Message Standards.

    • Examples: SWIFT, TARGET2, CBPR+, Swiss Payments, etc.

  • Creator Service : Service for creating any Clearing specific messages from Volante Standard (OutBound) and creating Volante Standard message from Clearing specific messages (InBound).

    • Examples: CBPR+ to Volante Standard Messages (InBound), Volante Standard to CBPR+ Messages (OutBound), etc.

  • Transformer Service : Service for Transforming messages from Source Format to Target Format.

    • Examples: CBPR+ to SWIFT MT Messages, SWIFT MT to CBPR+ Messages, etc.

  • Validator Service : Service for Validating messages.

    • Examples: SWIFT, TARGET2, CBPR+, Swiss Payments, etc.

5. Resources

5.1. SubscriptionInfo

Service to retrieve user subscription information.

5.1.1. GET /v2/subscriptionInfo

Description

Returns user’s details like FirstName, LastName, Organization and Subscription details.

Responses
HTTP Code Description Schema

200

OK

404

Not Found

500

Internal Server Error

Produces
  • application/json

  • application/xml

5.2. Constructor Service

Service for constructing messages from JSON data as per the Message Standards.

  • Examples: SWIFT, TARGET2, CBPR+, Swiss Payments, etc.

5.2.1. POST /v2/construct

Description

Accepts the message data in JSON format and converts it to native format.

Parameters
Type Name Description Schema

Body

message
required

Message data in JSON format to convert to native format.

string

Query

format
required

Format of the input message. Example: SWIFT

Get accepted values by calling /v2/construct/catalog

string

Query

version
required

Version of the input message. Example: SRG 2021

Get accepted values by calling /v2/construct/catalog

string

Query

name
required

Name of the input message. Example: MT103

Get accepted values by calling /v2/construct/catalog

string

Query

validations
optional

Validation nodes which needs to be executed. Value should be in a CSV format. Example: Default,Validation1

Get supported validations from /v2/construct/catalog

Note: If not present or value is null, the Default Validation node will be executed. If the value is empty String, then the parsed message object will not be validated.

string

Query

constructorOptions
optional

Option to include comma separated key value pair to control the message construction process. Key and Value are case-sensitive.

Pattern : <key:value>,<key:value>

Example : ext-name:VAPI

The constructorOptions listed below are supported as global level (for all constructors, irrespective of formats) options to control construction results.

1) suppressErrors

The suppressErrors option allows users to define the errors that should be ignored during message construction process. Users can specify multiple error codes as comma-separated values (CSV) and enclose the key-value pair within double quotes.

In some instances, multiple error codes could be present in a single error. VAPI treats each error code individually.

If any one of the multiple error codes from the exception is specified by the user, VAPI will suppress that exception.

The order in which the user provides the error codes to be suppressed does not matter.

If multiple errors contain the same error codes, and the user provides that error code, all those errors will be suppressed.

Syntax: “suppressErrors:${errorCodes}”

Example: “suppressErrors:M50,XML125”

2) ext-name

The ext-name option allows users to define the client extension name to call the configured Pre/Post Hook flows in the "message-info-ext.json". Users must pass this ext-name option to customize and override the default behavior of the standard constructors available in VAPI using Pre/Post hook flows.

Syntax: ext-name:Name of the client like 'GS'

Example: ext-name:GS

3) includeAdditionalErrorFields

Option to include additional fields in the error section of the VAPI response - fieldName and fieldValue.

Case 1: includeAdditionalErrorFields == false OR includeAdditionalErrorFields not specified in mappingOptions

By default, only the fieldId will be generated, if available. In this case, fieldName and fieldValue will not be included in the response.

Case 2: includeAdditionalErrorFields == true

Along with fieldId, fieldName and fieldValue will also be generated, if available, making it easier for users to identify the field associated with the error.

fieldId: Field id that uniquely identifies the field. This is the qualified name with indexes for repeatable sections included.

fieldName: Field name that uniquely identifies the field, excluding specific instances of repeatable sections. This is the qualified name without indexes, indicating the field’s location without specifying its occurrence in repeatable sections.

fieldValue: The value assigned to the field.

Note: These are optional fields. They will only be included in the response if the exception contains this information. This updated error response structure is supported in both REST and JAVA APIs.

Syntax: includeAdditionalErrorFields:true/false

Example: includeAdditionalErrorFields:true

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

500

Internal Server Error

Consumes
  • text/plain

Produces
  • application/json

  • application/xml

5.2.2. GET /v2/construct/catalog

Description

Returns list of messages supported by Constructor.

Responses
HTTP Code Description Schema

200

OK

401

Unauthorized

404

Not found

No Content

Produces
  • application/json

  • application/xml

5.2.3. GET /v2/construct/schema

Description

Returns requested message’s JSON schema.

Parameters
Type Name Description Schema

Query

format
required

Format of the input message. Example: SWIFT

Get accepted values by calling /v2/construct/catalog

string

Query

version
required

Version of the input message. Example: SRG 2021

Get accepted values by calling /v2/construct/catalog

string

Query

name
required

Name of the input message. Example: MT103

Get accepted values by calling /v2/construct/catalog

string

Responses
HTTP Code Description Schema

200

OK

string

400

Bad Request

401

Unauthorized

404

Not found

No Content

500

Internal Server Error

Produces
  • application/json

  • application/xml

5.2.4. GET /v2/construct/schema/all

Description

Returns all supported message’s JSON schema as ZIP.

Responses
HTTP Code Description Schema

200

OK

string

400

Bad Request

401

Unauthorized

404

Not found

No Content

500

Internal Server Error

Produces
  • application/json

  • application/xml

5.3. Creator Service

Service for creating any Clearing specific messages from Volante Standard (OutBound) and creating Volante Standard message from Clearing specific messages (InBound).

  • Examples: CBPR+ to Volante Standard Messages (InBound), Volante Standard to CBPR+ Messages (OutBound), etc.

5.3.1. GET /v2/creator/catalog

Description

Returns list of available mappings for message creation.

Responses
HTTP Code Description Schema

200

OK

401

Unauthorized

404

Not found

No Content

Produces
  • application/json

  • application/xml

5.3.2. POST /v2/creator/inbound/v1

Description

Creates Volante Standard message from the given Clearing specific input message.

This service requires the raw message as input in the body and returns the Volante Standard message as a creation result.

Parameters
Type Name Description Schema

Body

message
required

Clearing specific input message.

string

Query

sourceFormat
required

Format of the source message. Example: CBPR+

Get accepted values by calling /v2/creator/catalog

string

Query

sourceVersion
required

Version of the source message. Example: 2.1

Get accepted values by calling /v2/creator/catalog

string

Query

sourceName
optional

Name of the source message. Example: pacs.008.001.08. This is an optional request parameter. It will be automatically identified based on the input message, if the sourceName is not specified.

Get accepted values by calling /v2/creator/catalog

string

Query

sourceValidations
optional

Validation nodes which needs to be executed for source message. Value should be in a CSV format. Example: Default,Validation1

Get supported validations from /v2/creator/catalog

Note: If not present or value is null, the Default Validation node will be executed. If the value is empty String, then the parsed source message object will not be validated.

string

Query

targetVersion
optional

Version of the target message. This is an optional request parameter. If targetVersion is not specified, the default value will be set to '1.0'. Example: 1.0

string

Query

targetName
optional

Name of the Volante Standard message. Example: BankToCustomerDebitCreditNotification. This is an optional request parameter. It will be automatically identified based on the input message, if the targetName is not specified.

Get accepted values by calling /v2/creator/catalog

string

Query

targetValidations
optional

Validation nodes which needs to be executed for target message. Value should be in a CSV format. Example : Default,Validation1

Get supported validations from /v2/creator/catalog

Note: If not present or value is null, the Default Validation node will be executed. If the value is empty String, then the target message object will not be validated.

string

Query

cascadeError
optional

It supports Boolean value. Default value for cascadeError is false (not present or null).

cascadeError value applies to the legs like Source leg(Parse and Validation of Source Message), Mapping leg(Transformation of Source message to Target message), and Target leg(Validation and Serialization of Target message). Within a leg, errors will always be cascaded.

If the cascadeError is set to true, then the subsequent legs will be executed even if there are any errors in the current leg. Otherwise, execution will be stopped at the current leg itself.

If all the errors are of Warn severity in the current leg, then the subsequent legs will be executed irrespective of the cascadeError value.

Irrespective of the cascadeError value, the execution will stop at the mapping leg, only if any mapping exceptions occurred with severity ERROR or Higher. Reason : In case of mapping errors the target object will be partially constructed and hence proceeding to the next step is not viable.

boolean

Query

payloadEncoding
optional

Encoding type of the input and output message. This is an optional field. Accepted Values are: Base64

Note: In case of unsupported value, input is treated as plain text.

string

Query

includePayload
optional

Option to include the parsed message as JSON in the response. Accepted Values are: Always, Never and OnError. Default value is Never.

Note: Default value will be used, if this parameter is not present.

string

Query

mappingOptions
optional

Option to include comma separated key value pair to control the creator result. Key and Value are case-sensitive.

Pattern : <key:value>,<key:value>

Example : ApplicationMode:I,MessagePriority:U

The mappingOptions listed below are supported as global level (for all creators, irrespective of formats) options to control creation results. Additionally, more number of mappingOptions are supported at the transformation level. For example, a mappingOption ApplicationMode:I is supported only in CBPR+ to SWIFT transformation. Refer to VAPI readme document for more information.

1) minifyOutput

Option to minify the transformed output by controlling the line separators and indentation (tabs). It will work only if the transformed output is of XML or JSON format.

Allowed Values: true/false

Case1: minifyOutput == true

No LineFeed and Tab (\n and \t) characters will be present in the transformed output.

Case2: minifyOutput == false OR mappingOptions == null OR minifyOutput not specified in mappingOptions.

Line Separator (\n) will be present in the transformed output.

Syntax: minifyOutput:true/false

Example: minifyOutput: true

2) suppressErrors

The suppressErrors option allows users to define the errors that should be ignored during message transformation process. Users can specify multiple error codes as comma-separated values (CSV) and enclose the key-value pair within double quotes.

In some instances, multiple error codes could be present in a single error. VAPI treats each error code individually.

If any one of the multiple error codes from the exception is specified by the user, VAPI will suppress that exception.

The order in which the user provides the error codes to be suppressed does not matter.

If multiple errors contain the same error codes, and the user provides that error code, all those errors will be suppressed.

Syntax: “suppressErrors:${errorCodes}”

Example: “suppressErrors:M50,XML125”

3) includeTruncationInfo

Option to include the data loss or truncation information along with truncation indicator, which specifies whether truncation occurred during the mapping, in the output. During ISO to MT translations data loss or truncation may occur, and to enforce VAPI to capture that information, users must pass this key-value pair.

Allowed Values: true/false

Case1: includeTruncationInfo == true

Data loss or truncation information will be captured in the transformation result.

And, the transformation result will include the truncationIndicator flag, which is set to either true or false.

Case2: includeTruncationInfo == false OR mappingOptions == null OR includeTruncationInfo not specified in mappingOptions.

Data loss or truncation information won’t be captured in the transformation result.

And, the transformation result will not include the truncationIndicator flag.

Note: This is a beta release for truncationInfo and currently it is available for some mappings such as CBPR+ -> SWIFT transformation, version SRG 2022 onwards.

Syntax: includeTruncationInfo:true/false

Example: includeTruncationInfo:true

4) ext-name

The ext-name option allows users to define the client extension name to call the configured Pre/Post Hook flows in the "mapping-info-ext.json". Users must pass this ext-name option to customize and override the default behavior of the standard mappings available in VAPI using Pre/Post hook flows.

Syntax: ext-name:Name of the client like 'GS'

Example: ext-name:GS

5) input.format

In case of Creator Outbound service, when the input is Volante Standard format, it can be parsed in both JSON and XML formats. By default, VAPI Creator parses/accepts the input Volante Standard message in JSON format. However, if the user has XML input, an additional input parameter needs to be passed through the mappingOption to enforce VAPI to parse the VS message in XML format.

Syntax: input.format:XML/JSON

Example: input.format:XML

6) output.format

In case of Creator Inbound service, when the output is Volante Standard format, it can be serialized in both JSON and XML formats. By default, VAPI Creator serializes/generates the output Volante Standard message in JSON format. However, if the user wants XML output, an additional input parameter needs to be passed through the mappingOption to enforce VAPI to serialize the VS message in XML format.

Syntax: output.format:XML/JSON

Example: output.format:XML

7) includeAdditionalErrorFields

Option to include additional fields in the error section of the VAPI response - fieldName and fieldValue.

Case 1: includeAdditionalErrorFields == false OR includeAdditionalErrorFields not specified in mappingOptions

By default, only the fieldId will be generated, if available. In this case, fieldName and fieldValue will not be included in the response.

Case 2: includeAdditionalErrorFields == true

Along with fieldId, fieldName and fieldValue will also be generated, if available, making it easier for users to identify the field associated with the error.

fieldId: Field id that uniquely identifies the field. This is the qualified name with indexes for repeatable sections included.

fieldName: Field name that uniquely identifies the field, excluding specific instances of repeatable sections. This is the qualified name without indexes, indicating the field’s location without specifying its occurrence in repeatable sections.

fieldValue: The value assigned to the field.

Note: These are optional fields. They will only be included in the response if the exception contains this information. This updated error response structure is supported in both REST and JAVA APIs.

Syntax: includeAdditionalErrorFields:true/false

Example: includeAdditionalErrorFields:true

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

500

Internal Server Error

Consumes
  • text/plain

Produces
  • application/json

  • application/xml

5.3.3. POST /v2/creator/outbound/v1

Description

Creates Clearing specific message from the given Volante Standard input message.

This service requires the Volante Standard message as input in the body and returns the creation result.

Parameters
Type Name Description Schema

Body

message
required

Volante Standard input message.

string

Query

sourceVersion
optional

Version of the source message. This is an optional request parameter. If sourceVersion is not specified, the default value will be set to '1.0'. Example: 1.0

string

Query

sourceName
optional

Name of the Volante Standard message. Example: BankToCustomerDebitCreditNotification. This is an optional request parameter. It will be automatically identified based on the input message, if the sourceName is not specified.

Get accepted values by calling /v2/creator/catalog

string

Query

sourceValidations
optional

Validation nodes which needs to be executed for source message. Value should be in a CSV format. Example: Default,Validation1

Get supported validations from /v2/creator/catalog

Note: If not present or value is null, the Default Validation node will be executed. If the value is empty String, then the parsed source message object will not be validated.

string

Query

targetFormat
required

Format of the target message. Example: CBPR+

Get accepted values by calling /v2/creator/catalog

string

Query

targetVersion
required

Version of the target message. Example: 2.0

Get accepted values by calling /v2/creator/catalog

string

Query

targetName
optional

Name of the target message. Example: pacs.008.001.08. This is an optional request parameter. It will be automatically identified based on the input message, if the targetName is not specified.

Get accepted values by calling /v2/creator/catalog

string

Query

targetValidations
optional

Validation nodes which needs to be executed for target message. Value should be in a CSV format. Example : Default,Validation1

Get supported validations from /v2/creator/catalog

Note: If not present or value is null, the Default Validation node will be executed. If the value is empty String, then the target message object will not be validated.

string

Query

cascadeError
optional

It supports Boolean value. Default value for cascadeError is false (not present or null).

cascadeError value applies to the legs like Source leg(Parse and Validation of Source Message), Mapping leg(Transformation of Source message to Target message), and Target leg(Validation and Serialization of Target message). Within a leg, errors will always be cascaded.

If the cascadeError is set to true, then the subsequent legs will be executed even if there are any errors in the current leg. Otherwise, execution will be stopped at the current leg itself.

If all the errors are of Warn severity in the current leg, then the subsequent legs will be executed irrespective of the cascadeError value.

Irrespective of the cascadeError value, the execution will stop at the mapping leg, only if any mapping exceptions occurred with severity ERROR or Higher. Reason : In case of mapping errors the target object will be partially constructed and hence proceeding to the next step is not viable.

boolean

Query

payloadEncoding
optional

Encoding type of the input and output message. This is an optional field. Accepted Values are: Base64

Note: In case of unsupported value, input is treated as plain text.

string

Query

includePayload
optional

Option to include the parsed message as JSON in the response. Accepted Values are: Always, Never and OnError. Default value is Never.

Note: Default value will be used, if this parameter is not present.

string

Query

mappingOptions
optional

Option to include comma separated key value pair to control the creator result. Key and Value are case-sensitive.

Pattern : <key:value>,<key:value>

Example : ApplicationMode:I,MessagePriority:U

The mappingOptions listed below are supported as global level (for all creators, irrespective of formats) options to control creation results. Additionally, more number of mappingOptions are supported at the transformation level. For example, a mappingOption ApplicationMode:I is supported only in CBPR+ to SWIFT transformation. Refer to VAPI readme document for more information.

1) minifyOutput

Option to minify the transformed output by controlling the line separators and indentation (tabs). It will work only if the transformed output is of XML or JSON format.

Allowed Values: true/false

Case1: minifyOutput == true

No LineFeed and Tab (\n and \t) characters will be present in the transformed output.

Case2: minifyOutput == false OR mappingOptions == null OR minifyOutput not specified in mappingOptions.

Line Separator (\n) will be present in the transformed output.

Syntax: minifyOutput:true/false

Example: minifyOutput: true

2) suppressErrors

The suppressErrors option allows users to define the errors that should be ignored during message transformation process. Users can specify multiple error codes as comma-separated values (CSV) and enclose the key-value pair within double quotes.

In some instances, multiple error codes could be present in a single error. VAPI treats each error code individually.

If any one of the multiple error codes from the exception is specified by the user, VAPI will suppress that exception.

The order in which the user provides the error codes to be suppressed does not matter.

If multiple errors contain the same error codes, and the user provides that error code, all those errors will be suppressed.

Syntax: “suppressErrors:${errorCodes}”

Example: “suppressErrors:M50,XML125”

3) includeTruncationInfo

Option to include the data loss or truncation information along with truncation indicator, which specifies whether truncation occurred during the mapping, in the output. During ISO to MT translations data loss or truncation may occur, and to enforce VAPI to capture that information, users must pass this key-value pair.

Allowed Values: true/false

Case1: includeTruncationInfo == true

Data loss or truncation information will be captured in the transformation result.

And, the transformation result will include the truncationIndicator flag, which is set to either true or false.

Case2: includeTruncationInfo == false OR mappingOptions == null OR includeTruncationInfo not specified in mappingOptions.

Data loss or truncation information won’t be captured in the transformation result.

And, the transformation result will not include the truncationIndicator flag.

Note: This is a beta release for truncationInfo and currently it is available for some mappings such as CBPR+ -> SWIFT transformation, version SRG 2022 onwards.

Syntax: includeTruncationInfo:true/false

Example: includeTruncationInfo:true

4) ext-name

The ext-name option allows users to define the client extension name to call the configured Pre/Post Hook flows in the "mapping-info-ext.json". Users must pass this ext-name option to customize and override the default behavior of the standard mappings available in VAPI using Pre/Post hook flows.

Syntax: ext-name:Name of the client like 'GS'

Example: ext-name:GS

5) input.format

In case of Creator Outbound service, when the input is Volante Standard format, it can be parsed in both JSON and XML formats. By default, VAPI Creator parses/accepts the input Volante Standard message in JSON format. However, if the user has XML input, an additional input parameter needs to be passed through the mappingOption to enforce VAPI to parse the VS message in XML format.

Syntax: input.format:XML/JSON

Example: input.format:XML

6) output.format

In case of Creator Inbound service, when the output is Volante Standard format, it can be serialized in both JSON and XML formats. By default, VAPI Creator serializes/generates the output Volante Standard message in JSON format. However, if the user wants XML output, an additional input parameter needs to be passed through the mappingOption to enforce VAPI to serialize the VS message in XML format.

Syntax: output.format:XML/JSON

Example: output.format:XML

7) includeAdditionalErrorFields

Option to include additional fields in the error section of the VAPI response - fieldName and fieldValue.

Case 1: includeAdditionalErrorFields == false OR includeAdditionalErrorFields not specified in mappingOptions

By default, only the fieldId will be generated, if available. In this case, fieldName and fieldValue will not be included in the response.

Case 2: includeAdditionalErrorFields == true

Along with fieldId, fieldName and fieldValue will also be generated, if available, making it easier for users to identify the field associated with the error.

fieldId: Field id that uniquely identifies the field. This is the qualified name with indexes for repeatable sections included.

fieldName: Field name that uniquely identifies the field, excluding specific instances of repeatable sections. This is the qualified name without indexes, indicating the field’s location without specifying its occurrence in repeatable sections.

fieldValue: The value assigned to the field.

Note: These are optional fields. They will only be included in the response if the exception contains this information. This updated error response structure is supported in both REST and JAVA APIs.

Syntax: includeAdditionalErrorFields:true/false

Example: includeAdditionalErrorFields:true

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

500

Internal Server Error

Consumes
  • text/plain

Produces
  • application/json

  • application/xml

5.4. Transformer Service

Service for Transforming messages from Source Format to Target Format.

  • Examples: CBPR+ to SWIFT MT Messages, SWIFT MT to CBPR+ Messages, etc.

5.4.1. POST /v2/transformer

Description

Service for Transforming messages from Source Format to Target Format.

This service requires input in the JSON/XML format and returns the transformation result in the JSON/XML format.

Content-Type Header must be set as application/json in the request, if the input is in JSON format. Otherwise, it must be set as application/xml.

Parameters
Type Name Description Schema

Body

transformerRequest
required

JSON Example: { "message":"ezE6RjAxVEVTVEdCV", "sourceFormat":"SWIFT", "sourceVersion":"SRG 2020", "sourceName":"MT103", "sourceValidations":"Default", "targetFormat":"CBPR+", "targetVersion":"1.0", "targetName":"pacs.008.001.08", "targetValidations":"Default", "cascadeError":"true", "payloadEncoding":"Base64", "includePayload":"Always", "mappingOptions":"ApplicationMode:I" }

XML Example: <TransformerRequest> <message><![CDATA[ezE6RjAxVEVTVEdCV]]></message> <sourceFormat>SWIFT</sourceFormat> <sourceVersion>SRG 2021</sourceVersion> <sourceName>MT103</sourceName> <sourceValidations>Default</sourceValidations> <targetFormat>CBPR+</targetFormat> <targetVersion>1.0</targetVersion> <targetName>pacs.008.001.08</targetName> <targetValidations>Default</targetValidations> <cascadeError>true</cascadeError> <payloadEncoding>Base64</payloadEncoding> <includePayload>Always</includePayload> <mappingOptions>ApplicationMode:I</mappingOptions> </TransformerRequest>

Values for the above parameters can be obtained from /v2/transformer/catalog endpoint.

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

500

Internal Server Error

Consumes
  • application/json

  • application/xml

Produces
  • application/json

  • application/xml

5.4.2. GET /v2/transformer/catalog

Description

Returns list of available mappings for transformation.

Responses
HTTP Code Description Schema

200

OK

401

Unauthorized

404

Not found

No Content

Produces
  • application/json

  • application/xml

5.4.3. POST /v2/transformer/raw

Description

Service for Transforming messages from Source Format to Target Format.

This service requires the raw message (string) as input in the body and returns the transformation result in the JSON/XML format.

Parameters
Type Name Description Schema

Body

message
required

Message to be transformed.

string

Query

sourceFormat
required

Format of the source message. Example: SWIFT

Get accepted values by calling /v2/transformer/catalog

string

Query

sourceVersion
required

Version of the source message. Example: SRG 2021

Get accepted values by calling /v2/transformer/catalog

string

Query

sourceName
optional

Name of the source message. Example: MT103. This is an optional request parameter. It will be automatically identified based on the input message, if the sourceName is not specified.

Get accepted values by calling /v2/transformer/catalog

string

Query

sourceValidations
optional

Validation nodes which needs to be executed for source message. Value should be in a CSV format. Example: Default,Validation1

Get supported validations from /v2/transformer/catalog

Note: If not present or value is null, the Default Validation node will be executed. If the value is empty String, then the parsed source message object will not be validated.

string

Query

targetFormat
required

Format of the target message. Example: CBPR+

Get accepted values by calling /v2/transformer/catalog

string

Query

targetVersion
required

Version of the target message. Example: 2.1

Get accepted values by calling /v2/transformer/catalog

string

Query

targetName
optional

Name of the target message. Example: pacs.008.001.08. This is an optional request parameter. It will be automatically identified based on the input message, if the targetName is not specified.

Get accepted values by calling /v2/transformer/catalog

string

Query

targetValidations
optional

Validation nodes which needs to be executed for target message. Value should be in a CSV format. Example: Default,Validation1

Get supported validations from /v2/transformer/catalog

Note: If not present or value is null, the Default Validation node will be executed. If the value is empty String, then the target message object will not be validated.

string

Query

cascadeError
optional

It supports Boolean value. Default value for cascadeError is false (not present or null).

cascadeError value applies to the legs like Source leg(Parse and Validation of Source Message), Mapping leg(Transformation of Source message to Target message), and Target leg(Validation and Serialization of Target message). Within a leg, errors will always be cascaded.

If the cascadeError is set to true, then the subsequent legs will be executed even if there are any errors in the current leg. Otherwise, execution will be stopped at the current leg itself.

If all the errors are of Warn severity in the current leg, then the subsequent legs will be executed irrespective of the cascadeError value.

Irrespective of the cascadeError value, the execution will stop at the mapping leg, only if any mapping exceptions occurred with severity ERROR or Higher. Reason : In case of mapping errors the target object will be partially constructed and hence proceeding to the next step is not viable.

boolean

Query

payloadEncoding
optional

Encoding type of the input parameters message, originalMessageValue and transformed output message. This is an optional field. Accepted Values are: Base64

Note: In case of unsupported value, input is treated as plain text.

string

Query

includePayload
optional

Option to include the parsed message as JSON in the response. Accepted Values are: Always, Never and OnError. Default value is Never.

Note: Default value will be used, if this parameter is not present.

string

Query

mappingOptions
optional

Option to include comma separated key value pair to control the transformation. Key and Value are case-sensitive.

Pattern : <key:value>,<key:value>

Example : ApplicationMode:I,MessagePriority:U

The mappingOptions listed below are supported as global level (for all transformers, irrespective of formats) options to control transformation results. Additionally, more number of mappingOptions are supported at the transformation level. For example, a mappingOption ApplicationMode:I is supported only in CBPR+ to SWIFT transformation. Refer to VAPI readme document for more information.

1) minifyOutput

Option to minify the transformed output by controlling the line separators and indentation (tabs). It will work only if the transformed output is of XML or JSON format.

Allowed Values: true/false

Case1: minifyOutput == true

No LineFeed and Tab (\n and \t) characters will be present in the transformed output.

Case2: minifyOutput == false OR mappingOptions == null OR minifyOutput not specified in mappingOptions.

Line Separator (\n) will be present in the transformed output.

Syntax: minifyOutput:true/false

Example: minifyOutput: true

2) ORGNLMSGNAME

Some of the mappings require original or correlation message details along with the actual message. The allowed values for originalMessageName will vary for every transformation. Refer respective mapping spec to know more about allowed values. Ex: Original message details are required in case of COV Return Message transformations.

Note: ORGNLMSGNAME and ORGNLMSGVALUE must be present together.

Syntax: ORGNLMSGNAME:Messgae_Name

Example: ORGNLMSGNAME:MT103

3) ORGNLMSGVALUE

Some of the mappings require original or correlation message details along with the actual message. This option allows users to specify the original message value for the respective original message.

Note: ORGNLMSGNAME and ORGNLMSGVALUE must be present together.

Syntax: ORGNLMSGVALUE:Message_Sample

4) suppressErrors

The suppressErrors option allows users to define the errors that should be ignored during message transformation process. Users can specify multiple error codes as comma-separated values (CSV) and enclose the key-value pair within double quotes.

In some instances, multiple error codes could be present in a single error. VAPI treats each error code individually.

If any one of the multiple error codes from the exception is specified by the user, VAPI will suppress that exception.

The order in which the user provides the error codes to be suppressed does not matter.

If multiple errors contain the same error codes, and the user provides that error code, all those errors will be suppressed.

Syntax: "suppressErrors:${errorCodes}"

Example: "suppressErrors:M50,XML125"

5) includeTruncationInfo

Option to include the data loss or truncation information along with truncation indicator, which specifies whether truncation occurred during the mapping, in the output. During ISO to MT translations data loss or truncation may occur, and to enforce VAPI to capture that information, users must pass this key-value pair.

Allowed Values: true/false

Case1: includeTruncationInfo == true

Data loss or truncation information will be captured in the transformation result.

And, the transformation result will include the truncationIndicator flag, which is set to either true or false.

Case2: includeTruncationInfo == false OR mappingOptions == null OR includeTruncationInfo not specified in mappingOptions.

Data loss or truncation information won’t be captured in the transformation result.

And, the transformation result will not include the truncationIndicator flag.

Note: This is a beta release for truncationInfo and currently it is available for some mappings such as CBPR+ -> SWIFT transformation, version SRG 2022 onwards.

Syntax: includeTruncationInfo:true/false

Example: includeTruncationInfo:true

6) ext-name

The ext-name option allows users to define the client extension name to call the configured Pre/Post Hook flows in the "mapping-info-ext.json". Users must pass this ext-name option to customize and override the default behavior of the standard mappings available in VAPI using Pre/Post hook flows.

Syntax: ext-name:Name of the client like 'GS'

Example: ext-name:GS

7) includeAdditionalErrorFields

Option to include additional fields in the error section of the VAPI response - fieldName and fieldValue.

Case 1: includeAdditionalErrorFields == false OR includeAdditionalErrorFields not specified in mappingOptions

By default, only the fieldId will be generated, if available. In this case, fieldName and fieldValue will not be included in the response.

Case 2: includeAdditionalErrorFields == true

Along with fieldId, fieldName and fieldValue will also be generated, if available, making it easier for users to identify the field associated with the error.

fieldId: Field id that uniquely identifies the field. This is the qualified name with indexes for repeatable sections included.

fieldName: Field name that uniquely identifies the field, excluding specific instances of repeatable sections. This is the qualified name without indexes, indicating the field’s location without specifying its occurrence in repeatable sections.

fieldValue: The value assigned to the field.

Note: These are optional fields. They will only be included in the response if the exception contains this information. This updated error response structure is supported in both REST and JAVA APIs.

Syntax: includeAdditionalErrorFields:true/false

Example: includeAdditionalErrorFields:true

string

Header

originalMessageName
optional

Name of the original message. Example: MT202COV

To handle COV Return messages, transformer service requires original or correlation message details.

The allowed values for originalMessageName will vary for every transformation. Refer respective mapping spec to know more about allowed values.

This input is only required in case of COV Return Message transformations.

Note: originalMessageName & originalMessageValue must be present together.

string

Header

originalMessageValue
optional

Original message value.

To handle COV Return messages, transformer service requires original or correlation message details.

This option allows users to specify the original message value for COV Return message transformation.

If payloadEncoding is set to Base64, then originalMessageValue needs to be in Base64 format.

Note: originalMessageName & originalMessageValue must be present together.

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

500

Internal Server Error

Consumes
  • text/plain

Produces
  • application/json

  • application/xml

5.5. Validator Service

Service for Validating messages.

  • Examples: SWIFT, TARGET2, CBPR+, Swiss Payments, etc.

5.5.1. POST /v2/validator

Description

Validates the given message.

This service requires input in the JSON/XML format and returns the validation result in the JSON format.

Content-Type Header must be set as application/json in the request, if the input is in JSON format. Otherwise, it must be set as application/xml.

Parameters
Type Name Description Schema

Body

ValidatorRequest
required

JSON Example: { "message": "ezE6RjAxVEVTVEdCV", "format": "SWIFT", "version": "SRG 2021", "name": "MT103", "validations": "Default", "payloadEncoding": "Base64", "includePayload": "Always", "validatorOptions": "key:value" }

XML Example: <ValidatorRequest> <message><![CDATA[ezE6RjAxVEVTVEdCV]]></message> <format>SWIFT</format> <version>SRG 2021</version> <name>MT103</name> <validations>Default</validations> <payloadEncoding>Base64</payloadEncoding> <includePayload>Always</includePayload> <validatorOptions>key:value</validatorOptions> </ValidatorRequest>

Values for the above parameters can be obtained from /v2/validator/catalog endpoint.

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

500

Internal Server Error

Consumes
  • application/json

  • application/xml

Produces
  • application/json

  • application/xml

5.5.2. GET /v2/validator/catalog

Description

Returns list of available messages to validate

Responses
HTTP Code Description Schema

200

OK

401

Unauthorized

404

Not found

No Content

Produces
  • application/json

  • application/xml

5.5.3. POST /v2/validator/raw

Description

Validates the given message.

This service requires the raw message (string) as input in the body and returns the validation result in the JSON/XML format.

Parameters
Type Name Description Schema

Body

message
required

Message to be validated.

string

Query

format
required

Format of the input message. Example: SWIFT

Get accepted values by calling /v2/validator/catalog

string

Query

version
required

Version of the input message. Example: SRG 2021

Get accepted values by calling /v2/validator/catalog

string

Query

name
required

Name of the input message. Example: MT103

Get accepted values by calling /v2/validator/catalog

string

Query

validations
optional

Validation nodes which needs to be executed. Value should be in a CSV format. Example: Default,Validation1

Get supported validations from /v2/validator/catalog

Note: If not present or value is null, the Default Validation node will be executed. If the value is empty String, then the parsed message object will not be validated.

string

Query

payloadEncoding
optional

Encoding type of the input message. This is an optional field. Accepted Values are: Base64

Note: In case of unsupported value, input is treated as plain text.

string

Query

includePayload
optional

Option to include the parsed message as JSON in the response. Accepted Values are: Always, Never and OnError. Default value is Never.

Note: Default value will be used, if this parameter is not present.

string

Query

validatorOptions
optional

Option to include comma separated key value pair to control the validation process. Key and Value are case-sensitive.

Pattern : <key:value>,<key:value>

Example : appHdrMandatory:true

The validatorOptions listed below are supported as global level (for all validators, irrespective of formats) options to control validation results.

1) appHdrMandatory

Option to make the AppHdr mandatory in case the user wishes to validate CBPR+ format messages.

Allowed Values: true/false

Case1: appHdrMandatory== true

appHdr must me available in the input message otherwise exception will be thrown as part of validation result.

Case2: appHdrMandatory == false OR validatorOptions == null OR appHdrMandatory not specified in validatorOptions.

appHdr is optional in the input message. No exception will be thrown if the input message doesn’t contain AppHdr.

Note: The appHdrMandatory property should not be set to true when validating the CBPR+ head.001.001.02 message because the entire input serves as the Payload for this message.

Syntax: appHdrMandatory:true/false

Example: appHdrMandatory:true.

2) suppressErrors

The suppressErrors option allows users to define the errors that should be ignored during message validation process. Users can specify multiple error codes as comma-separated values (CSV) and enclose the key-value pair within double quotes.

In some instances, multiple error codes could be present in a single error. VAPI treats each error code individually.

If any one of the multiple error codes from the exception is specified by the user, VAPI will suppress that exception.

The order in which the user provides the error codes to be suppressed does not matter.

If multiple errors contain the same error codes, and the user provides that error code, all those errors will be suppressed.

Syntax: "suppressErrors:${errorCodes}"

Example: "suppressErrors:M50,XML125"

3) ext-name

The ext-name option allows users to define the client extension name to call the configured Pre/Post Hook flows in the "message-info-ext.json". Users must pass this ext-name option to customize and override the default behavior of the standard validators available in VAPI using Pre/Post hook flows.

Syntax: ext-name:Name of the client like 'GS'

Example: ext-name:GS

4) includeAdditionalErrorFields

Option to include additional fields in the error section of the VAPI response - fieldName and fieldValue.

Case 1: includeAdditionalErrorFields == false OR includeAdditionalErrorFields not specified in mappingOptions

By default, only the fieldId will be generated, if available. In this case, fieldName and fieldValue will not be included in the response.

Case 2: includeAdditionalErrorFields == true

Along with fieldId, fieldName and fieldValue will also be generated, if available, making it easier for users to identify the field associated with the error.

fieldId: Field id that uniquely identifies the field. This is the qualified name with indexes for repeatable sections included.

fieldName: Field name that uniquely identifies the field, excluding specific instances of repeatable sections. This is the qualified name without indexes, indicating the field’s location without specifying its occurrence in repeatable sections.

fieldValue: The value assigned to the field.

Note: These are optional fields. They will only be included in the response if the exception contains this information. This updated error response structure is supported in both REST and JAVA APIs.

Syntax: includeAdditionalErrorFields:true/false

Example: includeAdditionalErrorFields:true

string

Responses
HTTP Code Description Schema

200

OK

400

Bad Request

401

Unauthorized

500

Internal Server Error

Consumes
  • text/plain

Produces
  • application/json

  • application/xml

6. Definitions

6.1. SubscriptionInfo

Name Description Schema

orgId
optional

OrganizationID of the current user.

string

orgName
optional

Organization name of the current user.

string

userId
optional

UserID of the current User

string

userEmail
required

UserEmail of the current User

string

userFirstName
optional

First name of the current user

string

userLastName
required

Last name of the current user

string

startDate
optional

Start date of the subscription.

string

endDate
optional

End date of the subscription.

string

6.2. ErrorResponse

Name Description Schema

success
required

Always the value is set to 'False'

boolean

errors
optional

< errors > array

errors

Name Description Schema

code
required

Status code of the rest response

string

message
required

Description of the error

string

severity
required

Severity of the error. Values: fatal, error, warn

string

6.3. ConstructorCatalogResponse

Name Description Schema

catalog
optional

Validation Service List

< catalog > array

catalog

Name Description Schema

format
required

Format of the message. Example: SWIFT

string

version
required

Version of the message. Example: SRG 2021

string

category
required

Category name where the messageType is grouped.

string

name
required

Name of the message. Example: MT103

string

detailedName
optional

Detailed Name of the message. Example: Single Customer Credit Transfer

string

description
optional

Information about the message.

string

validations
optional

List of available validation nodes

< validations > array

validations

Name Description Schema

name
required

Validation Node name.

string

description
optional

Details of the validation node.

string

6.4. ConstructorResponse

Name Description Schema

success
required

Status of the message construction. It’s a boolean flag. On successful message construction, success flag will be set to true otherwise false.

boolean

messageId
required

Unique Id of the Input message.

string

errors
optional

Created only if value of success is "false". In case of errors having severity as "warn", success value remains "true".

< errors > array

output
optional

Output native format message.

string

errors

Name Description Schema

code
required

Indicates the error type. Internal error codes are used in the case where standard error codes are not applicable

string

message
required

Description of the error

string

severity
required

Severity of the error. Values: fatal, error, warn

string

line
optional

Line in which the error occured

integer (int32)

column
optional

Position in the error line

integer (int32)

fieldId
optional

Field id that uniquely identifies the field. This is the qualified name with indexes for sections included.

string

fieldName
optional

Field name that uniquely identifies the field, excluding specific instances of repeatable sections. This is the qualified name without indexes, indicating the field’s location without specifying its occurrence in repeatable sections.

string

fieldValue
optional

The value assigned to the field.

string

validation
optional

Name of the validation node. This field will present only for the validation errors.

string

6.5. CreatorCatalogResponse

Name Description Schema

catalog
optional

Transformation Service List

< catalog > array

catalog

Name Description Schema

sourceFormat
required

Format of the source message. Example: SWIFT

string

sourceVersion
required

Version of the source message. Example: SRG 2021

string

sourceName
required

Name of the source message. Example: MT103

string

sourceDetailedName
optional

Detailed Name of the source message. Example: Single Customer Credit Transfer

string

sourceDescription
optional

Information about the source message.

string

sourceValidations
optional

List of available validation nodes in a source message.

< sourceValidations > array

targetFormat
required

Format of the target message. Example: CBPR+

string

targetVersion
required

Version of the target message. Example: 2.0

string

targetName
required

Name of the target message. Example: pacs.008.001.08

string

targetDetailedName
optional

Detailed Name of the target message. Example: FIToFICustomerCreditTransferV08

string

targetDescription
optional

Information about the target message.

string

targetValidations
optional

List of available validation nodes in a target message.

< targetValidations > array

sourceValidations

Name Description Schema

name
required

Validation Node name

string

description
optional

Details of the validation node.

string

targetValidations

Name Description Schema

name
required

Validation Node name

string

description
optional

Details of the validation node.

string

6.6. CreatorResponse

Name Description Schema

success
required

Status of the creation. It’s a boolean flag. On successful creation, success flag will be set to true otherwise false.

boolean

sourceFormat
optional

Format of the source message. Example: Volante Standard

Available only if the input sourceName is not specified.

string

sourceVersion
optional

Version of the source message. Example: 1.0

Available only if the input sourceName is not specified.

string

sourceName
optional

Name of the source message. Example: FIToFICustomerCreditTransfer

Available only if the input sourceName is not specified.

string

targetFormat
optional

Format of the target message. Example: CBPR+

string

targetVersion
optional

Version of the target message. Example: 2.0

string

targetName
optional

Name of the target message. Example: pacs.008.001.08

string

messageId
required

Unique Id of the Input message.

string

errors
optional

Created only if value of success is "false". In case of errors having severity as "warn", success value remains "true".

< errors > array

additionalInfo
optional

additionalInfo provides more details about the execution of message creation service. It contains name and value pairs to provide details like data loss, etc.

< additionalInfo > array

output
optional

Creator output message. This field will be set only if the message creation produces a single output.

string

outputs
optional

This section will be set, if the message creation produces multiple outputs. It’s a repeatable section. Each occurrence of the outputs section represents a creator output message and its properties through which the user can trace the source message from which this output is prepared.

< outputs > array

parsedPayload
optional

Input Parsed Message as JSON in the response.

string

truncationInfo
optional

This section captures truncation or data loss information.

errors

Name Description Schema

code
required

Indicates the error type. Internal error codes are used in the case where standard error codes are not applicable

string

message
required

Description of the error

string

severity
required

Severity of the error. Values: fatal, error, warn

string

line
optional

Line in which the error occured

integer (int32)

column
optional

Position in the error line

integer (int32)

fieldId
optional

Field id that uniquely identifies the field. This is the qualified name with indexes for sections included.

string

fieldName
optional

Field name that uniquely identifies the field, excluding specific instances of repeatable sections. This is the qualified name without indexes, indicating the field’s location without specifying its occurrence in repeatable sections.

string

fieldValue
optional

The value assigned to the field.

string

validation
optional

Name of the validation node. This field will present only for the validation errors.

string

additionalInfo

Name Description Schema

name
required

Name of the property. Ex: truncationIndicator

string

value
required

Value of the property. Value is always a String type. Ex: true/false.

string

outputs

Name Description Schema

content
required

Creator output message.

string

properties
optional

Few properties (name and value pairs) are associated with each output message for traceability purposes. Like,

  1. messageIndex: Zero based index of the source message from which this output is prepared. Value starts with '0'.

  2. sequenceNo: One based sequential index of the output message for a given source message. Numerical value increased incrementally for each message set. This number starts with value '1'.

    • Ex: In case of TARGET2 Securities camt.053.001.08 to TARGET2 MT MT940 transformation, a single statement section can split into multiple MT940s. In this case, sequenceNo is used to determine the sequence or order of the MT940 messages.

  3. messageId: Unique identification, to unambiguously identify the source message from which this output is prepared.

< properties > array

properties

Name Description Schema

name
required

Name of the property. Ex: messageIndex

string

value
required

Value of the property.

string

truncationInfo

Name Description Schema

truncations
optional

It’s a repeatable section. Each occurrence of the truncations section captures details about the data losses or truncations that occurred during transformation.

< truncations > array

truncations

Name Description Schema

sourceFieldInfos
required

Information about the source field, such as the field name, id, and value is captured in this section. This section may appear more than once, whenever the target field is mapped from multiple source fields.

< sourceFieldInfos > array

targetFieldInfo
optional

Information about the target field, such as the field name, id, and value is captured in this section. It is a non-repeatable section since a new instance of the truncation section will be created for every target field.

dataLost
optional

Information lost during translation. For DATALOSS, entire sourceFieldValue will be populated to this field. For DATATRUNCATION, sourceFieldValue minus targetFieldValue will be populated to this field.

string

truncationCode
optional

Truncation Code. These are the Error Codes specific to a truncation scenario. Usually these information will be available in the standard translation specifications.

string

truncationType
required

Valid Values: TRUNCATION, DATALOSS

string

truncationDesc
optional

Truncation description.

string

sourceFieldInfos

Name Description Schema

name
required

Source field qualified path.

string

id
optional

Source field qualified id.

string

value
required

Source field value.

string

targetFieldInfo

Name Description Schema

name
required

Target field qualified path.

string

id
optional

Target field qualified id.

string

value
optional

Target field value.

string

6.7. TransformerCatalogResponse

Name Description Schema

catalog
optional

Transformation Service List

< catalog > array

catalog

Name Description Schema

sourceFormat
required

Format of the source message. Example: SWIFT

string

sourceVersion
required

Version of the source message. Example: SRG 2021

string

sourceName
required

Name of the source message. Example: MT103

string

sourceDetailedName
optional

Detailed Name of the source message. Example: Single Customer Credit Transfer

string

sourceDescription
optional

Information about the source message.

string

sourceValidations
optional

List of available validation nodes in a source message.

< sourceValidations > array

targetFormat
required

Format of the target message. Example: CBPR+

string

targetVersion
required

Version of the target message. Example: 2.0

string

targetName
required

Name of the target message. Example: pacs.008.001.08

string

targetDetailedName
optional

Detailed Name of the target message. Example: FIToFICustomerCreditTransferV08

string

targetDescription
optional

Information about the target message.

string

targetValidations
optional

List of available validation nodes in a target message.

< targetValidations > array

sourceValidations

Name Description Schema

name
required

Validation Node name

string

description
optional

Details of the validation node.

string

targetValidations

Name Description Schema

name
required

Validation Node name

string

description
optional

Details of the validation node.

string

6.8. TransformerRequest

Name Description Schema

message
required

Message to be transformed.

string

sourceFormat
required

Format of the source message. Example: SWIFT

Get accepted values by calling /v2/transformer/catalog

string

sourceVersion
required

Version of the source message. Example: SRG 2021

Get accepted values by calling /v2/transformer/catalog

string

sourceName
optional

Name of the source message. Example: MT103. This is an optional request parameter. It will be automatically identified based on the input message, if the sourceName is not specified.

Get accepted values by calling /v2/transformer/catalog

string

sourceValidations
optional

Validation nodes which needs to be executed for source message. Value should be in a CSV format. Example : Default,Validation1

Get supported validations from /v2/transformer/catalog

Note: If not present or value is null, the Default Validation node will be executed. If the value is empty String, then the parsed source message object will not be validated.

string

targetFormat
required

Format of the target message. Example: CBPR+

Get accepted values by calling /v2/transformer/catalog

string

targetVersion
required

Version of the target message. Example: 1.0

Get accepted values by calling /v2/transformer/catalog

string

targetName
optional

Name of the target message. Example: pacs.008.001.08. This is an optional request parameter. It will be automatically identified based on the input message, if the targetName is not specified.

Get accepted values by calling /v2/transformer/catalog

string

targetValidations
optional

Validation nodes which needs to be executed for target message. Value should be in a CSV format. Example : Default,Validation1

Get supported validations from /v2/transformer/catalog

Note: If not present or value is null, the Default Validation node will be executed. If the value is empty String, then the target message object will not be validated.

string

cascadeError
optional

It supports Boolean value. Default value for cascadeError is false (not present or null).

cascadeError value applies to the legs like Source leg(Parse and Validation of Source Message), Mapping leg(Transformation of Source message to Target message), and Target leg(Validation and Serialization of Target message). Within a leg, errors will always be cascaded.

If the cascadeError is set to true, then the subsequent legs will be executed even if there are any errors in the current leg. Otherwise, execution will be stopped at the current leg itself.

If all the errors are of Warn severity in the current leg, then the subsequent legs will be executed irrespective of the cascadeError value.

Irrespective of the cascadeError value, the execution will stop at the mapping leg, only if any mapping exceptions occurred with severity ERROR or Higher. Reason : In case of mapping errors the target object will be partially constructed and hence proceeding to the next step is not viable.

boolean

payloadEncoding
optional

Encoding type of the input parameters message, originalMessageValue and transformed output message. This is an optional field. Accepted Values are: Base64

Note: In case of unsupported value, input is treated as plain text.

string

includePayload
optional

Option to include the parsed message as JSON in the response. Accepted Values are: Always, Never and OnError. Default value is Never.

Note: Default value will be used, if this parameter is not present.

string

mappingOptions
optional

Option to include comma separated key value pair to control the transformation. Key and Value are case-sensitive.

Pattern : <key:value>,<key:value>

Example : ApplicationMode:I,MessagePriority:U

The mappingOptions listed below are supported as global level (for all transformers, irrespective of formats) options to control transformation results. Additionally, more number of mappingOptions are supported at the transformation level. For example, a mappingOption ApplicationMode:I is supported only in CBPR+ to SWIFT transformation. Refer to VAPI readme document for more information.

1) minifyOutput

Option to minify the transformed output by controlling the line separators and indentation (tabs). It will work only if the transformed output is of XML or JSON format.

Allowed Values: true/false

Case1: minifyOutput == true

No LineFeed and Tab (\n and \t) characters will be present in the transformed output.

Case2: minifyOutput == false OR mappingOptions == null OR minifyOutput not specified in mappingOptions.

Line Separator (\n) will be present in the transformed output.

Syntax: minifyOutput:true/false

Example: minifyOutput: true

2) ORGNLMSGNAME

Some of the mappings require original or correlation message details along with the actual message. The allowed values for originalMessageName will vary for every transformation. Refer respective mapping spec to know more about allowed values. Ex: Original message details are required in case of COV Return Message transformations.

Note: ORGNLMSGNAME and ORGNLMSGVALUE must be present together.

Syntax: ORGNLMSGNAME:Messgae_Name

Example: ORGNLMSGNAME:MT103

3) ORGNLMSGVALUE

Some of the mappings require original or correlation message details along with the actual message. This option allows users to specify the original message value for the respective original message.

Note: ORGNLMSGNAME and ORGNLMSGVALUE must be present together.

Syntax: ORGNLMSGVALUE:Message_Sample

4) suppressErrors

The suppressErrors option allows users to define the errors that should be ignored during message transformation process. Users can specify multiple error codes as comma-separated values (CSV) and enclose the key-value pair within double quotes.

In some instances, multiple error codes could be present in a single error. VAPI treats each error code individually.

If any one of the multiple error codes from the exception is specified by the user, VAPI will suppress that exception.

The order in which the user provides the error codes to be suppressed does not matter.

If multiple errors contain the same error codes, and the user provides that error code, all those errors will be suppressed.

Syntax: "suppressErrors:${errorCodes}"

Example: "suppressErrors:M50,XML125"

5) includeTruncationInfo

Option to include the data loss or truncation information along with truncation indicator, which specifies whether truncation occurred during the mapping, in the output. During ISO to MT translations data loss or truncation may occur, and to enforce VAPI to capture that information, users must pass this key-value pair.

Allowed Values: true/false

Case1: includeTruncationInfo == true

Data loss or truncation information will be captured in the transformation result.

And, the transformation result will include the truncationIndicator flag, which is set to either true or false.

Case2: includeTruncationInfo == false OR mappingOptions == null OR includeTruncationInfo not specified in mappingOptions.

Data loss or truncation information won’t be captured in the transformation result.

And, the transformation result will not include the truncationIndicator flag.

Note: This is a beta release for truncationInfo and currently it is available for some mappings such as CBPR+ -> SWIFT transformation, version SRG 2022 onwards.

Syntax: includeTruncationInfo:true/false

Example: includeTruncationInfo:true

6) ext-name

The ext-name option allows users to define the client extension name to call the configured Pre/Post Hook flows in the "mapping-info-ext.json". Users must pass this ext-name option to customize and override the default behavior of the standard mappings available in VAPI using Pre/Post hook flows.

Syntax: ext-name:Name of the client like 'GS'

Example: ext-name:GS

7) includeAdditionalErrorFields

Option to include additional fields in the error section of the VAPI response - fieldName and fieldValue.

Case 1: includeAdditionalErrorFields == false OR includeAdditionalErrorFields not specified in mappingOptions

By default, only the fieldId will be generated, if available. In this case, fieldName and fieldValue will not be included in the response.

Case 2: includeAdditionalErrorFields == true

Along with fieldId, fieldName and fieldValue will also be generated, if available, making it easier for users to identify the field associated with the error.

fieldId: Field id that uniquely identifies the field. This is the qualified name with indexes for repeatable sections included.

fieldName: Field name that uniquely identifies the field, excluding specific instances of repeatable sections. This is the qualified name without indexes, indicating the field’s location without specifying its occurrence in repeatable sections.

fieldValue: The value assigned to the field.

Note: These are optional fields. They will only be included in the response if the exception contains this information. This updated error response structure is supported in both REST and JAVA APIs.

Syntax: includeAdditionalErrorFields:true/false

Example: includeAdditionalErrorFields:true

string

originalMessageName
optional

Name of the original message. Example: MT202COV

To handle COV Return messages, transformer service requires original or correlation message details.

The allowed values for originalMessageName will vary for every transformation. Refer respective mapping spec to know more about allowed values.

This input is only required in case of COV Return Message transformations.

Note: originalMessageName & originalMessageValue must be present together.

string

originalMessageValue
optional

Original message value.

To handle COV Return messages, transformer service requires original or correlation message details.

This option allows users to specify the original message value for COV Return message transformation.

If payloadEncoding is set to Base64, then originalMessageValue needs to be in Base64 format.

Note: originalMessageName & originalMessageValue must be present together.

string

6.9. TransformerResponse

Name Description Schema

success
required

Status of the transformation. It’s a boolean flag. On successful transformation, success flag will be set to true otherwise false.

boolean

sourceFormat
optional

Format of the source message. Example: SWIFT

Available only if the input sourceName is not specified.

string

sourceVersion
optional

Version of the source message. Example: SRG 2021

Available only if the input sourceName is not specified.

string

sourceName
optional

Name of the source message. Example: MT103

Available only if the input sourceName is not specified.

string

targetFormat
optional

Format of the target message. Example: CBPR+

string

targetVersion
optional

Version of the target message. Example: 2.1

string

targetName
optional

Name of the target message. Example: pacs.008.001.08

string

messageId
required

Unique Id of the Input message.

string

errors
optional

Created only if value of success is "false". In case of errors having severity as "warn", success value remains "true".

< errors > array

additionalInfo
optional

AdditionalInfo provides more details about the execution of message transformation service. It contains name and value pairs to provide details like data loss, etc.

< additionalInfo > array

output
optional

Transformed output message. This field will be set only if the transformation produces a single output.

string

outputs
optional

This section will be set, if the transformation produces multiple outputs. It’s a repeatable section. Each occurrence of the outputs section represents a transformed output message and its properties through which the user can trace the source message from which this output is prepared.

< outputs > array

parsedPayload
optional

Input Parsed Message as JSON in the response.

string

truncationInfo
optional

This section captures truncation or data loss information.

errors

Name Description Schema

code
required

Indicates the error type. Internal error codes are used in the case where standard error codes are not applicable

string

message
required

Description of the error

string

severity
required

Severity of the error. Values: fatal, error, warn

string

line
optional

Line in which the error occured

integer (int32)

column
optional

Position in the error line

integer (int32)

fieldId
optional

Field id that uniquely identifies the field. This is the qualified name with indexes for sections included.

string

fieldName
optional

Field name that uniquely identifies the field, excluding specific instances of repeatable sections. This is the qualified name without indexes, indicating the field’s location without specifying its occurrence in repeatable sections.

string

fieldValue
optional

The value assigned to the field.

string

validation
optional

Name of the validation node. This field will present only for the validation errors.

string

additionalInfo

Name Description Schema

name
required

Name of the property. Ex: truncationIndicator

string

value
required

Value of the property. Value is always a String type. Ex: true/false.

string

outputs

Name Description Schema

content
required

Transformed output message.

string

properties
optional

Few properties (name and value pairs) are associated with each output message for traceability purposes. Like,

  1. messageIndex: Zero based index of the source message from which this output is prepared. Value starts with '0'.

  2. sequenceNo: One based sequential index of the output message for a given source message. Numerical value increased incrementally for each message set. This number starts with value '1'.

    • Ex: In case of TARGET2 Securities camt.053.001.08 to TARGET2 MT MT940 transformation, a single statement section can split into multiple MT940s. In this case, sequenceNo is used to determine the sequence or order of the MT940 messages.

  3. messageId: Unique identification, to unambiguously identify the source message from which this output is prepared.

< properties > array

properties

Name Description Schema

name
required

Name of the property. Ex: messageIndex

string

value
required

Value of the property.

string

truncationInfo

Name Description Schema

truncations
optional

It’s a repeatable section. Each occurrence of the truncations section captures details about the data losses or truncations that occurred during transformation.

< truncations > array

truncations

Name Description Schema

sourceFieldInfos
required

Information about the source field, such as the field name, id, and value is captured in this section. This section may appear more than once, whenever the target field is mapped from multiple source fields.

< sourceFieldInfos > array

targetFieldInfo
optional

Information about the target field, such as the field name, id, and value is captured in this section. It is a non-repeatable section since a new instance of the truncation section will be created for every target field.

dataLost
optional

Information lost during translation. For DATALOSS, entire sourceFieldValue will be populated to this field. For DATATRUNCATION, sourceFieldValue minus targetFieldValue will be populated to this field.

string

truncationCode
optional

Truncation Code. These are the Error Codes specific to a truncation scenario. Usually these information will be available in the standard translation specifications.

string

truncationType
required

Valid Values: TRUNCATION, DATALOSS

string

truncationDesc
optional

Truncation description.

string

sourceFieldInfos

Name Description Schema

name
required

Source field qualified path.

string

id
optional

Source field qualified id.

string

value
required

Source field value.

string

targetFieldInfo

Name Description Schema

name
required

Target field qualified path.

string

id
optional

Target field qualified id.

string

value
optional

Target field value.

string

6.10. ValidatorCatalogResponse

Name Description Schema

catalog
optional

Validation Service List

< catalog > array

catalog

Name Description Schema

format
required

Format of the message. Example: SWIFT

string

version
required

Version of the message. Example: SRG 2021

string

category
required

Category name where the messageType is grouped.

string

name
required

Name of the message. Example: MT103

string

detailedName
optional

Detailed Name of the message. Example: Single Customer Credit Transfer

string

description
optional

Information about the message.

string

validations
optional

List of available validation nodes

< validations > array

validations

Name Description Schema

name
required

Validation Node name.

string

description
optional

Details of the validation node.

string

6.11. ValidatorRequest

Name Description Schema

message
required

Message to be validated

string

format
required

Format of the input message. Example: SWIFT

Get accepted values by calling /v2/validator/catalog

string

version
required

Version of the input message. Example: SRG 2021

Get accepted values by calling /v2/validator/catalog

string

name
required

Name of the input message. Example: MT103

Get accepted values by calling /v2/validator/catalog

string

validations
optional

Validation nodes which needs to be executed. Value should be in a CSV format. Example: Default,Validation1

Get supported validations from /v2/validator/catalog

Note: If not present or value is null, the Default Validation node will be executed. If the value is empty String, then the parsed message object will not be validated.

string

payloadEncoding
optional

Encoding type of the input message. This is an optional field. Accepted Values are: Base64

Note: In case of unsupported value, input is treated as plain text.

string

includePayload
optional

Option to include the parsed message as JSON in the response. Accepted Values are: Always, Never and OnError. Default value is Never.

Note: Default value will be used, if this parameter is not present.

string

validatorOptions
optional

Option to include comma separated key value pair to control the validation process. Key and Value are case-sensitive.

Pattern : <key:value>,<key:value>

Example : appHdrMandatory:true

The validatorOptions listed below are supported as global level (for all validators, irrespective of formats) options to control validation results.

1) appHdrMandatory

Option to make the AppHdr mandatory in case the user wishes to validate CBPR+ format messages.

Allowed Values: true/false

Case1: appHdrMandatory== true

appHdr must me available in the input message otherwise exception will be thrown as part of validation result.

Case2: appHdrMandatory == false OR validatorOptions == null OR appHdrMandatory not specified in validatorOptions.

appHdr is optional in the input message. No exception will be thrown if the input message doesn’t contain AppHdr.

Note: The appHdrMandatory property should not be set to true when validating the CBPR+ head.001.001.02 message because the entire input serves as the Payload for this message.

Syntax: appHdrMandatory:true/false

Example: appHdrMandatory:true.

2) suppressErrors

The suppressErrors option allows users to define the errors that should be ignored during message validation process. Users can specify multiple error codes as comma-separated values (CSV) and enclose the key-value pair within double quotes.

In some instances, multiple error codes could be present in a single error. VAPI treats each error code individually.

If any one of the multiple error codes from the exception is specified by the user, VAPI will suppress that exception.

The order in which the user provides the error codes to be suppressed does not matter.

If multiple errors contain the same error codes, and the user provides that error code, all those errors will be suppressed.

Syntax: "suppressErrors:${errorCodes}"

Example: "suppressErrors:M50,XML125"

3) ext-name

The ext-name option allows users to define the client extension name to call the configured Pre/Post Hook flows in the "message-info-ext.json". Users must pass this ext-name option to customize and override the default behavior of the standard validators available in VAPI using Pre/Post hook flows.

Syntax: ext-name:Name of the client like 'GS'

Example: ext-name:GS

4) includeAdditionalErrorFields

Option to include additional fields in the error section of the VAPI response - fieldName and fieldValue.

Case 1: includeAdditionalErrorFields == false OR includeAdditionalErrorFields not specified in mappingOptions

By default, only the fieldId will be generated, if available. In this case, fieldName and fieldValue will not be included in the response.

Case 2: includeAdditionalErrorFields == true

Along with fieldId, fieldName and fieldValue will also be generated, if available, making it easier for users to identify the field associated with the error.

fieldId: Field id that uniquely identifies the field. This is the qualified name with indexes for repeatable sections included.

fieldName: Field name that uniquely identifies the field, excluding specific instances of repeatable sections. This is the qualified name without indexes, indicating the field’s location without specifying its occurrence in repeatable sections.

fieldValue: The value assigned to the field.

Note: These are optional fields. They will only be included in the response if the exception contains this information. This updated error response structure is supported in both REST and JAVA APIs.

Syntax: includeAdditionalErrorFields:true/false

Example: includeAdditionalErrorFields:true

string

6.12. ValidatorResponse

Name Description Schema

success
required

Status of the validation. It’s a boolean flag. On successful validation, success flag will be set to true otherwise false.

boolean

messageId
required

Unique Id of the Input message.

string

errors
optional

Created only if value of success is "false". In case of errors having severity as "warn", success value remains "true".

< errors > array

parsedPayload
optional

Input Parsed Message as JSON in the response.

string

errors

Name Description Schema

code
required

Indicates the error type. Internal error codes are used in the case where standard error codes are not applicable

string

message
required

Description of the error

string

severity
required

Severity of the error. Values: fatal, error, warn

string

line
optional

Line in which the error occured

integer (int32)

column
optional

Position in the error line

integer (int32)

fieldId
optional

Field id that uniquely identifies the field. This is the qualified name with indexes for sections included.

string

fieldName
optional

Field name that uniquely identifies the field, excluding specific instances of repeatable sections. This is the qualified name without indexes, indicating the field’s location without specifying its occurrence in repeatable sections.

string

fieldValue
optional

The value assigned to the field.

string

validation
optional

Name of the validation node. This field will present only for the validation errors.

string