Inquiry API V3 Migration Guide
Specification Changes from V2
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 toMdsObjectSearchItem2, 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
-
Migrating Client Connectors
The ods-inquiry-client module has been updated to support both V1, V2 and V3 Inquiry APIs.
The default configuration (ods.inquiry.client.version=2) enables the instantiation of the V2 Inquiry Client APIs and needs to be explicitly overridden for V3 Inquiry Client APIs.
If you want to migrate to the V3 client APIs, your configuration must be updated to override the client version configuration as follows: ods.inquiry.client.version=3This will ensure the V3 client APIs can be enabled and a code change will be required. See V3 Inquiry API client documentation for more information on the V3 client APIs that can be enabled. |
The available V3 Client APIs are listed below.
Client API configuration lives under ods.inquiry.client, and all properties listed below must be prefixed with this.
| Property | Default | Notes |
|---|---|---|
|
|
Enable the |
|
|
Enable the |
|
|
Enable the |
|
|
Enable the |
|
|
Enable the |
|
|
Enable the |
|
|
Enable the |
Client Connector Changes from V2
There are differences from the set of V2 beans:
| V2 Bean | Replacement V3 Bean | Notes | New required fields | Changed fields |
|---|---|---|---|---|
Summaries |
SummariesV3 |
|
|
The |
ProcessObjects |
ProcessObjectsV3 |
- |
- |
- |
PdsObjects |
PdsObjectsV3 |
|
|
- |
MdsObjects |
MdsObjectsV3 |
|
|
- |
Details |
DetailsV3 |
|
- |
- |
Migrating Test Client
The ods-inquiry-test-client module has been updated to support V1, V2 and V3 Inquiry APIs.
Similar to the Client APIs, a new set of V3 Test Client APIs are available via the InquiryClientV3 interface.
Usage
Both the V1, V2 and V3 Test Clients can be used at the same time.
If you are migrating from V2 to V3, you will need to update your test suite to use the InquiryClientV3 interface.
The InquiryClient method createInquiryClientV3 will return a default instance of the InquiryClientV3 interface.
@Configuration
class TestClientConfig {
@Bean
InquiryClient inquiryClient(@Value("${inquiry.base.url}") final String baseUrl,
@Value("${inquiry.openapi-validation.enabled}") final boolean openApiValidation,
final CurrentAuthToken currentAuthToken) {
return InquiryClient.createInquiryClient(InquiryClientOptions.builder()
.baseUrl(baseUrl)
.currentAuthToken(currentAuthToken)
.requestTimeout(Duration.ofSeconds(60))
.openApiValidation(openApiValidation)
.build());
}
@Bean
InquiryClientV2 inquiryClientV2(@Value("${inquiry.base.url}") final String baseUrl,
@Value("${inquiry.openapi-validation.enabled}") final boolean openApiValidation,
final CurrentAuthToken currentAuthToken) {
return InquiryClient.createInquiryClientV2(InquiryClientOptions.builder()
.baseUrl(baseUrl)
.currentAuthToken(currentAuthToken)
.requestTimeout(Duration.ofSeconds(60))
.openApiValidation(openApiValidation)
.build());
}
@Bean
InquiryClientV3 inquiryClientV3(@Value("${inquiry.base.url}") final String baseUrl,
@Value("${inquiry.openapi-validation.enabled}") final boolean openApiValidation,
final CurrentAuthToken currentAuthToken) {
return InquiryClient.createInquiryClientV3(InquiryClientOptions.builder()
.baseUrl(baseUrl)
.currentAuthToken(currentAuthToken)
.requestTimeout(Duration.ofSeconds(60))
.openApiValidation(openApiValidation)
.build());
}
}
Test Client Changes from V2
The difference between the V2 and V3 Test Client APIs is as follows:
-
All APIs have been updated to utilise the V3 Inquiry API specification
-
The
Details,MdsObjects,MessageLogs,PdsObjects,ProcessFlowDefinitions,ProcessFlowEvents,ProcessObjects,Summaries1andSystemEventsinterfaces has been deprecated, to be replaced with theDetailsV3,MdsObjectsV3,MessageLogsV3,PdsObjectsV3,ProcessFlowDefinitionsV3,ProcessFlowEventsV3,ProcessObjectsV3,SummariesV3andSystemEventsV3interfaces.-
The
DetailsV3interface returns theDetailView2class, whereasDetailsuses theDetailViewclass. -
The
MdsObjectsV3interface returns theMdsObjectSearchItem2class, whereasMdsObjectsuses theMdsObjectSearchItemor thePacs008FIToFICustomerCreditTransferMdsSearchItemclass for the pacs008CreditTransferTransactions method. -
The
MessageLogsV3interface returns theIPFMessageLogSearchItem2class, whereasMessageLogsuses theIPFMessageLogSearchItemclass. -
The
PdsObjectsV3interface returns thePdsObjectSearchItem2class, whereasPdsObjectsuses thePdsObjectSearchItemclass. ThePdsObjectsV3interface also now only has methods that search by unitOfWorkId, odsObjectId and pdsObjectId, whereasPdsObjectshad methods that also searched by unitOfWorkId and name as two search parameters. -
The
ProcessFlowDefinitionsV3interface returns theIPFProcessFlowDefinitionSearchItem2class, whereasProcessFlowDefinitionsuses theIPFProcessFlowDefinitionSearchItemclass. -
The
ProcessFlowEventsV3interface returns theIPFProcessFlowEventSearchItem2class, whereasProcessFlowEventsuses theIPFProcessFlowEventSearchItemclass. -
The
ProcessObjectsV3interface returns theProcessObjectSearchItem2,SystemEventsV3,MessageLogsV3,ProcessFlowEventsV3andProcessFlowDefinitionsV3classes, whereasProcessObjectsuses theProcessObjectSearchItem,SystemEvents,MessageLogs,ProcessFlowEventsandProcessFlowDefinitionsclasses. -
The
SummariesV3interface returns theSummaryView2class and no longer uses theJourneyTypeclass as a search parameter, whereasSummaries1uses theSummaryViewclass and uses theJourneyTypeclass as a search parameter. -
The
SystemEventsV3interface returns theIPFSystemEventSearchItem2class, whereasSystemEventsuses theIPFSystemEventSearchItemclass.
-
-
The
Summaries1,Details,MdsObjects,ProcessObjectsandPdsObjectsinterfaces have therefore been replaced with theSummariesV3,DetailsV3,MdsObjectsV3,ProcessObjectsV3andPdsObjectsV3classes for theInquiryClient3interface