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:
OpenAPI : Volante API Services
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 |
Message data in JSON format to convert to native format. |
string |
Query |
format |
Format of the input message. Example: SWIFT Get accepted values by calling /v2/construct/catalog |
string |
Query |
version |
Version of the input message. Example: SRG 2021 Get accepted values by calling /v2/construct/catalog |
string |
Query |
name |
Name of the input message. Example: MT103 Get accepted values by calling /v2/construct/catalog |
string |
Query |
validations |
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 |
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 |
Format of the input message. Example: SWIFT Get accepted values by calling /v2/construct/catalog |
string |
Query |
version |
Version of the input message. Example: SRG 2021 Get accepted values by calling /v2/construct/catalog |
string |
Query |
name |
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 |
Clearing specific input message. |
string |
Query |
sourceFormat |
Format of the source message. Example: CBPR+ Get accepted values by calling /v2/creator/catalog |
string |
Query |
sourceVersion |
Version of the source message. Example: 2.1 Get accepted values by calling /v2/creator/catalog |
string |
Query |
sourceName |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Volante Standard input message. |
string |
Query |
sourceVersion |
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 |
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 |
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 |
Format of the target message. Example: CBPR+ Get accepted values by calling /v2/creator/catalog |
string |
Query |
targetVersion |
Version of the target message. Example: 2.0 Get accepted values by calling /v2/creator/catalog |
string |
Query |
targetName |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Message to be transformed. |
string |
Query |
sourceFormat |
Format of the source message. Example: SWIFT Get accepted values by calling /v2/transformer/catalog |
string |
Query |
sourceVersion |
Version of the source message. Example: SRG 2021 Get accepted values by calling /v2/transformer/catalog |
string |
Query |
sourceName |
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 |
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 |
Format of the target message. Example: CBPR+ Get accepted values by calling /v2/transformer/catalog |
string |
Query |
targetVersion |
Version of the target message. Example: 2.1 Get accepted values by calling /v2/transformer/catalog |
string |
Query |
targetName |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Message to be validated. |
string |
Query |
format |
Format of the input message. Example: SWIFT Get accepted values by calling /v2/validator/catalog |
string |
Query |
version |
Version of the input message. Example: SRG 2021 Get accepted values by calling /v2/validator/catalog |
string |
Query |
name |
Name of the input message. Example: MT103 Get accepted values by calling /v2/validator/catalog |
string |
Query |
validations |
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 |
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 |
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 |
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 |
OrganizationID of the current user. |
string |
orgName |
Organization name of the current user. |
string |
userId |
UserID of the current User |
string |
userEmail |
UserEmail of the current User |
string |
userFirstName |
First name of the current user |
string |
userLastName |
Last name of the current user |
string |
startDate |
Start date of the subscription. |
string |
endDate |
End date of the subscription. |
string |
6.2. ErrorResponse
Name | Description | Schema |
---|---|---|
success |
Always the value is set to 'False' |
boolean |
errors |
< errors > array |
errors
Name | Description | Schema |
---|---|---|
code |
Status code of the rest response |
string |
message |
Description of the error |
string |
severity |
Severity of the error. Values: fatal, error, warn |
string |
6.3. ConstructorCatalogResponse
Name | Description | Schema |
---|---|---|
catalog |
Validation Service List |
< catalog > array |
catalog
Name | Description | Schema |
---|---|---|
format |
Format of the message. Example: SWIFT |
string |
version |
Version of the message. Example: SRG 2021 |
string |
category |
Category name where the messageType is grouped. |
string |
name |
Name of the message. Example: MT103 |
string |
detailedName |
Detailed Name of the message. Example: Single Customer Credit Transfer |
string |
description |
Information about the message. |
string |
validations |
List of available validation nodes |
< validations > array |
validations
Name | Description | Schema |
---|---|---|
name |
Validation Node name. |
string |
description |
Details of the validation node. |
string |
6.4. ConstructorResponse
Name | Description | Schema |
---|---|---|
success |
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 |
Unique Id of the Input message. |
string |
errors |
Created only if value of success is "false". In case of errors having severity as "warn", success value remains "true". |
< errors > array |
output |
Output native format message. |
string |
errors
Name | Description | Schema |
---|---|---|
code |
Indicates the error type. Internal error codes are used in the case where standard error codes are not applicable |
string |
message |
Description of the error |
string |
severity |
Severity of the error. Values: fatal, error, warn |
string |
line |
Line in which the error occured |
integer (int32) |
column |
Position in the error line |
integer (int32) |
fieldId |
Field id that uniquely identifies the field. This is the qualified name with indexes for sections included. |
string |
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. |
string |
fieldValue |
The value assigned to the field. |
string |
validation |
Name of the validation node. This field will present only for the validation errors. |
string |
6.5. CreatorCatalogResponse
Name | Description | Schema |
---|---|---|
catalog |
Transformation Service List |
< catalog > array |
catalog
Name | Description | Schema |
---|---|---|
sourceFormat |
Format of the source message. Example: SWIFT |
string |
sourceVersion |
Version of the source message. Example: SRG 2021 |
string |
sourceName |
Name of the source message. Example: MT103 |
string |
sourceDetailedName |
Detailed Name of the source message. Example: Single Customer Credit Transfer |
string |
sourceDescription |
Information about the source message. |
string |
sourceValidations |
List of available validation nodes in a source message. |
< sourceValidations > array |
targetFormat |
Format of the target message. Example: CBPR+ |
string |
targetVersion |
Version of the target message. Example: 2.0 |
string |
targetName |
Name of the target message. Example: pacs.008.001.08 |
string |
targetDetailedName |
Detailed Name of the target message. Example: FIToFICustomerCreditTransferV08 |
string |
targetDescription |
Information about the target message. |
string |
targetValidations |
List of available validation nodes in a target message. |
< targetValidations > array |
sourceValidations
Name | Description | Schema |
---|---|---|
name |
Validation Node name |
string |
description |
Details of the validation node. |
string |
targetValidations
Name | Description | Schema |
---|---|---|
name |
Validation Node name |
string |
description |
Details of the validation node. |
string |
6.6. CreatorResponse
Name | Description | Schema |
---|---|---|
success |
Status of the creation. It’s a boolean flag. On successful creation, success flag will be set to true otherwise false. |
boolean |
sourceFormat |
Format of the source message. Example: Volante Standard Available only if the input sourceName is not specified. |
string |
sourceVersion |
Version of the source message. Example: 1.0 Available only if the input sourceName is not specified. |
string |
sourceName |
Name of the source message. Example: FIToFICustomerCreditTransfer Available only if the input sourceName is not specified. |
string |
targetFormat |
Format of the target message. Example: CBPR+ |
string |
targetVersion |
Version of the target message. Example: 2.0 |
string |
targetName |
Name of the target message. Example: pacs.008.001.08 |
string |
messageId |
Unique Id of the Input message. |
string |
errors |
Created only if value of success is "false". In case of errors having severity as "warn", success value remains "true". |
< errors > array |
additionalInfo |
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 |
Creator output message. This field will be set only if the message creation produces a single output. |
string |
outputs |
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 |
Input Parsed Message as JSON in the response. |
string |
truncationInfo |
This section captures truncation or data loss information. |
errors
Name | Description | Schema |
---|---|---|
code |
Indicates the error type. Internal error codes are used in the case where standard error codes are not applicable |
string |
message |
Description of the error |
string |
severity |
Severity of the error. Values: fatal, error, warn |
string |
line |
Line in which the error occured |
integer (int32) |
column |
Position in the error line |
integer (int32) |
fieldId |
Field id that uniquely identifies the field. This is the qualified name with indexes for sections included. |
string |
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. |
string |
fieldValue |
The value assigned to the field. |
string |
validation |
Name of the validation node. This field will present only for the validation errors. |
string |
additionalInfo
Name | Description | Schema |
---|---|---|
name |
Name of the property. Ex: truncationIndicator |
string |
value |
Value of the property. Value is always a String type. Ex: true/false. |
string |
outputs
Name | Description | Schema |
---|---|---|
content |
Creator output message. |
string |
properties |
Few properties (name and value pairs) are associated with each output message for traceability purposes. Like,
|
< properties > array |
properties
Name | Description | Schema |
---|---|---|
name |
Name of the property. Ex: messageIndex |
string |
value |
Value of the property. |
string |
truncationInfo
Name | Description | Schema |
---|---|---|
truncations |
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 |
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 |
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 |
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 |
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 |
Valid Values: TRUNCATION, DATALOSS |
string |
truncationDesc |
Truncation description. |
string |
sourceFieldInfos
Name | Description | Schema |
---|---|---|
name |
Source field qualified path. |
string |
id |
Source field qualified id. |
string |
value |
Source field value. |
string |
targetFieldInfo
Name | Description | Schema |
---|---|---|
name |
Target field qualified path. |
string |
id |
Target field qualified id. |
string |
value |
Target field value. |
string |
6.7. TransformerCatalogResponse
Name | Description | Schema |
---|---|---|
catalog |
Transformation Service List |
< catalog > array |
catalog
Name | Description | Schema |
---|---|---|
sourceFormat |
Format of the source message. Example: SWIFT |
string |
sourceVersion |
Version of the source message. Example: SRG 2021 |
string |
sourceName |
Name of the source message. Example: MT103 |
string |
sourceDetailedName |
Detailed Name of the source message. Example: Single Customer Credit Transfer |
string |
sourceDescription |
Information about the source message. |
string |
sourceValidations |
List of available validation nodes in a source message. |
< sourceValidations > array |
targetFormat |
Format of the target message. Example: CBPR+ |
string |
targetVersion |
Version of the target message. Example: 2.0 |
string |
targetName |
Name of the target message. Example: pacs.008.001.08 |
string |
targetDetailedName |
Detailed Name of the target message. Example: FIToFICustomerCreditTransferV08 |
string |
targetDescription |
Information about the target message. |
string |
targetValidations |
List of available validation nodes in a target message. |
< targetValidations > array |
sourceValidations
Name | Description | Schema |
---|---|---|
name |
Validation Node name |
string |
description |
Details of the validation node. |
string |
targetValidations
Name | Description | Schema |
---|---|---|
name |
Validation Node name |
string |
description |
Details of the validation node. |
string |
6.8. TransformerRequest
Name | Description | Schema |
---|---|---|
message |
Message to be transformed. |
string |
sourceFormat |
Format of the source message. Example: SWIFT Get accepted values by calling /v2/transformer/catalog |
string |
sourceVersion |
Version of the source message. Example: SRG 2021 Get accepted values by calling /v2/transformer/catalog |
string |
sourceName |
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 |
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 |
Format of the target message. Example: CBPR+ Get accepted values by calling /v2/transformer/catalog |
string |
targetVersion |
Version of the target message. Example: 1.0 Get accepted values by calling /v2/transformer/catalog |
string |
targetName |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Status of the transformation. It’s a boolean flag. On successful transformation, success flag will be set to true otherwise false. |
boolean |
sourceFormat |
Format of the source message. Example: SWIFT Available only if the input sourceName is not specified. |
string |
sourceVersion |
Version of the source message. Example: SRG 2021 Available only if the input sourceName is not specified. |
string |
sourceName |
Name of the source message. Example: MT103 Available only if the input sourceName is not specified. |
string |
targetFormat |
Format of the target message. Example: CBPR+ |
string |
targetVersion |
Version of the target message. Example: 2.1 |
string |
targetName |
Name of the target message. Example: pacs.008.001.08 |
string |
messageId |
Unique Id of the Input message. |
string |
errors |
Created only if value of success is "false". In case of errors having severity as "warn", success value remains "true". |
< errors > array |
additionalInfo |
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 |
Transformed output message. This field will be set only if the transformation produces a single output. |
string |
outputs |
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 |
Input Parsed Message as JSON in the response. |
string |
truncationInfo |
This section captures truncation or data loss information. |
errors
Name | Description | Schema |
---|---|---|
code |
Indicates the error type. Internal error codes are used in the case where standard error codes are not applicable |
string |
message |
Description of the error |
string |
severity |
Severity of the error. Values: fatal, error, warn |
string |
line |
Line in which the error occured |
integer (int32) |
column |
Position in the error line |
integer (int32) |
fieldId |
Field id that uniquely identifies the field. This is the qualified name with indexes for sections included. |
string |
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. |
string |
fieldValue |
The value assigned to the field. |
string |
validation |
Name of the validation node. This field will present only for the validation errors. |
string |
additionalInfo
Name | Description | Schema |
---|---|---|
name |
Name of the property. Ex: truncationIndicator |
string |
value |
Value of the property. Value is always a String type. Ex: true/false. |
string |
outputs
Name | Description | Schema |
---|---|---|
content |
Transformed output message. |
string |
properties |
Few properties (name and value pairs) are associated with each output message for traceability purposes. Like,
|
< properties > array |
properties
Name | Description | Schema |
---|---|---|
name |
Name of the property. Ex: messageIndex |
string |
value |
Value of the property. |
string |
truncationInfo
Name | Description | Schema |
---|---|---|
truncations |
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 |
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 |
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 |
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 |
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 |
Valid Values: TRUNCATION, DATALOSS |
string |
truncationDesc |
Truncation description. |
string |
sourceFieldInfos
Name | Description | Schema |
---|---|---|
name |
Source field qualified path. |
string |
id |
Source field qualified id. |
string |
value |
Source field value. |
string |
targetFieldInfo
Name | Description | Schema |
---|---|---|
name |
Target field qualified path. |
string |
id |
Target field qualified id. |
string |
value |
Target field value. |
string |
6.10. ValidatorCatalogResponse
Name | Description | Schema |
---|---|---|
catalog |
Validation Service List |
< catalog > array |
catalog
Name | Description | Schema |
---|---|---|
format |
Format of the message. Example: SWIFT |
string |
version |
Version of the message. Example: SRG 2021 |
string |
category |
Category name where the messageType is grouped. |
string |
name |
Name of the message. Example: MT103 |
string |
detailedName |
Detailed Name of the message. Example: Single Customer Credit Transfer |
string |
description |
Information about the message. |
string |
validations |
List of available validation nodes |
< validations > array |
validations
Name | Description | Schema |
---|---|---|
name |
Validation Node name. |
string |
description |
Details of the validation node. |
string |
6.11. ValidatorRequest
Name | Description | Schema |
---|---|---|
message |
Message to be validated |
string |
format |
Format of the input message. Example: SWIFT Get accepted values by calling /v2/validator/catalog |
string |
version |
Version of the input message. Example: SRG 2021 Get accepted values by calling /v2/validator/catalog |
string |
name |
Name of the input message. Example: MT103 Get accepted values by calling /v2/validator/catalog |
string |
validations |
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 |
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 |
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 |
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 |
Status of the validation. It’s a boolean flag. On successful validation, success flag will be set to true otherwise false. |
boolean |
messageId |
Unique Id of the Input message. |
string |
errors |
Created only if value of success is "false". In case of errors having severity as "warn", success value remains "true". |
< errors > array |
parsedPayload |
Input Parsed Message as JSON in the response. |
string |
errors
Name | Description | Schema |
---|---|---|
code |
Indicates the error type. Internal error codes are used in the case where standard error codes are not applicable |
string |
message |
Description of the error |
string |
severity |
Severity of the error. Values: fatal, error, warn |
string |
line |
Line in which the error occured |
integer (int32) |
column |
Position in the error line |
integer (int32) |
fieldId |
Field id that uniquely identifies the field. This is the qualified name with indexes for sections included. |
string |
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. |
string |
fieldValue |
The value assigned to the field. |
string |
validation |
Name of the validation node. This field will present only for the validation errors. |
string |