Migration Guide
This guide outlines the changes you should expect when migrating from to ODS Inquiry API V3 from V2.
See the full detailed list of changes compared to V2 for more detailed information.
Specification Changes
The V3 Inquiry API was introduced to consolidate all four views/summaries endpoints to one, with journeyType becoming a search parameter rather than a url parameter.
The following changes have been made:
-
All endpoints have been updated to have a path beginning with
/api/v3. For example:-
/api/v2/views/details/{unitOfWorkId}→/api/v3/views/details/{unitOfWorkId} -
/api/v2/catalogue/process-objects/message-logs→/api/v3/catalogue/process-objects/message-logs -
etc.
-
-
The four
/views/summaries/search endpoints have been unified. Previously, these four API endpoints had journeyType as a url parameter, now it is a query parameter. For example:-
/api/v2/views/summaries/payments→/api/v3/views/summaries?journeyType=PAYMENT -
/api/v2/views/summaries/recalls→/api/v3/views/summaries?journeyType=RECALL
-
-
Which means these endpoints have been removed:
-
/views/summaries/payments -
/views/summaries/recalls -
/views/summaries/batches -
/views/summaries/bulks
-
-
The response class for all
/api/v3/all/mds-objectsand/api/v3/catalogue/mds-objects/endpoints has changed toMdsObjectSearchItem, removing the use of the distinct classes:-
MdsObjectSearchItem -
Pacs008FIToFICustomerCreditTransferMdsSearchItem -
Pacs008CreditTransferTransactionMdsSearchItem -
Pacs002FIToFIPaymentStatusReportMdsSearchItem -
Pacs002OriginalGroupHeaderMdsSearchItem -
Pacs002PaymentTransactionMdsSearchItem -
Pacs004PaymentReturnMdsSearchItem -
Pacs004PaymentTransactionMdsSearchItem -
Pacs009FinancialInstitutionCreditTransferMdsSearchItem -
Pacs009CreditTransferTransactionMdsSearchItem -
Pacs028FIToFIPaymentStatusRequestMdsSearchItem -
Pacs028OriginalGroupInformationMdsSearchItem -
Pacs028PaymentTransactionMdsSearchItem -
Pain001CustomerCreditTransferInitiationMdsSearchItem -
Pain001PaymentInstructionMdsSearchItem -
Pain001CreditTransferTransactionMdsSearchItem -
Pain002CustomerPaymentStatusReportMdsSearchItem -
Pain002OriginalPaymentInstructionMdsSearchItem -
Pain002PaymentTransactionMdsSearchItem -
Camt027ClaimNonReceiptMdsSearchItem -
Camt029ResolutionOfInvestigationMdsSearchItem -
Camt029PaymentTransactionWithResolutionMdsSearchItem -
Camt029UnderlyingTransactionMdsSearchItem -
Camt054BankToCustomerDebitCreditNotificationMdsSearchItem -
Camt054AccountNotificationMdsSearchItem -
Camt056FIToFIPaymentCancellationRequestMdsSearchItem -
Camt056PaymentTransactionMdsSearchItem -
Camt056UnderlyingTransactionMdsSearchItem -
Camt087RequestToModifyPaymentMdsSearchItem
-
-
The structure and response of the API remain consistent with the V2 implementation. This affects the following endpoints:
-
/api/v3/all/mds-objects -
/api/v3/all/mds-objects/{odsObjectId} -
/api/v3/all/mds-objects/{mdsObjectId}/history -
/api/v3/catalogue/mds-objects/PACS_008 -
/api/v3/catalogue/mds-objects/PACS_008_CREDIT_TRANSFER_TRANSACTION -
/api/v3/catalogue/mds-objects/PACS_002 -
/api/v3/catalogue/mds-objects/PACS_002_ORIGINAL_GROUP_HEADER -
/api/v3/catalogue/mds-objects/PACS_002_PAYMENT_TRANSACTION -
/api/v3/catalogue/mds-objects/PACS_004 -
/api/v3/catalogue/mds-objects/PACS_004_PAYMENT_TRANSACTION -
/api/v3/catalogue/mds-objects/PACS_009 -
/api/v3/catalogue/mds-objects/PACS_009_CREDIT_TRANSFER_TRANSACTION -
/api/v3/catalogue/mds-objects/PACS_028 -
/api/v3/catalogue/mds-objects/PACS_028_ORIGINAL_GROUP_INFORMATION -
/api/v3/catalogue/mds-objects/PACS_028_PAYMENT_TRANSACTION -
/api/v3/catalogue/mds-objects/PAIN_001 -
/api/v3/catalogue/mds-objects/PAIN_001_PAYMENT_INSTRUCTION -
/api/v3/catalogue/mds-objects/PAIN_001_CREDIT_TRANSFER_TRANSACTION -
/api/v3/catalogue/mds-objects/PAIN_002 -
/api/v3/catalogue/mds-objects/PAIN_002_ORIGINAL_PAYMENT_INSTRUCTION -
/api/v3/catalogue/mds-objects/PAIN_002_PAYMENT_TRANSACTION -
/api/v3/catalogue/mds-objects/CAMT_027 -
/api/v3/catalogue/mds-objects/CAMT_029 -
/api/v3/catalogue/mds-objects/CAMT_029_PAYMENT_TRANSACTION_WITH_RESOLUTION -
/api/v3/catalogue/mds-objects/CAMT_029_UNDERLYING_TRANSACTION -
/api/v3/catalogue/mds-objects/CAMT_054 -
/api/v3/catalogue/mds-objects/CAMT_054_ACCOUNT_NOTIFICATION -
/api/v3/catalogue/mds-objects/CAMT_056 -
/api/v3/catalogue/mds-objects/CAMT_056_PAYMENT_TRANSACTION -
/api/v3/catalogue/mds-objects/CAMT_056_UNDERLYING_TRANSACTION -
/api/v3/catalogue/mds-objects/CAMT_087
-
Dependency Changes
All code related to ODS Inquiry API V3 now lives under different maven coordinates to the V1 and V2 APIs; The groupId has changed to com.iconsolutions.ipf.ods.inquiry.v3, and all artifactIds are now prefixed with ipf, e.g. ods-inquiry-api becomes ipf-ods-inquiry-api.
Below is the full list of dependencies you can expect to be using:
<dependency>
<groupId>com.iconsolutions.ipf.ods.inquiry.v3</groupId>
<artifactId>ipf-ods-inquiry-api</artifactId>
</dependency>
<dependency>
<groupId>com.iconsolutions.ipf.ods.inquiry.v3</groupId>
<artifactId>ipf-ods-inquiry-client-api</artifactId>
</dependency>
<dependency>
<groupId>com.iconsolutions.ipf.ods.inquiry.v3</groupId>
<artifactId>ipf-ods-inquiry-client-connector</artifactId>
</dependency>
Package Changes
All code related to ODS Inquiry API V3, both generated and non-generated, lives in its own v3 package.
Anything previously under com.iconsolutions.ipf.ods.inquiry.* now lives under com.iconsolutions.ipf.ods.inquiry.v3.*.
Type names are mostly unchanged, with an exception in the client connector outlined below in Client Connector Changes, which means a search-replace of the package should get you most of the way there with a migration.
Model Changes
All generated code is generated into the package com.iconsolutions.ipf.ods.inquiry.v3.model.*.
When migrating from V2 in one go, you can search and replace all usages of com.iconsolutions.ipf.ods.inquiry.\* packages and replace them with the v3 equivalent.
These types became stricter, where fields were made non-null:
| Type | Fields Made Non-Null |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
These types gained new fields compared to the V2 equivalent:
| Type | Fields Added |
|---|---|
|
|
|
|
|
|
|
|
These types lost fields compared to the V2 equivalent:
| Type | Fields Removed |
|---|---|
|
|
|
|
|
|
These types contain fields that changed type compared to the V2 equivalent:
| Type | Fields Changed |
|---|---|
|
|
Client Connector Changes
Previously, usages of the inquiry connector client would need to be migrated all at once, but it is now possible to run both the v2 client connectors, and the v3 client connectors together, which means migration can be more gradual. Simply depend on the v3 client connectors in addition to the v2 client connectors.
| Type | Notes |
|---|---|
|
The client request types |