From 6b7d20f1e94c1957020215f2351ef3cf5498564e Mon Sep 17 00:00:00 2001 From: Francesco Cesareo Date: Wed, 16 Oct 2024 19:49:56 +0200 Subject: [PATCH 01/12] recovery by sessionId --- .../controller/RecoveryController.java | 20 ++++++ .../RecoveryReceiptBySessionIdRequest.java | 21 +++++++ .../IdempotencyKeyRepositorySecondary.java | 12 ++++ .../secondary/ReEventRepositorySecondary.java | 5 ++ .../service/RecoveryService.java | 62 +++++++++++++++++++ 5 files changed, 120 insertions(+) create mode 100644 src/main/java/it/gov/pagopa/wispconverter/controller/model/RecoveryReceiptBySessionIdRequest.java create mode 100644 src/main/java/it/gov/pagopa/wispconverter/secondary/IdempotencyKeyRepositorySecondary.java diff --git a/src/main/java/it/gov/pagopa/wispconverter/controller/RecoveryController.java b/src/main/java/it/gov/pagopa/wispconverter/controller/RecoveryController.java index 1f3a487a..04898ae9 100644 --- a/src/main/java/it/gov/pagopa/wispconverter/controller/RecoveryController.java +++ b/src/main/java/it/gov/pagopa/wispconverter/controller/RecoveryController.java @@ -7,6 +7,7 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import it.gov.pagopa.wispconverter.controller.model.RecoveryReceiptByPartitionRequest; +import it.gov.pagopa.wispconverter.controller.model.RecoveryReceiptBySessionIdRequest; import it.gov.pagopa.wispconverter.controller.model.RecoveryReceiptReportResponse; import it.gov.pagopa.wispconverter.controller.model.RecoveryReceiptRequest; import it.gov.pagopa.wispconverter.controller.model.RecoveryReceiptResponse; @@ -130,4 +131,23 @@ public ResponseEntity recoverReceiptToBeReSentByP throw ex; } } + + @Operation(summary = "Execute reconciliation for OK receipts by sessionId.", description = "Execute reconciliation of all receipts related to the sessionIds of the request", security = {@SecurityRequirement(name = "ApiKey")}, tags = {"Recovery"}) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Reconciliation scheduled") + }) + @PostMapping(value = "/sessionIds/ok") + public ResponseEntity recoverReceiptToBeReSentBySessionId(@RequestBody RecoveryReceiptBySessionIdRequest request) { + try { + log.debug("Invoking API operation recoverReceiptToBeReSentBySessionId - args: {}", sanitizeInput(request.toString())); + return ResponseEntity.ok(recoveryService.recoverReceiptOkToBeReSentBySessionIds(request)); + } catch (Exception ex) { + String operationId = MDC.get(Constants.MDC_OPERATION_ID); + log.error(String.format("GenericException: operation-id=[%s]", operationId != null ? operationId : "n/a"), ex); + AppException appException = new AppException(ex, AppErrorCodeMessageEnum.ERROR, ex.getMessage()); + ErrorResponse errorResponse = errorUtil.forAppException(appException); + log.error("Failed API operation recoverReceiptToBeReSentBySessionId - error: {}", errorResponse); + throw ex; + } + } } diff --git a/src/main/java/it/gov/pagopa/wispconverter/controller/model/RecoveryReceiptBySessionIdRequest.java b/src/main/java/it/gov/pagopa/wispconverter/controller/model/RecoveryReceiptBySessionIdRequest.java new file mode 100644 index 00000000..21edf992 --- /dev/null +++ b/src/main/java/it/gov/pagopa/wispconverter/controller/model/RecoveryReceiptBySessionIdRequest.java @@ -0,0 +1,21 @@ +package it.gov.pagopa.wispconverter.controller.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.List; + +@Data +@Builder(toBuilder = true) +@NoArgsConstructor +@AllArgsConstructor +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class RecoveryReceiptBySessionIdRequest { + + private List sessionIds; +} diff --git a/src/main/java/it/gov/pagopa/wispconverter/secondary/IdempotencyKeyRepositorySecondary.java b/src/main/java/it/gov/pagopa/wispconverter/secondary/IdempotencyKeyRepositorySecondary.java new file mode 100644 index 00000000..6f5ca2ca --- /dev/null +++ b/src/main/java/it/gov/pagopa/wispconverter/secondary/IdempotencyKeyRepositorySecondary.java @@ -0,0 +1,12 @@ +package it.gov.pagopa.wispconverter.secondary; + +import com.azure.spring.data.cosmos.repository.CosmosRepository; +import it.gov.pagopa.wispconverter.repository.model.IdempotencyKeyEntity; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Repository; + +@Repository +@Qualifier("secondaryCosmosTemplate") +public interface IdempotencyKeyRepositorySecondary extends CosmosRepository { + +} diff --git a/src/main/java/it/gov/pagopa/wispconverter/secondary/ReEventRepositorySecondary.java b/src/main/java/it/gov/pagopa/wispconverter/secondary/ReEventRepositorySecondary.java index 67a9098a..9c9b9d8c 100644 --- a/src/main/java/it/gov/pagopa/wispconverter/secondary/ReEventRepositorySecondary.java +++ b/src/main/java/it/gov/pagopa/wispconverter/secondary/ReEventRepositorySecondary.java @@ -44,6 +44,11 @@ List findBySessionIdAndStatusAndPartitionKey(@Param("date") Strin @Param("sessionId") String sessionId, @Param("status") String status); + @Query("SELECT * FROM c " + + "WHERE c.sessionId = @sessionId " + + "AND c.component = 'WISP_SOAP_CONVERTER' " + + "AND c.status = 'RPT_ACCETTATA_NODO' ORDER BY c._ts") + List findRptAccettataNodoBySessionId(@Param("sessionId") String sessionId); @Query( "SELECT wispSession.sessionId " + diff --git a/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java b/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java index 99a635dc..b0b7c845 100644 --- a/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java +++ b/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java @@ -13,9 +13,11 @@ import it.gov.pagopa.wispconverter.repository.RPTRequestRepository; import it.gov.pagopa.wispconverter.repository.RTRetryRepository; import it.gov.pagopa.wispconverter.repository.model.*; +import it.gov.pagopa.wispconverter.repository.model.enumz.IdempotencyStatusEnum; import it.gov.pagopa.wispconverter.repository.model.enumz.InternalStepStatus; import it.gov.pagopa.wispconverter.repository.model.enumz.ReceiptStatusEnum; import it.gov.pagopa.wispconverter.repository.model.enumz.ReceiptTypeEnum; +import it.gov.pagopa.wispconverter.secondary.IdempotencyKeyRepositorySecondary; import it.gov.pagopa.wispconverter.secondary.RTRepositorySecondary; import it.gov.pagopa.wispconverter.secondary.ReEventRepositorySecondary; import it.gov.pagopa.wispconverter.service.model.re.ReEventDto; @@ -31,6 +33,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.data.util.Pair; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.net.InetSocketAddress; @@ -43,6 +46,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Optional; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; import java.util.stream.StreamSupport; @@ -74,6 +78,8 @@ public class RecoveryService { private final ReEventRepositorySecondary reEventRepository; + private final IdempotencyKeyRepositorySecondary idempotencyKeyRepositorySecondary; + private final ReceiptService receiptService; private final RPTRequestRepository rptRequestRepository; @@ -250,6 +256,62 @@ private void generateRE(String primitive, String operationStatus, InternalStepSt reService.addRe(reEvent); } + @Transactional + public RecoveryReceiptReportResponse recoverReceiptOkToBeReSentBySessionIds(RecoveryReceiptBySessionIdRequest request) { + List receiptsIds = new ArrayList<>(); + try { + for (String sessionId : request.getSessionIds()) { + // extract rpt from re + List reItems = reEventRepository.findRptAccettataNodoBySessionId(sessionId); + for(ReEventEntity reItem : reItems) { + String receiptId = reItem.getStation() + "_" + UUID.randomUUID(); + IdempotencyKeyEntity idempotencyKey = IdempotencyKeyEntity.builder() + .id(String.format("%s_%s_%s", reItem.getSessionId(), reItem.getIuv(), reItem.getDomainId())) + .partitionKey(reItem.getPartitionKey()) + .receiptType(ReceiptTypeEnum.OK) + .sessionId(reItem.getSessionId()) + .status(IdempotencyStatusEnum.FAILED) + .build(); + idempotencyKeyRepositorySecondary.save(idempotencyKey); + String payload = "DOMINIOIUV" + .replace("DOMINIO", reItem.getDomainId()) + .replace("IUV", reItem.getIuv()); + + // create a RTRequestEntity to generate the ok receipt + RTRequestEntity receipt = RTRequestEntity.builder() + .id(receiptId) + .partitionKey(reItem.getPartitionKey()) + .domainId(reItem.getDomainId()) + .idempotencyKey(idempotencyKey.getId()) + .iuv(reItem.getIuv()) + .ccp(reItem.getCcp()) + .sessionId(sessionId) + .payload(AppBase64Util.base64Encode(ZipUtil.zip(payload))) + .primitive(reItem.getPrimitive()) + .receiptType(ReceiptTypeEnum.OK) + .station(reItem.getStation()) + .build(); + rtRetryRepository.save(receipt); + receiptsIds.add(receiptId); + } + } + + + RecoveryReceiptRequest req = RecoveryReceiptRequest.builder() + .receiptIds(receiptsIds) + .build(); + + return recoverReceiptToBeReSent(req); + } + catch (IOException e) { + throw new AppException(AppErrorCodeMessageEnum.ERROR, "Problem with receipt payload"); + } + } + public RecoveryReceiptReportResponse recoverReceiptToBeReSentByPartition(RecoveryReceiptByPartitionRequest request) { List receiptsIds = request.getPartitionKeys().stream() From d72f2bc807993cff380303c60e4cc9a3b327793f Mon Sep 17 00:00:00 2001 From: "renovate-pagopa[bot]" <164534245+renovate-pagopa[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 06:08:16 +0000 Subject: [PATCH 02/12] Pin actions/setup-python action to 65d7f2d --- .github/workflows/07a_report_generation.yml | 2 +- .github/workflows/07b_report_send.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/07a_report_generation.yml b/.github/workflows/07a_report_generation.yml index b8f674e4..961e16b2 100644 --- a/.github/workflows/07a_report_generation.yml +++ b/.github/workflows/07a_report_generation.yml @@ -82,7 +82,7 @@ jobs: subscription-id: ${{ secrets.SUBSCRIPTION_ID }} - name: Setup Python environment - uses: actions/setup-python@v4 + uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4 with: python-version: '3.11' diff --git a/.github/workflows/07b_report_send.yml b/.github/workflows/07b_report_send.yml index e73871d2..afcd50d7 100644 --- a/.github/workflows/07b_report_send.yml +++ b/.github/workflows/07b_report_send.yml @@ -82,7 +82,7 @@ jobs: subscription-id: ${{ secrets.SUBSCRIPTION_ID }} - name: Setup Python environment - uses: actions/setup-python@v4 + uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4 with: python-version: '3.11' From 16cb8b83eeb987b390f9966b7a407309c1d2b0cc Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Thu, 17 Oct 2024 14:37:23 +0000 Subject: [PATCH 03/12] Bump to version 0.4.12 [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- openapi/openapi_redirect.json | 2 +- pom.xml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 51753b79..e0a90d33 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: pagopa-wisp-converter description: A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, interfacing them with GPD system type: application -version: 0.240.0 -appVersion: 0.4.11 +version: 0.241.0 +appVersion: 0.4.12 dependencies: - name: microservice-chart version: 3.0.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 0ddd6140..2db03443 100644 --- a/helm/values-dev.yaml +++ b/helm/values-dev.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.11" + tag: "0.4.12" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index ae1674c8..e520960c 100644 --- a/helm/values-prod.yaml +++ b/helm/values-prod.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.11" + tag: "0.4.12" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 0f10b4c0..00aba72d 100644 --- a/helm/values-uat.yaml +++ b/helm/values-uat.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.11" + tag: "0.4.12" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 2d4604c3..9d54fa77 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "description": "A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, converting them in NMU payments.\n\n# OPERATIVE INFO\n\n\n## EVENT MAPPING IN RE\n\n
Details\nFIELD | SCOPE | DESCRIPTION\n- | - | -\n**requestId** | BOTH | The identifier, set by X-Request-ID, from which the events can be grouped.\n**operationId** | BOTH | The identifier associated to a request identifier\n**clientOperationId** | BOTH | The identifier that associate a client to an operation identifier.\n**component** | BOTH | The applicative component from which the event is generated.
In NDP it is mapped with field 'componente'.
Values:
_WISP_SOAP_CONVERTER_
_WISP_CONVERTER_\n**insertedTimestamp** | BOTH | The time on which the event is inserted in RE storage\n**eventCategory** | BOTH | The category on which the event can be grouped.
In NDP it is mapped with field 'categoriaEvento'.
Values:
_INTERFACE_
_INTERNAL_\n**eventSubcategory** | BOTH | The subcategory related to the specific nature of the event.
In NDP it is mapped with field 'sottoTipoEvento'.
Values:
_REQ_
_RESP_
_INTERN_\n**callType** | INTERFACE | The type of role that the application has in the communication with the remote endpoint.
Values:
_SERVER_
_CLIENT_\n**outcome** | INTERFACE | The outcome of the operation described by the event.
In NDP it is mapped with field 'esito'.
Values:
_SEND_: Correctly sent request to HTTP endpoint. In NDP it is mapped with value 'INVIATA'.
_SEND_FAILURE_: Failed to send request to HTTP endpoint. In NDP it is mapped with value 'INVIATA_KO'
_RECEIVED_: Received an OK response from HTTP endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_RECEIVED_FAILURE_: Received a failure response from endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_NEVER_RECEIVED_: Failed to receive response at all from endpoint. In NDP it is mapped with value 'NO_RICEVUTA'
_EXECUTED_INTERNAL_STEP_: Executed internal step on execution. In NDP it is mapped with value 'CAMBIO_STATO'\n**httpMethod** | INTERFACE | The HTTP method of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpUri** | INTERFACE | The URI related to the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpHeaders** | INTERFACE | The list of HTTP headers extracted from the request/response analyzed by the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpCallRemoteAddress** | INTERFACE | The remote IP address extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpStatusCode** | INTERFACE | The status code extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**executionTimeMs** | INTERFACE | The duration time of the invocation of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**compressedPayload** | INTERFACE | The payload of the request/response analyzed by the event.
This value is zipped using GZip compression algorithm.\n**compressedPayloadLength** | INTERFACE | The length (in number of characters) of the compressed payload.\n**businessProcess** | INTERFACE | The descriptive label associated to the endpoint called by user and related to the whole process.\n**operationStatus** | INTERFACE | The final status of the whole operation.
This is set only in the events that describe the response in output to user.\n**operationErrorTitle** | INTERFACE | The error title extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorDetail** | INTERFACE | The error detail message extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorCode** | INTERFACE | The error code extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**primitive** | INTERNAL | The typology of primitive analyzed and tracked by the event.
In NDP it is mapped with field 'eventType'.\n**sessionId** | INTERNAL | The session identifier generated by WISP SOAP Converter and used in the request.\n**cartId** | INTERNAL | The cart identifier used in the request.\n**iuv** | INTERNAL | The 'identificativo univoco pagamento' used in the request.\n**noticeNumber** | INTERNAL | The notice number (aka NAV code) used in the request.\n**domainId** | INTERNAL | The creditor institution identifier used in the request.\n**ccp** | INTERNAL | The 'codice contesto pagamento' used in the request.\n**psp** | INTERNAL | The payment service provider used in the request.\n**station** | INTERNAL | The station used in the request.\n**channel** | INTERNAL | The channel used in the request.\n**status** | INTERNAL | The state of the internal step executed.
Values:
_FOUND_RPT_IN_STORAGE_
_FOUND_RT_IN_STORAGE_
_EXTRACTED_DATA_FROM_RPT_
_CREATED_NEW_PAYMENT_POSITION_IN_GPD_
_GENERATED_NAV_FOR_NEW_PAYMENT_POSITION_
_UPDATED_EXISTING_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_INVALID_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_REDIRECT_ERROR_
_GENERATED_CACHE_ABOUT_RPT_FOR_DECOUPLER_
_GENERATED_CACHE_ABOUT_RPT_FOR_CARTSESSION_CACHING_
_GENERATED_CACHE_ABOUT_RPT_FOR_RT_GENERATION_
_SAVED_RPT_IN_CART_RECEIVED_REDIRECT_URL_FROM_CHECKOUT_
_RT_NOT_GENERABLE_FOR_GPD_STATION_
_RT_NOT_GENERABLE_FOR_NOT_EXISTING_PAYMENT_POSITION_
_NEGATIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_POSITIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_RT_SEND_SUCCESS_
_RT_SEND_FAILURE_
_RT_ALREADY_SENT_
_RT_SEND_SCHEDULING_SUCCESS_
_RT_SEND_SCHEDULING_FAILURE_
_RT_SCHEDULED_SEND_SUCCESS_
_RT_SCHEDULED_SEND_FAILURE_
_RT_SEND_RESCHEDULING_FAILURE_
_RT_SEND_RESCHEDULING_REACHED_MAX_RETRIES_
_RT_SEND_RESCHEDULING_SUCCESS_
_RT_START_RECONCILIATION_PROCESS_
_RT_END_RECONCILIATION_PROCESS_
_RT_DEAD_LETTER_SAVED_
_RT_DEAD_LETTER_FAILED_
_RECEIPT_TIMER_GENERATION_CREATED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_CACHED_SEQUENCE_NUMBER_
_RECEIPT_TIMER_GENERATION_DELETED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_SKIP_DELETE_SCHEDULED_SEND_
_RECEIPT_TIMER_PAYMENT_TOKEN_TIMEOUT_TRIGGER_
_ECOMMERCE_HANG_TIMER_TRIGGER_
_ECOMMERCE_HANG_TIMER_CREATED_
_ECOMMERCE_HANG_TIMER_DELETED_
_RPT_TIMER_TRIGGER_
_RPT_TIMER_CREATED_
_RPT_TIMER_DELETED_
_RPT_TIMER_NOT_SET_
_COMMUNICATING_WITH_GPD_REQUEST_
_COMMUNICATING_WITH_GPD_RESPONSE_
_COMMUNICATING_WITH_IUV_GENERATOR_REQUEST_
_COMMUNICATING_WITH_IUV_GENERATOR_RESPONSE_
_COMMUNICATING_WITH_CHECKOUT_REQUEST_
_COMMUNICATING_WITH_CHECKOUT_RESPONSE_
_COMMUNICATING_WITH_DECOUPLER_CACHING_REQUEST_
_COMMUNICATING_WITH_DECOUPLER_CACHING_RESPONSE_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_REQUEST_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_RESPONSE_\n**info** | INTERNAL | The other information that can be inserted for the tracing.\n**paymentToken** | INTERNAL | The payment token.\n\n
\n\n\n## OPERATIONAL ERROR CODES\n\n
Details\nNAME | CODE | DESCRIPTION\n- | - | -\n**WIC-500** | *ERROR* | A not documented generic error occurred while execution. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1000** | *GENERIC_ERROR* | A generic error occurred while executing conversion flow. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1001** | *PARSING_GENERIC_ERROR* | A generic error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1002** | *PARSING_INVALID_HEADER* | An error occurred while parsing of the content header, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1003** | *PARSING_INVALID_BODY* | An error occurred while parsing of the content payload, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1004** | *PARSING_INVALID_XML_NODES* | An error occurred while parsing of the of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The XML content extracted, either from payload or from header, is invalid because it is not possible to extract tag nodes from document. So, the document is probably empty.\n**WIC-1005** | *PARSING_INVALID_ZIPPED_PAYLOAD* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The SOAP request analyzed and stored in dedicated storage is not usable for convert the debt positions in GPD system. This is probably due to an invalid conversion of the SOAP request via GZip algorithm executed before the same is stored in its storage.\n**WIC-1006** | *PARSING_RPT_PRIMITIVE_NOT_VALID* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The primitive (the content related to header 'soapaction') cannot be handled by WISP Converter application in redirect process: only one of nodoInviaRPT and nodoInviaCarrelloRPT can be accepted.\n**WIC-1100** | *VALIDATION_INVALID_MULTIBENEFICIARY_CART* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, the request is arrived as nodoInviaCarrelloRPT as multi-beneficiary cart, but the number of RPTs in the request is lower than two, so it cannot be correctly handled as multi-beneficiary.\n**WIC-1101** | *VALIDATION_INVALID_IBANS* | An error occurred while analyzing the RPTs extracted from SOAP request. An IBAN must always be set in RPT transfers if they aren't related to digital stamps (which don't require an IBAN, because they will be reported to specific subject). In this case, in one or more RPT transfers not related to digital stamp, the IBAN is not correctly set.\n**WIC-1102** | *VALIDATION_INVALID_DEBTOR* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, in a cart there are different debtor subjects and this is not permitted for this flow. So, the whole cart is discarded.\n**WIC-1200** | *CONFIGURATION_INVALID_CACHE* | An error occurred while trying to access data from cached configuration. It is possible that the cache is not retrieved yet by this service or a corrupted configuration was returned from APIConfig Cache internal service. If this problem still occurs, please check the connectivity with APIConfig Cache.\n**WIC-1201** | *CONFIGURATION_INVALID_STATION* | An error occurred while retrieving data from local cached configuration. In particular, it is not possible to retrieve the configuration about the station because it does not exists in cache, and maybe also in general configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1202** | *CONFIGURATION_INVALID_CREDITOR_INSTITUTION_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the required station does not exists in cached configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1203** | *CONFIGURATION_INVALID_STATION_REDIRECT_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration about redirection in error cases is not correctly set to points towards some creditor institution's endpoint. So, a change in configuration is required.\n**WIC-1204** | *CONFIGURATION_INVALID_STATION_SERVICE_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint for RT generator. So, a change in configuration is required.\n**WIC-1205** | *CONFIGURATION_NOT_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint. So, a change in configuration is required.\n**WIC-1206** | *CONFIGURATION_INVALID_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is correctly set to points towards GPD service endpoint but uses the 'v1' primitive version (and it must use the 'v2' version). So, a change in configuration is required.\n**WIC-1207** | *CONFIGURATION_INVALID_STATION_PROXY* | An error occurred while checking the station that will be used for the receipt send process. In particular, analyzing the station it turns out that the configuration is not correctly set to configure proxy structure for RT generator. So, a change in configuration is required.\n**WIC-1300** | *PAYMENT_POSITION_NOT_IN_PAYABLE_STATE* | An error occurred while checking an existing payment position. One or more RPTs extracted from the request refers to existing payment positions in GPD that have a state from which it is impossible to execute a payment flow. If the execution of this flow is related to a RPT cart, all the payments that can be retrieved or generated ex novo from those RPTs are declared as atomically invalid (if one RPT in cart is bad, all RPTs in cart are bad) and not payable with this flow.\n**WIC-1301** | *PAYMENT_POSITION_IN_INCONSISTENT_STATE* | An error occurred while checking an existing payment position in GPD system. The retrieved payment position, previously inserted in GPD by this same flow or by other procedures, is in an invalid state, not mappable to an existing value. This can be related to a wrong setting in GPD or a corruption of the retrieved data.\n**WIC-1302** | *PAYMENT_POSITION_NOT_VALID* | An error occurred while generating a payment position. In particular, something during the generation of a new payment position or the analysis of an existing payment position went wrong and the operation cannot be completed. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1303** | *PAYMENT_OPTION_NOT_EXTRACTABLE* | An error occurred while extracting a payment option from a payment position. This can be caused by a malformed payment position that does not have a payment option. Remember that a payment position in this flow must have one and only one payment option.\n**WIC-1400** | *RECEIPT_GENERATION_GENERIC_ERROR* | An error occurred while generating an RT (aka a receipt). An unhandled error occurred and it is impossible to complete the process. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1401** | *RECEIPT_GENERATION_WRONG_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an invalid response from which is impossible to continue the analysis. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1402** | *RECEIPT_GENERATION_ERROR_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an error response that explicit the occurred problem. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1403** | *RECEIPT_KO_NOT_SENT* | An error occurred while sending a negative RT (aka a KO receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1404** | *RECEIPT_OK_NOT_SENT* | An error occurred while sending a positive RT (aka a OK receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1405** | *RECEIPT_GENERATION_IDEMPOTENCY_LOCKED_BY_ANOTHER_PROCESS* | An error occurred while generating an RT (aka a receipt). Two or more generation processes are concurrently trying to execute the same operation on the same receipt but only one of them is currently 'authorized' to do so.\n**WIC-1406** | *RECEIPT_GENERATION_NOT_PROCESSABLE* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be started correctly because it is trying to lock the idempotency key that is already in a locked state. Probably the process is in execution by another thread.\n**WIC-1407** | *RECEIPT_GENERATION_ALREADY_PROCESSED* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because it is trying to unlock the idempotency key that is not in a locked state. Probably the process was already completed.\n**WIC-1408** | *RECEIPT_GENERATION_ANOMALY_ON_PROCESSING* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because there is a mismatch between the type of the cached receipt and the kind of request made for generate the same receipt. For example, the cached receipt is defined as negative paaInviaRT but the request was made to 'receipt/ok' endpoint. This is an anomaly that should never happens in a correct NMU flow execution but must be traced in case of error.\n**WIC-1409** | *RECEIPT_KO_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a negative RT (aka a KO receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1410** | *RECEIPT_OK_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a positive RT (aka a OK receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1411** | *RECEIPT_GENERATION_ERROR_DEAD_LETTER* | An error occurred while generating an RT (aka a receipt). Specifically, the creditor institution response status has not been recognized, for this reason the RT has been placed in the dead letter container.\n**WIC-2000** | *PERSISTENCE_SAVING_RE_ERROR* | An error occurred wile trying to store a new event in the Registro Eventi storage. The error is somewhat related to a persistence problem of the used storage and in the majority of the cases is temporary (maybe a 429 HTTP code). This error currently blocks the entire flow because that can lead to untraceable requests. For better understanding the cause, please execute a search in the log provider (Application Insights, Kibana, etc).\n**WIC-2001** | *PERSISTENCE_RPT_NOT_FOUND* | An error occurred while trying to retrieve the RPT content saved in storage by WISP SOAP Converter. This can be related either with the use of a wrong sessionId or a missed persistence from WISP SOAP Converter, so it is better to analyze the entire flow using Technical Support's APIs. This block totally the conversion of the RPTs in GPD's payment positions, so the whole process is discarded.\n**WIC-2002** | *PERSISTENCE_RT_NOT_FOUND* | An error occurred while trying to retrieve the RT content saved in storage by WISP Converter. This can be related either with the use of a wrong identifier, a missed persistence or an expired object, so it is better to analyze the entire flow using Technical Support's APIs.\n**WIC-2003** | *PERSISTENCE_REQUESTID_CACHING_ERROR* | An error occurred while trying to retrieve data from internal cache. Specifically, the cached key, defined in format wisp_nav2iuv__
\n", "termsOfService": "https://www.pagopa.gov.it/", "title": "WISP Converter", - "version": "0.4.11" + "version": "0.4.12" }, "servers": [ { diff --git a/openapi/openapi_redirect.json b/openapi/openapi_redirect.json index d1a4c420..3417dbf8 100644 --- a/openapi/openapi_redirect.json +++ b/openapi/openapi_redirect.json @@ -2,7 +2,7 @@ "openapi": "3.0.1", "info": { "title": "WISP-Converter-redirect", - "version": "0.4.11" + "version": "0.4.12" }, "servers": [ { diff --git a/pom.xml b/pom.xml index d61c5b3a..de752dde 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ it.gov.pagopa wisp-converter - 0.4.11 + 0.4.12 pagoPA WISP Converter A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, converting them in NMU payments. From d7c1eb63f78a0eb2fb621de44ec027c738e65d63 Mon Sep 17 00:00:00 2001 From: Francesco Cesareo Date: Thu, 17 Oct 2024 18:01:10 +0200 Subject: [PATCH 04/12] fix --- .../it/gov/pagopa/wispconverter/service/RecoveryService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java b/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java index b0b7c845..47528e53 100644 --- a/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java +++ b/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java @@ -264,7 +264,8 @@ public RecoveryReceiptReportResponse recoverReceiptOkToBeReSentBySessionIds(Reco // extract rpt from re List reItems = reEventRepository.findRptAccettataNodoBySessionId(sessionId); for(ReEventEntity reItem : reItems) { - String receiptId = reItem.getStation() + "_" + UUID.randomUUID(); + String[] brokerEC = reItem.getStation().split("_"); + String receiptId = brokerEC[0] + "_" + UUID.randomUUID(); IdempotencyKeyEntity idempotencyKey = IdempotencyKeyEntity.builder() .id(String.format("%s_%s_%s", reItem.getSessionId(), reItem.getIuv(), reItem.getDomainId())) .partitionKey(reItem.getPartitionKey()) @@ -414,7 +415,7 @@ public RecoveryReceiptReportResponse recoverReceiptToBeReSent(RecoveryReceiptReq rtRequestEntity.setPayload(AppBase64Util.base64Encode(ZipUtil.zip(payload))); rtRetryRepository.save(rtRequestEntity); - String compositedIdForReceipt = String.format("%s_%s", rtRequestEntity.getPartitionKey(), rtRequestEntity.getId()); + String compositedIdForReceipt = String.format("%s_%s", rtRequestEntity.getPartitionKey(), overriddenReceiptId); serviceBusService.sendMessage(compositedIdForReceipt, null); generateRE(null, "Success", InternalStepStatus.RT_SEND_RESCHEDULING_SUCCESS, null, null, null, sessionId, String.format("Generated receipt: %s", overriddenReceiptId)); From fcaa4cb918f55b5f1e699a8877985c92788836ef Mon Sep 17 00:00:00 2001 From: Francesco Cesareo Date: Thu, 17 Oct 2024 22:45:55 +0200 Subject: [PATCH 05/12] fix set sessionId in recovery --- .../it/gov/pagopa/wispconverter/service/RecoveryService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java b/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java index 47528e53..3940cf23 100644 --- a/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java +++ b/src/main/java/it/gov/pagopa/wispconverter/service/RecoveryService.java @@ -411,6 +411,7 @@ public RecoveryReceiptReportResponse recoverReceiptToBeReSent(RecoveryReceiptReq rtRequestEntity.setId(overriddenReceiptId); rtRequestEntity.setDomainId(domainId); rtRequestEntity.setIdempotencyKey(overriddenIdempotencyKey); + rtRequestEntity.setSessionId(sessionId); rtRequestEntity.setRetry(0); rtRequestEntity.setPayload(AppBase64Util.base64Encode(ZipUtil.zip(payload))); rtRetryRepository.save(rtRequestEntity); From c42ed1a9a1eb0e331b6e6e0552a148a7a1d71cf8 Mon Sep 17 00:00:00 2001 From: Andrea De Rinaldis <117269497+andrea-deri@users.noreply.github.com> Date: Fri, 18 Oct 2024 08:26:01 +0200 Subject: [PATCH 06/12] [PAGOPA-2212] chore: Renamed report generation file --- .../{07a_report_generation.yml => 07_report_generation.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{07a_report_generation.yml => 07_report_generation.yml} (99%) diff --git a/.github/workflows/07a_report_generation.yml b/.github/workflows/07_report_generation.yml similarity index 99% rename from .github/workflows/07a_report_generation.yml rename to .github/workflows/07_report_generation.yml index 961e16b2..ad8d4b46 100644 --- a/.github/workflows/07a_report_generation.yml +++ b/.github/workflows/07_report_generation.yml @@ -106,4 +106,4 @@ jobs: REPORT_DATABASE_KEY="${{ secrets.REPORT_DATABASE_KEY }}" \ REPORT_DATABASE_REGION="${{ vars.REPORT_DATABASE_REGION }}" \ REPORT_APICONFIG_CACHE_SUBKEY="${{ secrets.REPORT_APICONFIG_CACHE_SUBKEY }}" - python run_extraction.py \ No newline at end of file + python run_extraction.py From c3e32f642038ed88f6fd36c2d7b64b3f97e90469 Mon Sep 17 00:00:00 2001 From: AngeloCaporaso Date: Fri, 18 Oct 2024 09:17:03 +0200 Subject: [PATCH 07/12] [PAGOPA-2261] feat: Enable CRON --- helm/values-prod.yaml | 2 +- .../secondary/RTRepositorySecondary.java | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index e520960c..86b550c3 100644 --- a/helm/values-prod.yaml +++ b/helm/values-prod.yaml @@ -220,7 +220,7 @@ cron: maxReplica: 1 envConfig: !!merge <<: *envConfig - CRON_JOB_SCHEDULE_RECOVERY_ENABLED: 'false' + CRON_JOB_SCHEDULE_RECOVERY_ENABLED: 'true' DISABLE_SERVICE_BUS_RECEIVER: 'true' envSecret: !!merge <<: *envSecret diff --git a/src/main/java/it/gov/pagopa/wispconverter/secondary/RTRepositorySecondary.java b/src/main/java/it/gov/pagopa/wispconverter/secondary/RTRepositorySecondary.java index 15fa73da..bfdab932 100644 --- a/src/main/java/it/gov/pagopa/wispconverter/secondary/RTRepositorySecondary.java +++ b/src/main/java/it/gov/pagopa/wispconverter/secondary/RTRepositorySecondary.java @@ -12,13 +12,17 @@ @Repository @Qualifier("secondaryCosmosTemplate") public interface RTRepositorySecondary extends CosmosRepository { - // these queries check whether the receipt submission has been in an intermediate state (If it has been for more than an hour, it is stuck) + // these queries check whether the receipt submission has been in an intermediate state + // (If it has been for more than an hour, it is stuck) - @Query("SELECT * FROM c WHERE c.receiptStatus in ('SENDING', 'REDIRECT') " + - "AND c._ts >= DateTimeToTimestamp(@dateFrom) / 1000 AND c._ts <= DateTimeToTimestamp(@dateTo) / 1000") - List findByMidReceiptStatusInAndTimestampBetween(@Param("dateFrom") String dateFrom, @Param("dateTo") String dateTo); + @Query("SELECT * FROM c WHERE c.receiptStatus in ('SENDING', 'REDIRECT') " + + "AND c.receiptType in (null, 'KO')" + + "AND c._ts >= DateTimeToTimestamp(@dateFrom) / 1000 AND c._ts <= DateTimeToTimestamp(@dateTo) / 1000") + List findByMidReceiptStatusInAndTimestampBetween(@Param("dateFrom") String dateFrom, + @Param("dateTo") String dateTo); @Query("SELECT * FROM c WHERE c.receiptStatus in ('SENDING', 'REDIRECT') " + + "AND c.receiptType in (null, 'KO')" + "AND c._ts >= DateTimeToTimestamp(@dateFrom) / 1000 AND c._ts <= DateTimeToTimestamp(@dateTo) / 1000 " + "AND c.domainId = @domainId") List findByMidReceiptStatusInAndTimestampBetween(@Param("dateFrom") String dateFrom, @@ -27,6 +31,7 @@ List findByMidReceiptStatusInAndTimestampBetween(@Param("dateFrom") St @Query("SELECT * FROM c WHERE c.receiptStatus in ('SENDING', 'REDIRECT') " + + "AND c.receiptType in (null, 'KO')" + "AND c._ts >= DateTimeToTimestamp(@dateFrom) / 1000 AND c._ts <= DateTimeToTimestamp(@dateTo) / 1000 " + "AND c.iuv = @iuv AND c.domainId = @domainId") List findByMidReceiptStatusInAndTimestampBetween(@Param("dateFrom") String dateFrom, From 4f6e8a7140d458cc6647df792f04ff4c04d174d5 Mon Sep 17 00:00:00 2001 From: AngeloCaporaso Date: Fri, 18 Oct 2024 09:19:01 +0200 Subject: [PATCH 08/12] [PAGOPA-2261] fix --- .../wispconverter/secondary/RTRepositorySecondary.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/gov/pagopa/wispconverter/secondary/RTRepositorySecondary.java b/src/main/java/it/gov/pagopa/wispconverter/secondary/RTRepositorySecondary.java index bfdab932..190617a2 100644 --- a/src/main/java/it/gov/pagopa/wispconverter/secondary/RTRepositorySecondary.java +++ b/src/main/java/it/gov/pagopa/wispconverter/secondary/RTRepositorySecondary.java @@ -16,13 +16,13 @@ public interface RTRepositorySecondary extends CosmosRepository= DateTimeToTimestamp(@dateFrom) / 1000 AND c._ts <= DateTimeToTimestamp(@dateTo) / 1000") List findByMidReceiptStatusInAndTimestampBetween(@Param("dateFrom") String dateFrom, @Param("dateTo") String dateTo); @Query("SELECT * FROM c WHERE c.receiptStatus in ('SENDING', 'REDIRECT') " + - "AND c.receiptType in (null, 'KO')" + + "AND c.receiptType in (null, 'KO') " + "AND c._ts >= DateTimeToTimestamp(@dateFrom) / 1000 AND c._ts <= DateTimeToTimestamp(@dateTo) / 1000 " + "AND c.domainId = @domainId") List findByMidReceiptStatusInAndTimestampBetween(@Param("dateFrom") String dateFrom, @@ -31,7 +31,7 @@ List findByMidReceiptStatusInAndTimestampBetween(@Param("dateFrom") St @Query("SELECT * FROM c WHERE c.receiptStatus in ('SENDING', 'REDIRECT') " + - "AND c.receiptType in (null, 'KO')" + + "AND c.receiptType in (null, 'KO') " + "AND c._ts >= DateTimeToTimestamp(@dateFrom) / 1000 AND c._ts <= DateTimeToTimestamp(@dateTo) / 1000 " + "AND c.iuv = @iuv AND c.domainId = @domainId") List findByMidReceiptStatusInAndTimestampBetween(@Param("dateFrom") String dateFrom, From d24d8a3354f3028743eca368e7764792b6dcc901 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Fri, 18 Oct 2024 07:21:02 +0000 Subject: [PATCH 09/12] Bump to version 0.4.12-1-PAGOPA-2261 [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- openapi/openapi_redirect.json | 2 +- pom.xml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index e0a90d33..aaa68187 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: pagopa-wisp-converter description: A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, interfacing them with GPD system type: application -version: 0.241.0 -appVersion: 0.4.12 +version: 0.242.0 +appVersion: 0.4.12-1-PAGOPA-2261 dependencies: - name: microservice-chart version: 3.0.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 2db03443..dabaecd1 100644 --- a/helm/values-dev.yaml +++ b/helm/values-dev.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.12" + tag: "0.4.12-1-PAGOPA-2261" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 86b550c3..f723014b 100644 --- a/helm/values-prod.yaml +++ b/helm/values-prod.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.12" + tag: "0.4.12-1-PAGOPA-2261" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 00aba72d..3ad456b3 100644 --- a/helm/values-uat.yaml +++ b/helm/values-uat.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.12" + tag: "0.4.12-1-PAGOPA-2261" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 9d54fa77..7d43fda8 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "description": "A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, converting them in NMU payments.\n\n# OPERATIVE INFO\n\n\n## EVENT MAPPING IN RE\n\n
Details\nFIELD | SCOPE | DESCRIPTION\n- | - | -\n**requestId** | BOTH | The identifier, set by X-Request-ID, from which the events can be grouped.\n**operationId** | BOTH | The identifier associated to a request identifier\n**clientOperationId** | BOTH | The identifier that associate a client to an operation identifier.\n**component** | BOTH | The applicative component from which the event is generated.
In NDP it is mapped with field 'componente'.
Values:
_WISP_SOAP_CONVERTER_
_WISP_CONVERTER_\n**insertedTimestamp** | BOTH | The time on which the event is inserted in RE storage\n**eventCategory** | BOTH | The category on which the event can be grouped.
In NDP it is mapped with field 'categoriaEvento'.
Values:
_INTERFACE_
_INTERNAL_\n**eventSubcategory** | BOTH | The subcategory related to the specific nature of the event.
In NDP it is mapped with field 'sottoTipoEvento'.
Values:
_REQ_
_RESP_
_INTERN_\n**callType** | INTERFACE | The type of role that the application has in the communication with the remote endpoint.
Values:
_SERVER_
_CLIENT_\n**outcome** | INTERFACE | The outcome of the operation described by the event.
In NDP it is mapped with field 'esito'.
Values:
_SEND_: Correctly sent request to HTTP endpoint. In NDP it is mapped with value 'INVIATA'.
_SEND_FAILURE_: Failed to send request to HTTP endpoint. In NDP it is mapped with value 'INVIATA_KO'
_RECEIVED_: Received an OK response from HTTP endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_RECEIVED_FAILURE_: Received a failure response from endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_NEVER_RECEIVED_: Failed to receive response at all from endpoint. In NDP it is mapped with value 'NO_RICEVUTA'
_EXECUTED_INTERNAL_STEP_: Executed internal step on execution. In NDP it is mapped with value 'CAMBIO_STATO'\n**httpMethod** | INTERFACE | The HTTP method of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpUri** | INTERFACE | The URI related to the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpHeaders** | INTERFACE | The list of HTTP headers extracted from the request/response analyzed by the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpCallRemoteAddress** | INTERFACE | The remote IP address extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpStatusCode** | INTERFACE | The status code extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**executionTimeMs** | INTERFACE | The duration time of the invocation of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**compressedPayload** | INTERFACE | The payload of the request/response analyzed by the event.
This value is zipped using GZip compression algorithm.\n**compressedPayloadLength** | INTERFACE | The length (in number of characters) of the compressed payload.\n**businessProcess** | INTERFACE | The descriptive label associated to the endpoint called by user and related to the whole process.\n**operationStatus** | INTERFACE | The final status of the whole operation.
This is set only in the events that describe the response in output to user.\n**operationErrorTitle** | INTERFACE | The error title extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorDetail** | INTERFACE | The error detail message extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorCode** | INTERFACE | The error code extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**primitive** | INTERNAL | The typology of primitive analyzed and tracked by the event.
In NDP it is mapped with field 'eventType'.\n**sessionId** | INTERNAL | The session identifier generated by WISP SOAP Converter and used in the request.\n**cartId** | INTERNAL | The cart identifier used in the request.\n**iuv** | INTERNAL | The 'identificativo univoco pagamento' used in the request.\n**noticeNumber** | INTERNAL | The notice number (aka NAV code) used in the request.\n**domainId** | INTERNAL | The creditor institution identifier used in the request.\n**ccp** | INTERNAL | The 'codice contesto pagamento' used in the request.\n**psp** | INTERNAL | The payment service provider used in the request.\n**station** | INTERNAL | The station used in the request.\n**channel** | INTERNAL | The channel used in the request.\n**status** | INTERNAL | The state of the internal step executed.
Values:
_FOUND_RPT_IN_STORAGE_
_FOUND_RT_IN_STORAGE_
_EXTRACTED_DATA_FROM_RPT_
_CREATED_NEW_PAYMENT_POSITION_IN_GPD_
_GENERATED_NAV_FOR_NEW_PAYMENT_POSITION_
_UPDATED_EXISTING_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_INVALID_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_REDIRECT_ERROR_
_GENERATED_CACHE_ABOUT_RPT_FOR_DECOUPLER_
_GENERATED_CACHE_ABOUT_RPT_FOR_CARTSESSION_CACHING_
_GENERATED_CACHE_ABOUT_RPT_FOR_RT_GENERATION_
_SAVED_RPT_IN_CART_RECEIVED_REDIRECT_URL_FROM_CHECKOUT_
_RT_NOT_GENERABLE_FOR_GPD_STATION_
_RT_NOT_GENERABLE_FOR_NOT_EXISTING_PAYMENT_POSITION_
_NEGATIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_POSITIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_RT_SEND_SUCCESS_
_RT_SEND_FAILURE_
_RT_ALREADY_SENT_
_RT_SEND_SCHEDULING_SUCCESS_
_RT_SEND_SCHEDULING_FAILURE_
_RT_SCHEDULED_SEND_SUCCESS_
_RT_SCHEDULED_SEND_FAILURE_
_RT_SEND_RESCHEDULING_FAILURE_
_RT_SEND_RESCHEDULING_REACHED_MAX_RETRIES_
_RT_SEND_RESCHEDULING_SUCCESS_
_RT_START_RECONCILIATION_PROCESS_
_RT_END_RECONCILIATION_PROCESS_
_RT_DEAD_LETTER_SAVED_
_RT_DEAD_LETTER_FAILED_
_RECEIPT_TIMER_GENERATION_CREATED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_CACHED_SEQUENCE_NUMBER_
_RECEIPT_TIMER_GENERATION_DELETED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_SKIP_DELETE_SCHEDULED_SEND_
_RECEIPT_TIMER_PAYMENT_TOKEN_TIMEOUT_TRIGGER_
_ECOMMERCE_HANG_TIMER_TRIGGER_
_ECOMMERCE_HANG_TIMER_CREATED_
_ECOMMERCE_HANG_TIMER_DELETED_
_RPT_TIMER_TRIGGER_
_RPT_TIMER_CREATED_
_RPT_TIMER_DELETED_
_RPT_TIMER_NOT_SET_
_COMMUNICATING_WITH_GPD_REQUEST_
_COMMUNICATING_WITH_GPD_RESPONSE_
_COMMUNICATING_WITH_IUV_GENERATOR_REQUEST_
_COMMUNICATING_WITH_IUV_GENERATOR_RESPONSE_
_COMMUNICATING_WITH_CHECKOUT_REQUEST_
_COMMUNICATING_WITH_CHECKOUT_RESPONSE_
_COMMUNICATING_WITH_DECOUPLER_CACHING_REQUEST_
_COMMUNICATING_WITH_DECOUPLER_CACHING_RESPONSE_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_REQUEST_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_RESPONSE_\n**info** | INTERNAL | The other information that can be inserted for the tracing.\n**paymentToken** | INTERNAL | The payment token.\n\n
\n\n\n## OPERATIONAL ERROR CODES\n\n
Details\nNAME | CODE | DESCRIPTION\n- | - | -\n**WIC-500** | *ERROR* | A not documented generic error occurred while execution. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1000** | *GENERIC_ERROR* | A generic error occurred while executing conversion flow. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1001** | *PARSING_GENERIC_ERROR* | A generic error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1002** | *PARSING_INVALID_HEADER* | An error occurred while parsing of the content header, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1003** | *PARSING_INVALID_BODY* | An error occurred while parsing of the content payload, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1004** | *PARSING_INVALID_XML_NODES* | An error occurred while parsing of the of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The XML content extracted, either from payload or from header, is invalid because it is not possible to extract tag nodes from document. So, the document is probably empty.\n**WIC-1005** | *PARSING_INVALID_ZIPPED_PAYLOAD* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The SOAP request analyzed and stored in dedicated storage is not usable for convert the debt positions in GPD system. This is probably due to an invalid conversion of the SOAP request via GZip algorithm executed before the same is stored in its storage.\n**WIC-1006** | *PARSING_RPT_PRIMITIVE_NOT_VALID* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The primitive (the content related to header 'soapaction') cannot be handled by WISP Converter application in redirect process: only one of nodoInviaRPT and nodoInviaCarrelloRPT can be accepted.\n**WIC-1100** | *VALIDATION_INVALID_MULTIBENEFICIARY_CART* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, the request is arrived as nodoInviaCarrelloRPT as multi-beneficiary cart, but the number of RPTs in the request is lower than two, so it cannot be correctly handled as multi-beneficiary.\n**WIC-1101** | *VALIDATION_INVALID_IBANS* | An error occurred while analyzing the RPTs extracted from SOAP request. An IBAN must always be set in RPT transfers if they aren't related to digital stamps (which don't require an IBAN, because they will be reported to specific subject). In this case, in one or more RPT transfers not related to digital stamp, the IBAN is not correctly set.\n**WIC-1102** | *VALIDATION_INVALID_DEBTOR* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, in a cart there are different debtor subjects and this is not permitted for this flow. So, the whole cart is discarded.\n**WIC-1200** | *CONFIGURATION_INVALID_CACHE* | An error occurred while trying to access data from cached configuration. It is possible that the cache is not retrieved yet by this service or a corrupted configuration was returned from APIConfig Cache internal service. If this problem still occurs, please check the connectivity with APIConfig Cache.\n**WIC-1201** | *CONFIGURATION_INVALID_STATION* | An error occurred while retrieving data from local cached configuration. In particular, it is not possible to retrieve the configuration about the station because it does not exists in cache, and maybe also in general configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1202** | *CONFIGURATION_INVALID_CREDITOR_INSTITUTION_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the required station does not exists in cached configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1203** | *CONFIGURATION_INVALID_STATION_REDIRECT_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration about redirection in error cases is not correctly set to points towards some creditor institution's endpoint. So, a change in configuration is required.\n**WIC-1204** | *CONFIGURATION_INVALID_STATION_SERVICE_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint for RT generator. So, a change in configuration is required.\n**WIC-1205** | *CONFIGURATION_NOT_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint. So, a change in configuration is required.\n**WIC-1206** | *CONFIGURATION_INVALID_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is correctly set to points towards GPD service endpoint but uses the 'v1' primitive version (and it must use the 'v2' version). So, a change in configuration is required.\n**WIC-1207** | *CONFIGURATION_INVALID_STATION_PROXY* | An error occurred while checking the station that will be used for the receipt send process. In particular, analyzing the station it turns out that the configuration is not correctly set to configure proxy structure for RT generator. So, a change in configuration is required.\n**WIC-1300** | *PAYMENT_POSITION_NOT_IN_PAYABLE_STATE* | An error occurred while checking an existing payment position. One or more RPTs extracted from the request refers to existing payment positions in GPD that have a state from which it is impossible to execute a payment flow. If the execution of this flow is related to a RPT cart, all the payments that can be retrieved or generated ex novo from those RPTs are declared as atomically invalid (if one RPT in cart is bad, all RPTs in cart are bad) and not payable with this flow.\n**WIC-1301** | *PAYMENT_POSITION_IN_INCONSISTENT_STATE* | An error occurred while checking an existing payment position in GPD system. The retrieved payment position, previously inserted in GPD by this same flow or by other procedures, is in an invalid state, not mappable to an existing value. This can be related to a wrong setting in GPD or a corruption of the retrieved data.\n**WIC-1302** | *PAYMENT_POSITION_NOT_VALID* | An error occurred while generating a payment position. In particular, something during the generation of a new payment position or the analysis of an existing payment position went wrong and the operation cannot be completed. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1303** | *PAYMENT_OPTION_NOT_EXTRACTABLE* | An error occurred while extracting a payment option from a payment position. This can be caused by a malformed payment position that does not have a payment option. Remember that a payment position in this flow must have one and only one payment option.\n**WIC-1400** | *RECEIPT_GENERATION_GENERIC_ERROR* | An error occurred while generating an RT (aka a receipt). An unhandled error occurred and it is impossible to complete the process. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1401** | *RECEIPT_GENERATION_WRONG_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an invalid response from which is impossible to continue the analysis. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1402** | *RECEIPT_GENERATION_ERROR_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an error response that explicit the occurred problem. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1403** | *RECEIPT_KO_NOT_SENT* | An error occurred while sending a negative RT (aka a KO receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1404** | *RECEIPT_OK_NOT_SENT* | An error occurred while sending a positive RT (aka a OK receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1405** | *RECEIPT_GENERATION_IDEMPOTENCY_LOCKED_BY_ANOTHER_PROCESS* | An error occurred while generating an RT (aka a receipt). Two or more generation processes are concurrently trying to execute the same operation on the same receipt but only one of them is currently 'authorized' to do so.\n**WIC-1406** | *RECEIPT_GENERATION_NOT_PROCESSABLE* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be started correctly because it is trying to lock the idempotency key that is already in a locked state. Probably the process is in execution by another thread.\n**WIC-1407** | *RECEIPT_GENERATION_ALREADY_PROCESSED* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because it is trying to unlock the idempotency key that is not in a locked state. Probably the process was already completed.\n**WIC-1408** | *RECEIPT_GENERATION_ANOMALY_ON_PROCESSING* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because there is a mismatch between the type of the cached receipt and the kind of request made for generate the same receipt. For example, the cached receipt is defined as negative paaInviaRT but the request was made to 'receipt/ok' endpoint. This is an anomaly that should never happens in a correct NMU flow execution but must be traced in case of error.\n**WIC-1409** | *RECEIPT_KO_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a negative RT (aka a KO receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1410** | *RECEIPT_OK_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a positive RT (aka a OK receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1411** | *RECEIPT_GENERATION_ERROR_DEAD_LETTER* | An error occurred while generating an RT (aka a receipt). Specifically, the creditor institution response status has not been recognized, for this reason the RT has been placed in the dead letter container.\n**WIC-2000** | *PERSISTENCE_SAVING_RE_ERROR* | An error occurred wile trying to store a new event in the Registro Eventi storage. The error is somewhat related to a persistence problem of the used storage and in the majority of the cases is temporary (maybe a 429 HTTP code). This error currently blocks the entire flow because that can lead to untraceable requests. For better understanding the cause, please execute a search in the log provider (Application Insights, Kibana, etc).\n**WIC-2001** | *PERSISTENCE_RPT_NOT_FOUND* | An error occurred while trying to retrieve the RPT content saved in storage by WISP SOAP Converter. This can be related either with the use of a wrong sessionId or a missed persistence from WISP SOAP Converter, so it is better to analyze the entire flow using Technical Support's APIs. This block totally the conversion of the RPTs in GPD's payment positions, so the whole process is discarded.\n**WIC-2002** | *PERSISTENCE_RT_NOT_FOUND* | An error occurred while trying to retrieve the RT content saved in storage by WISP Converter. This can be related either with the use of a wrong identifier, a missed persistence or an expired object, so it is better to analyze the entire flow using Technical Support's APIs.\n**WIC-2003** | *PERSISTENCE_REQUESTID_CACHING_ERROR* | An error occurred while trying to retrieve data from internal cache. Specifically, the cached key, defined in format wisp_nav2iuv__
\n", "termsOfService": "https://www.pagopa.gov.it/", "title": "WISP Converter", - "version": "0.4.12" + "version": "0.4.12-1-PAGOPA-2261" }, "servers": [ { diff --git a/openapi/openapi_redirect.json b/openapi/openapi_redirect.json index 3417dbf8..43f6e7a9 100644 --- a/openapi/openapi_redirect.json +++ b/openapi/openapi_redirect.json @@ -2,7 +2,7 @@ "openapi": "3.0.1", "info": { "title": "WISP-Converter-redirect", - "version": "0.4.12" + "version": "0.4.12-1-PAGOPA-2261" }, "servers": [ { diff --git a/pom.xml b/pom.xml index de752dde..80078005 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ it.gov.pagopa wisp-converter - 0.4.12 + 0.4.12-1-PAGOPA-2261 pagoPA WISP Converter A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, converting them in NMU payments. From 4f7d27789a84fae7d7f254f6c480749ef3512257 Mon Sep 17 00:00:00 2001 From: Francesco Cesareo Date: Fri, 18 Oct 2024 12:48:59 +0200 Subject: [PATCH 10/12] updateed openapi --- openapi/openapi.json | 1611 ++++++++++++++++----------------- openapi/openapi_redirect.json | 201 ++-- 2 files changed, 865 insertions(+), 947 deletions(-) diff --git a/openapi/openapi.json b/openapi/openapi.json index 9d54fa77..d9e4066f 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -1,1107 +1,1044 @@ { - "openapi": "3.0.1", - "info": { - "description": "A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, converting them in NMU payments.\n\n# OPERATIVE INFO\n\n\n## EVENT MAPPING IN RE\n\n
Details\nFIELD | SCOPE | DESCRIPTION\n- | - | -\n**requestId** | BOTH | The identifier, set by X-Request-ID, from which the events can be grouped.\n**operationId** | BOTH | The identifier associated to a request identifier\n**clientOperationId** | BOTH | The identifier that associate a client to an operation identifier.\n**component** | BOTH | The applicative component from which the event is generated.
In NDP it is mapped with field 'componente'.
Values:
_WISP_SOAP_CONVERTER_
_WISP_CONVERTER_\n**insertedTimestamp** | BOTH | The time on which the event is inserted in RE storage\n**eventCategory** | BOTH | The category on which the event can be grouped.
In NDP it is mapped with field 'categoriaEvento'.
Values:
_INTERFACE_
_INTERNAL_\n**eventSubcategory** | BOTH | The subcategory related to the specific nature of the event.
In NDP it is mapped with field 'sottoTipoEvento'.
Values:
_REQ_
_RESP_
_INTERN_\n**callType** | INTERFACE | The type of role that the application has in the communication with the remote endpoint.
Values:
_SERVER_
_CLIENT_\n**outcome** | INTERFACE | The outcome of the operation described by the event.
In NDP it is mapped with field 'esito'.
Values:
_SEND_: Correctly sent request to HTTP endpoint. In NDP it is mapped with value 'INVIATA'.
_SEND_FAILURE_: Failed to send request to HTTP endpoint. In NDP it is mapped with value 'INVIATA_KO'
_RECEIVED_: Received an OK response from HTTP endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_RECEIVED_FAILURE_: Received a failure response from endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_NEVER_RECEIVED_: Failed to receive response at all from endpoint. In NDP it is mapped with value 'NO_RICEVUTA'
_EXECUTED_INTERNAL_STEP_: Executed internal step on execution. In NDP it is mapped with value 'CAMBIO_STATO'\n**httpMethod** | INTERFACE | The HTTP method of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpUri** | INTERFACE | The URI related to the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpHeaders** | INTERFACE | The list of HTTP headers extracted from the request/response analyzed by the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpCallRemoteAddress** | INTERFACE | The remote IP address extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpStatusCode** | INTERFACE | The status code extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**executionTimeMs** | INTERFACE | The duration time of the invocation of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**compressedPayload** | INTERFACE | The payload of the request/response analyzed by the event.
This value is zipped using GZip compression algorithm.\n**compressedPayloadLength** | INTERFACE | The length (in number of characters) of the compressed payload.\n**businessProcess** | INTERFACE | The descriptive label associated to the endpoint called by user and related to the whole process.\n**operationStatus** | INTERFACE | The final status of the whole operation.
This is set only in the events that describe the response in output to user.\n**operationErrorTitle** | INTERFACE | The error title extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorDetail** | INTERFACE | The error detail message extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorCode** | INTERFACE | The error code extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**primitive** | INTERNAL | The typology of primitive analyzed and tracked by the event.
In NDP it is mapped with field 'eventType'.\n**sessionId** | INTERNAL | The session identifier generated by WISP SOAP Converter and used in the request.\n**cartId** | INTERNAL | The cart identifier used in the request.\n**iuv** | INTERNAL | The 'identificativo univoco pagamento' used in the request.\n**noticeNumber** | INTERNAL | The notice number (aka NAV code) used in the request.\n**domainId** | INTERNAL | The creditor institution identifier used in the request.\n**ccp** | INTERNAL | The 'codice contesto pagamento' used in the request.\n**psp** | INTERNAL | The payment service provider used in the request.\n**station** | INTERNAL | The station used in the request.\n**channel** | INTERNAL | The channel used in the request.\n**status** | INTERNAL | The state of the internal step executed.
Values:
_FOUND_RPT_IN_STORAGE_
_FOUND_RT_IN_STORAGE_
_EXTRACTED_DATA_FROM_RPT_
_CREATED_NEW_PAYMENT_POSITION_IN_GPD_
_GENERATED_NAV_FOR_NEW_PAYMENT_POSITION_
_UPDATED_EXISTING_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_INVALID_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_REDIRECT_ERROR_
_GENERATED_CACHE_ABOUT_RPT_FOR_DECOUPLER_
_GENERATED_CACHE_ABOUT_RPT_FOR_CARTSESSION_CACHING_
_GENERATED_CACHE_ABOUT_RPT_FOR_RT_GENERATION_
_SAVED_RPT_IN_CART_RECEIVED_REDIRECT_URL_FROM_CHECKOUT_
_RT_NOT_GENERABLE_FOR_GPD_STATION_
_RT_NOT_GENERABLE_FOR_NOT_EXISTING_PAYMENT_POSITION_
_NEGATIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_POSITIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_RT_SEND_SUCCESS_
_RT_SEND_FAILURE_
_RT_ALREADY_SENT_
_RT_SEND_SCHEDULING_SUCCESS_
_RT_SEND_SCHEDULING_FAILURE_
_RT_SCHEDULED_SEND_SUCCESS_
_RT_SCHEDULED_SEND_FAILURE_
_RT_SEND_RESCHEDULING_FAILURE_
_RT_SEND_RESCHEDULING_REACHED_MAX_RETRIES_
_RT_SEND_RESCHEDULING_SUCCESS_
_RT_START_RECONCILIATION_PROCESS_
_RT_END_RECONCILIATION_PROCESS_
_RT_DEAD_LETTER_SAVED_
_RT_DEAD_LETTER_FAILED_
_RECEIPT_TIMER_GENERATION_CREATED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_CACHED_SEQUENCE_NUMBER_
_RECEIPT_TIMER_GENERATION_DELETED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_SKIP_DELETE_SCHEDULED_SEND_
_RECEIPT_TIMER_PAYMENT_TOKEN_TIMEOUT_TRIGGER_
_ECOMMERCE_HANG_TIMER_TRIGGER_
_ECOMMERCE_HANG_TIMER_CREATED_
_ECOMMERCE_HANG_TIMER_DELETED_
_RPT_TIMER_TRIGGER_
_RPT_TIMER_CREATED_
_RPT_TIMER_DELETED_
_RPT_TIMER_NOT_SET_
_COMMUNICATING_WITH_GPD_REQUEST_
_COMMUNICATING_WITH_GPD_RESPONSE_
_COMMUNICATING_WITH_IUV_GENERATOR_REQUEST_
_COMMUNICATING_WITH_IUV_GENERATOR_RESPONSE_
_COMMUNICATING_WITH_CHECKOUT_REQUEST_
_COMMUNICATING_WITH_CHECKOUT_RESPONSE_
_COMMUNICATING_WITH_DECOUPLER_CACHING_REQUEST_
_COMMUNICATING_WITH_DECOUPLER_CACHING_RESPONSE_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_REQUEST_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_RESPONSE_\n**info** | INTERNAL | The other information that can be inserted for the tracing.\n**paymentToken** | INTERNAL | The payment token.\n\n
\n\n\n## OPERATIONAL ERROR CODES\n\n
Details\nNAME | CODE | DESCRIPTION\n- | - | -\n**WIC-500** | *ERROR* | A not documented generic error occurred while execution. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1000** | *GENERIC_ERROR* | A generic error occurred while executing conversion flow. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1001** | *PARSING_GENERIC_ERROR* | A generic error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1002** | *PARSING_INVALID_HEADER* | An error occurred while parsing of the content header, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1003** | *PARSING_INVALID_BODY* | An error occurred while parsing of the content payload, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1004** | *PARSING_INVALID_XML_NODES* | An error occurred while parsing of the of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The XML content extracted, either from payload or from header, is invalid because it is not possible to extract tag nodes from document. So, the document is probably empty.\n**WIC-1005** | *PARSING_INVALID_ZIPPED_PAYLOAD* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The SOAP request analyzed and stored in dedicated storage is not usable for convert the debt positions in GPD system. This is probably due to an invalid conversion of the SOAP request via GZip algorithm executed before the same is stored in its storage.\n**WIC-1006** | *PARSING_RPT_PRIMITIVE_NOT_VALID* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The primitive (the content related to header 'soapaction') cannot be handled by WISP Converter application in redirect process: only one of nodoInviaRPT and nodoInviaCarrelloRPT can be accepted.\n**WIC-1100** | *VALIDATION_INVALID_MULTIBENEFICIARY_CART* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, the request is arrived as nodoInviaCarrelloRPT as multi-beneficiary cart, but the number of RPTs in the request is lower than two, so it cannot be correctly handled as multi-beneficiary.\n**WIC-1101** | *VALIDATION_INVALID_IBANS* | An error occurred while analyzing the RPTs extracted from SOAP request. An IBAN must always be set in RPT transfers if they aren't related to digital stamps (which don't require an IBAN, because they will be reported to specific subject). In this case, in one or more RPT transfers not related to digital stamp, the IBAN is not correctly set.\n**WIC-1102** | *VALIDATION_INVALID_DEBTOR* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, in a cart there are different debtor subjects and this is not permitted for this flow. So, the whole cart is discarded.\n**WIC-1200** | *CONFIGURATION_INVALID_CACHE* | An error occurred while trying to access data from cached configuration. It is possible that the cache is not retrieved yet by this service or a corrupted configuration was returned from APIConfig Cache internal service. If this problem still occurs, please check the connectivity with APIConfig Cache.\n**WIC-1201** | *CONFIGURATION_INVALID_STATION* | An error occurred while retrieving data from local cached configuration. In particular, it is not possible to retrieve the configuration about the station because it does not exists in cache, and maybe also in general configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1202** | *CONFIGURATION_INVALID_CREDITOR_INSTITUTION_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the required station does not exists in cached configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1203** | *CONFIGURATION_INVALID_STATION_REDIRECT_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration about redirection in error cases is not correctly set to points towards some creditor institution's endpoint. So, a change in configuration is required.\n**WIC-1204** | *CONFIGURATION_INVALID_STATION_SERVICE_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint for RT generator. So, a change in configuration is required.\n**WIC-1205** | *CONFIGURATION_NOT_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint. So, a change in configuration is required.\n**WIC-1206** | *CONFIGURATION_INVALID_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is correctly set to points towards GPD service endpoint but uses the 'v1' primitive version (and it must use the 'v2' version). So, a change in configuration is required.\n**WIC-1207** | *CONFIGURATION_INVALID_STATION_PROXY* | An error occurred while checking the station that will be used for the receipt send process. In particular, analyzing the station it turns out that the configuration is not correctly set to configure proxy structure for RT generator. So, a change in configuration is required.\n**WIC-1300** | *PAYMENT_POSITION_NOT_IN_PAYABLE_STATE* | An error occurred while checking an existing payment position. One or more RPTs extracted from the request refers to existing payment positions in GPD that have a state from which it is impossible to execute a payment flow. If the execution of this flow is related to a RPT cart, all the payments that can be retrieved or generated ex novo from those RPTs are declared as atomically invalid (if one RPT in cart is bad, all RPTs in cart are bad) and not payable with this flow.\n**WIC-1301** | *PAYMENT_POSITION_IN_INCONSISTENT_STATE* | An error occurred while checking an existing payment position in GPD system. The retrieved payment position, previously inserted in GPD by this same flow or by other procedures, is in an invalid state, not mappable to an existing value. This can be related to a wrong setting in GPD or a corruption of the retrieved data.\n**WIC-1302** | *PAYMENT_POSITION_NOT_VALID* | An error occurred while generating a payment position. In particular, something during the generation of a new payment position or the analysis of an existing payment position went wrong and the operation cannot be completed. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1303** | *PAYMENT_OPTION_NOT_EXTRACTABLE* | An error occurred while extracting a payment option from a payment position. This can be caused by a malformed payment position that does not have a payment option. Remember that a payment position in this flow must have one and only one payment option.\n**WIC-1400** | *RECEIPT_GENERATION_GENERIC_ERROR* | An error occurred while generating an RT (aka a receipt). An unhandled error occurred and it is impossible to complete the process. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1401** | *RECEIPT_GENERATION_WRONG_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an invalid response from which is impossible to continue the analysis. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1402** | *RECEIPT_GENERATION_ERROR_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an error response that explicit the occurred problem. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1403** | *RECEIPT_KO_NOT_SENT* | An error occurred while sending a negative RT (aka a KO receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1404** | *RECEIPT_OK_NOT_SENT* | An error occurred while sending a positive RT (aka a OK receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1405** | *RECEIPT_GENERATION_IDEMPOTENCY_LOCKED_BY_ANOTHER_PROCESS* | An error occurred while generating an RT (aka a receipt). Two or more generation processes are concurrently trying to execute the same operation on the same receipt but only one of them is currently 'authorized' to do so.\n**WIC-1406** | *RECEIPT_GENERATION_NOT_PROCESSABLE* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be started correctly because it is trying to lock the idempotency key that is already in a locked state. Probably the process is in execution by another thread.\n**WIC-1407** | *RECEIPT_GENERATION_ALREADY_PROCESSED* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because it is trying to unlock the idempotency key that is not in a locked state. Probably the process was already completed.\n**WIC-1408** | *RECEIPT_GENERATION_ANOMALY_ON_PROCESSING* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because there is a mismatch between the type of the cached receipt and the kind of request made for generate the same receipt. For example, the cached receipt is defined as negative paaInviaRT but the request was made to 'receipt/ok' endpoint. This is an anomaly that should never happens in a correct NMU flow execution but must be traced in case of error.\n**WIC-1409** | *RECEIPT_KO_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a negative RT (aka a KO receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1410** | *RECEIPT_OK_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a positive RT (aka a OK receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1411** | *RECEIPT_GENERATION_ERROR_DEAD_LETTER* | An error occurred while generating an RT (aka a receipt). Specifically, the creditor institution response status has not been recognized, for this reason the RT has been placed in the dead letter container.\n**WIC-2000** | *PERSISTENCE_SAVING_RE_ERROR* | An error occurred wile trying to store a new event in the Registro Eventi storage. The error is somewhat related to a persistence problem of the used storage and in the majority of the cases is temporary (maybe a 429 HTTP code). This error currently blocks the entire flow because that can lead to untraceable requests. For better understanding the cause, please execute a search in the log provider (Application Insights, Kibana, etc).\n**WIC-2001** | *PERSISTENCE_RPT_NOT_FOUND* | An error occurred while trying to retrieve the RPT content saved in storage by WISP SOAP Converter. This can be related either with the use of a wrong sessionId or a missed persistence from WISP SOAP Converter, so it is better to analyze the entire flow using Technical Support's APIs. This block totally the conversion of the RPTs in GPD's payment positions, so the whole process is discarded.\n**WIC-2002** | *PERSISTENCE_RT_NOT_FOUND* | An error occurred while trying to retrieve the RT content saved in storage by WISP Converter. This can be related either with the use of a wrong identifier, a missed persistence or an expired object, so it is better to analyze the entire flow using Technical Support's APIs.\n**WIC-2003** | *PERSISTENCE_REQUESTID_CACHING_ERROR* | An error occurred while trying to retrieve data from internal cache. Specifically, the cached key, defined in format wisp_nav2iuv__
\n", - "termsOfService": "https://www.pagopa.gov.it/", - "title": "WISP Converter", - "version": "0.4.12" + "openapi" : "3.0.1", + "info" : { + "description" : "A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, converting them in NMU payments.\n\n# OPERATIVE INFO\n\n\n## EVENT MAPPING IN RE\n\n
Details\nFIELD | SCOPE | DESCRIPTION\n- | - | -\n**requestId** | BOTH | The identifier, set by X-Request-ID, from which the events can be grouped.\n**operationId** | BOTH | The identifier associated to a request identifier\n**clientOperationId** | BOTH | The identifier that associate a client to an operation identifier.\n**component** | BOTH | The applicative component from which the event is generated.
In NDP it is mapped with field 'componente'.
Values:
_WISP_SOAP_CONVERTER_
_WISP_CONVERTER_\n**insertedTimestamp** | BOTH | The time on which the event is inserted in RE storage\n**eventCategory** | BOTH | The category on which the event can be grouped.
In NDP it is mapped with field 'categoriaEvento'.
Values:
_INTERFACE_
_INTERNAL_\n**eventSubcategory** | BOTH | The subcategory related to the specific nature of the event.
In NDP it is mapped with field 'sottoTipoEvento'.
Values:
_REQ_
_RESP_
_INTERN_\n**callType** | INTERFACE | The type of role that the application has in the communication with the remote endpoint.
Values:
_SERVER_
_CLIENT_\n**outcome** | INTERFACE | The outcome of the operation described by the event.
In NDP it is mapped with field 'esito'.
Values:
_SEND_: Correctly sent request to HTTP endpoint. In NDP it is mapped with value 'INVIATA'.
_SEND_FAILURE_: Failed to send request to HTTP endpoint. In NDP it is mapped with value 'INVIATA_KO'
_RECEIVED_: Received an OK response from HTTP endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_RECEIVED_FAILURE_: Received a failure response from endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_NEVER_RECEIVED_: Failed to receive response at all from endpoint. In NDP it is mapped with value 'NO_RICEVUTA'
_EXECUTED_INTERNAL_STEP_: Executed internal step on execution. In NDP it is mapped with value 'CAMBIO_STATO'\n**httpMethod** | INTERFACE | The HTTP method of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpUri** | INTERFACE | The URI related to the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpHeaders** | INTERFACE | The list of HTTP headers extracted from the request/response analyzed by the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpCallRemoteAddress** | INTERFACE | The remote IP address extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpStatusCode** | INTERFACE | The status code extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**executionTimeMs** | INTERFACE | The duration time of the invocation of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**compressedPayload** | INTERFACE | The payload of the request/response analyzed by the event.
This value is zipped using GZip compression algorithm.\n**compressedPayloadLength** | INTERFACE | The length (in number of characters) of the compressed payload.\n**businessProcess** | INTERFACE | The descriptive label associated to the endpoint called by user and related to the whole process.\n**operationStatus** | INTERFACE | The final status of the whole operation.
This is set only in the events that describe the response in output to user.\n**operationErrorTitle** | INTERFACE | The error title extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorDetail** | INTERFACE | The error detail message extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorCode** | INTERFACE | The error code extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**primitive** | INTERNAL | The typology of primitive analyzed and tracked by the event.
In NDP it is mapped with field 'eventType'.\n**sessionId** | INTERNAL | The session identifier generated by WISP SOAP Converter and used in the request.\n**cartId** | INTERNAL | The cart identifier used in the request.\n**iuv** | INTERNAL | The 'identificativo univoco pagamento' used in the request.\n**noticeNumber** | INTERNAL | The notice number (aka NAV code) used in the request.\n**domainId** | INTERNAL | The creditor institution identifier used in the request.\n**ccp** | INTERNAL | The 'codice contesto pagamento' used in the request.\n**psp** | INTERNAL | The payment service provider used in the request.\n**station** | INTERNAL | The station used in the request.\n**channel** | INTERNAL | The channel used in the request.\n**status** | INTERNAL | The state of the internal step executed.
Values:
_FOUND_RPT_IN_STORAGE_
_FOUND_RT_IN_STORAGE_
_EXTRACTED_DATA_FROM_RPT_
_CREATED_NEW_PAYMENT_POSITION_IN_GPD_
_GENERATED_NAV_FOR_NEW_PAYMENT_POSITION_
_UPDATED_EXISTING_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_INVALID_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_GPD_EXCEPTION_
_GENERATING_RT_FOR_REDIRECT_ERROR_
_GENERATED_CACHE_ABOUT_RPT_FOR_DECOUPLER_
_GENERATED_CACHE_ABOUT_RPT_FOR_CARTSESSION_CACHING_
_GENERATED_CACHE_ABOUT_RPT_FOR_RT_GENERATION_
_SAVED_RPT_IN_CART_RECEIVED_REDIRECT_URL_FROM_CHECKOUT_
_RT_NOT_GENERABLE_FOR_GPD_STATION_
_RT_NOT_GENERABLE_FOR_NOT_EXISTING_PAYMENT_POSITION_
_NEGATIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_POSITIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_RT_SEND_SUCCESS_
_RT_SENT_OK_
_RT_SEND_FAILURE_
_RT_ALREADY_SENT_
_RT_SEND_SCHEDULING_SUCCESS_
_RT_SEND_SCHEDULING_FAILURE_
_RT_SCHEDULED_SEND_SUCCESS_
_RT_SCHEDULED_SEND_FAILURE_
_RT_SEND_RESCHEDULING_FAILURE_
_RT_SEND_RESCHEDULING_REACHED_MAX_RETRIES_
_RT_SEND_RESCHEDULING_SUCCESS_
_RT_START_RECONCILIATION_PROCESS_
_RT_END_RECONCILIATION_PROCESS_
_RT_DEAD_LETTER_SAVED_
_RT_DEAD_LETTER_FAILED_
_RECEIPT_TIMER_GENERATION_CREATED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_CACHED_SEQUENCE_NUMBER_
_RECEIPT_TIMER_GENERATION_DELETED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_SKIP_DELETE_SCHEDULED_SEND_
_RECEIPT_TIMER_PAYMENT_TOKEN_TIMEOUT_TRIGGER_
_ECOMMERCE_HANG_TIMER_TRIGGER_
_ECOMMERCE_HANG_TIMER_CREATED_
_ECOMMERCE_HANG_TIMER_DELETED_
_RPT_TIMER_TRIGGER_
_RPT_TIMER_CREATED_
_RPT_TIMER_DELETED_
_RPT_TIMER_NOT_SET_
_COMMUNICATING_WITH_GPD_REQUEST_
_COMMUNICATING_WITH_GPD_RESPONSE_
_COMMUNICATING_WITH_IUV_GENERATOR_REQUEST_
_COMMUNICATING_WITH_IUV_GENERATOR_RESPONSE_
_COMMUNICATING_WITH_CHECKOUT_REQUEST_
_COMMUNICATING_WITH_CHECKOUT_RESPONSE_
_COMMUNICATING_WITH_DECOUPLER_CACHING_REQUEST_
_COMMUNICATING_WITH_DECOUPLER_CACHING_RESPONSE_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_REQUEST_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_RESPONSE_\n**info** | INTERNAL | The other information that can be inserted for the tracing.\n**paymentToken** | INTERNAL | The payment token.\n\n
\n\n\n## OPERATIONAL ERROR CODES\n\n
Details\nNAME | CODE | DESCRIPTION\n- | - | -\n**WIC-500** | *ERROR* | A not documented generic error occurred while execution. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1000** | *GENERIC_ERROR* | A generic error occurred while executing conversion flow. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1001** | *PARSING_GENERIC_ERROR* | A generic error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1002** | *PARSING_INVALID_HEADER* | An error occurred while parsing of the content header, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1003** | *PARSING_INVALID_BODY* | An error occurred while parsing of the content payload, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1004** | *PARSING_INVALID_XML_NODES* | An error occurred while parsing of the of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The XML content extracted, either from payload or from header, is invalid because it is not possible to extract tag nodes from document. So, the document is probably empty.\n**WIC-1005** | *PARSING_INVALID_ZIPPED_PAYLOAD* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The SOAP request analyzed and stored in dedicated storage is not usable for convert the debt positions in GPD system. This is probably due to an invalid conversion of the SOAP request via GZip algorithm executed before the same is stored in its storage.\n**WIC-1006** | *PARSING_RPT_PRIMITIVE_NOT_VALID* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The primitive (the content related to header 'soapaction') cannot be handled by WISP Converter application in redirect process: only one of nodoInviaRPT and nodoInviaCarrelloRPT can be accepted.\n**WIC-1100** | *VALIDATION_INVALID_MULTIBENEFICIARY_CART* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, the request is arrived as nodoInviaCarrelloRPT as multi-beneficiary cart, but the number of RPTs in the request is lower than two, so it cannot be correctly handled as multi-beneficiary.\n**WIC-1101** | *VALIDATION_INVALID_IBANS* | An error occurred while analyzing the RPTs extracted from SOAP request. An IBAN must always be set in RPT transfers if they aren't related to digital stamps (which don't require an IBAN, because they will be reported to specific subject). In this case, in one or more RPT transfers not related to digital stamp, the IBAN is not correctly set.\n**WIC-1102** | *VALIDATION_INVALID_DEBTOR* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, in a cart there are different debtor subjects and this is not permitted for this flow. So, the whole cart is discarded.\n**WIC-1200** | *CONFIGURATION_INVALID_CACHE* | An error occurred while trying to access data from cached configuration. It is possible that the cache is not retrieved yet by this service or a corrupted configuration was returned from APIConfig Cache internal service. If this problem still occurs, please check the connectivity with APIConfig Cache.\n**WIC-1201** | *CONFIGURATION_INVALID_STATION* | An error occurred while retrieving data from local cached configuration. In particular, it is not possible to retrieve the configuration about the station because it does not exists in cache, and maybe also in general configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1202** | *CONFIGURATION_INVALID_CREDITOR_INSTITUTION_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the required station does not exists in cached configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1203** | *CONFIGURATION_INVALID_STATION_REDIRECT_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration about redirection in error cases is not correctly set to points towards some creditor institution's endpoint. So, a change in configuration is required.\n**WIC-1204** | *CONFIGURATION_INVALID_STATION_SERVICE_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint for RT generator. So, a change in configuration is required.\n**WIC-1205** | *CONFIGURATION_NOT_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint. So, a change in configuration is required.\n**WIC-1206** | *CONFIGURATION_INVALID_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is correctly set to points towards GPD service endpoint but uses the 'v1' primitive version (and it must use the 'v2' version). So, a change in configuration is required.\n**WIC-1207** | *CONFIGURATION_INVALID_STATION_PROXY* | An error occurred while checking the station that will be used for the receipt send process. In particular, analyzing the station it turns out that the configuration is not correctly set to configure proxy structure for RT generator. So, a change in configuration is required.\n**WIC-1300** | *PAYMENT_POSITION_NOT_IN_PAYABLE_STATE* | An error occurred while checking an existing payment position. One or more RPTs extracted from the request refers to existing payment positions in GPD that have a state from which it is impossible to execute a payment flow. If the execution of this flow is related to a RPT cart, all the payments that can be retrieved or generated ex novo from those RPTs are declared as atomically invalid (if one RPT in cart is bad, all RPTs in cart are bad) and not payable with this flow.\n**WIC-1301** | *PAYMENT_POSITION_IN_INCONSISTENT_STATE* | An error occurred while checking an existing payment position in GPD system. The retrieved payment position, previously inserted in GPD by this same flow or by other procedures, is in an invalid state, not mappable to an existing value. This can be related to a wrong setting in GPD or a corruption of the retrieved data.\n**WIC-1302** | *PAYMENT_POSITION_NOT_VALID* | An error occurred while generating a payment position. In particular, something during the generation of a new payment position or the analysis of an existing payment position went wrong and the operation cannot be completed. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1303** | *PAYMENT_OPTION_NOT_EXTRACTABLE* | An error occurred while extracting a payment option from a payment position. This can be caused by a malformed payment position that does not have a payment option. Remember that a payment position in this flow must have one and only one payment option.\n**WIC-1400** | *RECEIPT_GENERATION_GENERIC_ERROR* | An error occurred while generating an RT (aka a receipt). An unhandled error occurred and it is impossible to complete the process. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1401** | *RECEIPT_GENERATION_WRONG_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an invalid response from which is impossible to continue the analysis. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1402** | *RECEIPT_GENERATION_ERROR_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an error response that explicit the occurred problem. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1403** | *RECEIPT_KO_NOT_SENT* | An error occurred while sending a negative RT (aka a KO receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1404** | *RECEIPT_OK_NOT_SENT* | An error occurred while sending a positive RT (aka a OK receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1405** | *RECEIPT_GENERATION_IDEMPOTENCY_LOCKED_BY_ANOTHER_PROCESS* | An error occurred while generating an RT (aka a receipt). Two or more generation processes are concurrently trying to execute the same operation on the same receipt but only one of them is currently 'authorized' to do so.\n**WIC-1406** | *RECEIPT_GENERATION_NOT_PROCESSABLE* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be started correctly because it is trying to lock the idempotency key that is already in a locked state. Probably the process is in execution by another thread.\n**WIC-1407** | *RECEIPT_GENERATION_ALREADY_PROCESSED* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because it is trying to unlock the idempotency key that is not in a locked state. Probably the process was already completed.\n**WIC-1408** | *RECEIPT_GENERATION_ANOMALY_ON_PROCESSING* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because there is a mismatch between the type of the cached receipt and the kind of request made for generate the same receipt. For example, the cached receipt is defined as negative paaInviaRT but the request was made to 'receipt/ok' endpoint. This is an anomaly that should never happens in a correct NMU flow execution but must be traced in case of error.\n**WIC-1409** | *RECEIPT_KO_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a negative RT (aka a KO receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1410** | *RECEIPT_OK_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a positive RT (aka a OK receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1411** | *RECEIPT_GENERATION_ERROR_DEAD_LETTER* | An error occurred while generating an RT (aka a receipt). Specifically, the creditor institution response status has not been recognized, for this reason the RT has been placed in the dead letter container.\n**WIC-2000** | *PERSISTENCE_SAVING_RE_ERROR* | An error occurred wile trying to store a new event in the Registro Eventi storage. The error is somewhat related to a persistence problem of the used storage and in the majority of the cases is temporary (maybe a 429 HTTP code). This error currently blocks the entire flow because that can lead to untraceable requests. For better understanding the cause, please execute a search in the log provider (Application Insights, Kibana, etc).\n**WIC-2001** | *PERSISTENCE_RPT_NOT_FOUND* | An error occurred while trying to retrieve the RPT content saved in storage by WISP SOAP Converter. This can be related either with the use of a wrong sessionId or a missed persistence from WISP SOAP Converter, so it is better to analyze the entire flow using Technical Support's APIs. This block totally the conversion of the RPTs in GPD's payment positions, so the whole process is discarded.\n**WIC-2002** | *PERSISTENCE_RT_NOT_FOUND* | An error occurred while trying to retrieve the RT content saved in storage by WISP Converter. This can be related either with the use of a wrong identifier, a missed persistence or an expired object, so it is better to analyze the entire flow using Technical Support's APIs.\n**WIC-2003** | *PERSISTENCE_REQUESTID_CACHING_ERROR* | An error occurred while trying to retrieve data from internal cache. Specifically, the cached key, defined in format wisp_nav2iuv__
\n", + "termsOfService" : "https://www.pagopa.gov.it/", + "title" : "WISP Converter", + "version" : "0.4.12" }, - "servers": [ - { - "url": "http://localhost", - "description": "Generated server url" - } - ], - "tags": [ - { - "description": "Application info APIs", - "name": "Home" - }, - { - "description": "Create and Delete payment token timer", - "name": "ReceiptTimer" - }, - { - "description": "ECs and Stations configuration", - "name": "Configuration" - }, - { - "description": "Convert sendPaymentResultV2, closePaymentV2 or paSendRTV2 into paaInviaRT to EC", - "name": "Receipt" - }, - { - "description": "Create and Delete rpt timer", - "name": "RPTTimer" - }, - { - "description": "Conversion and redirection APIs", - "name": "Redirect" - }, - { - "description": "Recovery and reconciliation APIs", - "name": "Recovery" - } - ], - "paths": { - "/info": { - "get": { - "operationId": "healthCheck", - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppInfoResponse" + "servers" : [ { + "url" : "http://localhost", + "description" : "Generated server url" + } ], + "tags" : [ { + "description" : "Application info APIs", + "name" : "Home" + }, { + "description" : "Create and Delete payment token timer", + "name" : "ReceiptTimer" + }, { + "description" : "ECs and Stations configuration", + "name" : "Configuration" + }, { + "description" : "Convert sendPaymentResultV2, closePaymentV2 or paSendRTV2 into paaInviaRT to EC", + "name" : "Receipt" + }, { + "description" : "Create and Delete rpt timer", + "name" : "RPTTimer" + }, { + "description" : "Conversion and redirection APIs", + "name" : "Redirect" + }, { + "description" : "Recovery and reconciliation APIs", + "name" : "Recovery" + } ], + "paths" : { + "/info" : { + "get" : { + "operationId" : "healthCheck", + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppInfoResponse" } } }, - "description": "OK.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "OK.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "Return OK if application is started", - "tags": [ - "Home" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "Return OK if application is started", + "tags" : [ "Home" ] }, - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ] + } ] }, - "/payments": { - "get": { - "operationId": "redirect", - "parameters": [ - { - "example": "identificativoIntermediarioPA_sessionId", - "in": "query", - "name": "idSession", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "302": { - "description": "Redirect to Checkout service.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "/payments" : { + "get" : { + "operationId" : "redirect", + "parameters" : [ { + "example" : "identificativoIntermediarioPA_sessionId", + "in" : "query", + "name" : "idSession", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "302" : { + "description" : "Redirect to Checkout service.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "tags": [ - "Redirect" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "tags" : [ "Redirect" ] }, - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ] + } ] }, - "/receipt": { - "get": { - "operationId": "receiptRetrieve", - "parameters": [ - { - "in": "query", - "name": "ci", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "ccp", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "iuv", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "*/*": { - "schema": { - "type": "string" + "/receipt" : { + "get" : { + "operationId" : "receiptRetrieve", + "parameters" : [ { + "in" : "query", + "name" : "ci", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "in" : "query", + "name" : "ccp", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "in" : "query", + "name" : "iuv", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "type" : "string" } } }, - "description": "Receipt exists", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "Receipt exists", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "tags": [ - "Receipt" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "tags" : [ "Receipt" ] }, - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ] + } ] }, - "/receipt/ko": { - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "/receipt/ko" : { + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ], - "post": { - "operationId": "receiptKo", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "string" + } ], + "post" : { + "operationId" : "receiptKo", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "string" } } }, - "required": true + "required" : true }, - "responses": { - "200": { - "description": "Successfully forwarded negative paaInviaRT to EC", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "responses" : { + "200" : { + "description" : "Successfully forwarded negative paaInviaRT to EC", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "tags": [ - "Receipt" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "tags" : [ "Receipt" ] } }, - "/receipt/ok": { - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "/receipt/ok" : { + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ], - "post": { - "operationId": "receiptOk", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReceiptRequest" + } ], + "post" : { + "operationId" : "receiptOk", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ReceiptRequest" } } }, - "required": true + "required" : true }, - "responses": { - "200": { - "description": "Successfully forwarded positive paaInviaRT to EC", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "responses" : { + "200" : { + "description" : "Successfully forwarded positive paaInviaRT to EC", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "tags": [ - "Receipt" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "tags" : [ "Receipt" ] } }, - "/receipt/timer": { - "delete": { - "description": "Delete a timer by paymentToken", - "operationId": "deleteTimer_1", - "parameters": [ - { - "in": "query", - "name": "paymentTokens", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successfully paymentToken expiration timer deleted", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "/receipt/timer" : { + "delete" : { + "description" : "Delete a timer by paymentToken", + "operationId" : "deleteTimer_1", + "parameters" : [ { + "in" : "query", + "name" : "paymentTokens", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Successfully paymentToken expiration timer deleted", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "deleteTimer", - "tags": [ - "ReceiptTimer" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "deleteTimer", + "tags" : [ "ReceiptTimer" ] }, - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ], - "post": { - "description": "Create a timer linked with paymentToken and receipt data", - "operationId": "createTimer_1", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReceiptTimerRequest" + } ], + "post" : { + "description" : "Create a timer linked with paymentToken and receipt data", + "operationId" : "createTimer_1", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ReceiptTimerRequest" } } }, - "required": true + "required" : true }, - "responses": { - "200": { - "description": "Successfully paymentToken expiration timer created", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "responses" : { + "200" : { + "description" : "Successfully paymentToken expiration timer created", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "createTimer", - "tags": [ - "ReceiptTimer" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "createTimer", + "tags" : [ "ReceiptTimer" ] } }, - "/recovery/partitions": { - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "/recovery/partitions" : { + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ], - "post": { - "description": "Execute reconciliation of all receipts contained in the partitions of the request", - "operationId": "recoverReceiptToBeReSentByPartition", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RecoveryReceiptByPartitionRequest" + } ], + "post" : { + "description" : "Execute reconciliation of all receipts contained in the partitions of the request", + "operationId" : "recoverReceiptToBeReSentByPartition", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RecoveryReceiptByPartitionRequest" } } }, - "required": true + "required" : true }, - "responses": { - "200": { - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/RecoveryReceiptReportResponse" + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/RecoveryReceiptReportResponse" } } }, - "description": "Reconciliation scheduled", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "Reconciliation scheduled", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "Execute reconciliation for passed receipts by partition.", - "tags": [ - "Recovery" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "Execute reconciliation for passed receipts by partition.", + "tags" : [ "Recovery" ] } }, - "/recovery/receipts": { - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "/recovery/receipts" : { + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ], - "post": { - "description": "Execute reconciliation of all receipts in the request, searching by passed identifier", - "operationId": "recoverReceiptToBeReSent", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RecoveryReceiptRequest" + } ], + "post" : { + "description" : "Execute reconciliation of all receipts in the request, searching by passed identifier", + "operationId" : "recoverReceiptToBeReSent", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RecoveryReceiptRequest" } } }, - "required": true + "required" : true }, - "responses": { - "200": { - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/RecoveryReceiptReportResponse" + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/RecoveryReceiptReportResponse" } } }, - "description": "Reconciliation scheduled", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "Reconciliation scheduled", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "Execute reconciliation for passed receipts.", - "tags": [ - "Recovery" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "Execute reconciliation for passed receipts.", + "tags" : [ "Recovery" ] } }, - "/recovery/{creditor_institution}/receipt-ko": { - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "/recovery/sessionIds/ok" : { + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ], - "post": { - "description": "Execute reconciliation of all IUVs for certain creditor institution, sending RT for close payment.", - "operationId": "recoverReceiptKOForCreditorInstitution", - "parameters": [ - { - "in": "path", - "name": "creditor_institution", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "dateFrom", - "required": true, - "schema": { - "type": "string" + } ], + "post" : { + "description" : "Execute reconciliation of all receipts related to the sessionIds of the request", + "operationId" : "recoverReceiptToBeReSentBySessionId", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RecoveryReceiptBySessionIdRequest" + } } }, - { - "in": "query", - "name": "dateTo", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/RecoveryReceiptResponse" + "required" : true + }, + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/RecoveryReceiptReportResponse" } } }, - "description": "Started reconciling IUVs with explicit RT send", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "Reconciliation scheduled", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "Execute IUV reconciliation for certain creditor institution.", - "tags": [ - "Recovery" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "Execute reconciliation for OK receipts by sessionId.", + "tags" : [ "Recovery" ] } }, - "/recovery/{creditor_institution}/rpt/{iuv}/receipt-ko": { - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "/recovery/{creditor_institution}/receipt-ko" : { + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ], - "post": { - "description": "Execute reconciliation of all IUVs for certain creditor institution, sending RT for close payment.", - "operationId": "recoverReceiptKOForCreditorInstitutionAndIUV", - "parameters": [ - { - "in": "path", - "name": "creditor_institution", - "required": true, - "schema": { - "pattern": "[a-zA-Z0-9_-]{1,100}", - "type": "string" - } - }, - { - "in": "path", - "name": "iuv", - "required": true, - "schema": { - "pattern": "[a-zA-Z0-9_-]{1,100}", - "type": "string" - } - }, - { - "in": "query", - "name": "dateFrom", - "required": true, - "schema": { - "pattern": "[a-zA-Z0-9_-]{1,10}", - "type": "string" - } - }, - { - "in": "query", - "name": "dateTo", - "required": true, - "schema": { - "pattern": "[a-zA-Z0-9_-]{1,10}", - "type": "string" + } ], + "post" : { + "description" : "Execute reconciliation of all IUVs for certain creditor institution, sending RT for close payment.", + "operationId" : "recoverReceiptKOForCreditorInstitution", + "parameters" : [ { + "in" : "path", + "name" : "creditor_institution", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "in" : "query", + "name" : "dateFrom", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "in" : "query", + "name" : "dateTo", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/RecoveryReceiptResponse" + } + } + }, + "description" : "Started reconciling IUVs with explicit RT send", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" + } + } } } - ], - "responses": { - "200": { - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/RecoveryReceiptResponse" + }, + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "Execute IUV reconciliation for certain creditor institution.", + "tags" : [ "Recovery" ] + } + }, + "/recovery/{creditor_institution}/rpt/{iuv}/receipt-ko" : { + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" + } + } ], + "post" : { + "description" : "Execute reconciliation of all IUVs for certain creditor institution, sending RT for close payment.", + "operationId" : "recoverReceiptKOForCreditorInstitutionAndIUV", + "parameters" : [ { + "in" : "path", + "name" : "creditor_institution", + "required" : true, + "schema" : { + "pattern" : "[a-zA-Z0-9_-]{1,100}", + "type" : "string" + } + }, { + "in" : "path", + "name" : "iuv", + "required" : true, + "schema" : { + "pattern" : "[a-zA-Z0-9_-]{1,100}", + "type" : "string" + } + }, { + "in" : "query", + "name" : "dateFrom", + "required" : true, + "schema" : { + "pattern" : "[a-zA-Z0-9_-]{1,10}", + "type" : "string" + } + }, { + "in" : "query", + "name" : "dateTo", + "required" : true, + "schema" : { + "pattern" : "[a-zA-Z0-9_-]{1,10}", + "type" : "string" + } + } ], + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/RecoveryReceiptResponse" } } }, - "description": "Completed IUV reconciliation with explicit RT submission", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "Completed IUV reconciliation with explicit RT submission", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } }, - "400": { - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/RecoveryReceiptResponse" + "400" : { + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/RecoveryReceiptResponse" } } }, - "description": "It is not possible to complete reconciliation (with explicit RT submission) for the submitted UIV", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "It is not possible to complete reconciliation (with explicit RT submission) for the submitted UIV", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "Execute IUV reconciliation for certain creditor institution.", - "tags": [ - "Recovery" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "Execute IUV reconciliation for certain creditor institution.", + "tags" : [ "Recovery" ] } }, - "/rpt/timer": { - "delete": { - "description": "Delete a timer by sessionId", - "operationId": "deleteTimer", - "parameters": [ - { - "in": "query", - "name": "sessionId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successfully rpt timer deleted", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "/rpt/timer" : { + "delete" : { + "description" : "Delete a timer by sessionId", + "operationId" : "deleteTimer", + "parameters" : [ { + "in" : "query", + "name" : "sessionId", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Successfully rpt timer deleted", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "deleteRPTTimer", - "tags": [ - "RPTTimer" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "deleteRPTTimer", + "tags" : [ "RPTTimer" ] }, - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ], - "post": { - "description": "Create a timer from sessionId data", - "operationId": "createTimer", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RPTTimerRequest" + } ], + "post" : { + "description" : "Create a timer from sessionId data", + "operationId" : "createTimer", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RPTTimerRequest" } } }, - "required": true + "required" : true }, - "responses": { - "200": { - "description": "Successfully rpt timer created", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "responses" : { + "200" : { + "description" : "Successfully rpt timer created", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "createRPTTimer", - "tags": [ - "RPTTimer" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "createRPTTimer", + "tags" : [ "RPTTimer" ] } }, - "/whitelist/cis": { - "get": { - "operationId": "getCreditorInstitutions", - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConfigurationModel" + "/whitelist/cis" : { + "get" : { + "operationId" : "getCreditorInstitutions", + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ConfigurationModel" } } }, - "description": "Configuration for EC retrieved.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "Configuration for EC retrieved.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } }, - "404": { - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ConfigurationModel" + "404" : { + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/ConfigurationModel" } } }, - "description": "Configuration for EC not found.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "Configuration for EC not found.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "Return the string containing all creditor institutions for the wisp converter logic", - "tags": [ - "Configuration" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "Return the string containing all creditor institutions for the wisp converter logic", + "tags" : [ "Configuration" ] }, - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ], - "post": { - "operationId": "createCreditorInstitutionsConfiguration", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConfigurationModel" + } ], + "post" : { + "operationId" : "createCreditorInstitutionsConfiguration", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ConfigurationModel" } } }, - "required": true + "required" : true }, - "responses": { - "200": { - "description": "OK.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "responses" : { + "200" : { + "description" : "OK.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } }, - "201": { - "description": "Created", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "201" : { + "description" : "Created", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "Create the string containing all creditor institutions for the wisp converter logic", - "tags": [ - "Configuration" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "Create the string containing all creditor institutions for the wisp converter logic", + "tags" : [ "Configuration" ] } }, - "/whitelist/stations": { - "get": { - "operationId": "getStations", - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConfigurationModel" + "/whitelist/stations" : { + "get" : { + "operationId" : "getStations", + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ConfigurationModel" } } }, - "description": "Configuration for Stations retrieved.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "Configuration for Stations retrieved.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } }, - "404": { - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ConfigurationModel" + "404" : { + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/ConfigurationModel" } } }, - "description": "Configuration for Stations not found.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "Configuration for Stations not found.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "Return the string containing all stations for the wisp converter logic", - "tags": [ - "Configuration" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "Return the string containing all stations for the wisp converter logic", + "tags" : [ "Configuration" ] }, - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ], - "post": { - "operationId": "createStationsConfiguration", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConfigurationModel" + } ], + "post" : { + "operationId" : "createStationsConfiguration", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ConfigurationModel" } } }, - "required": true + "required" : true }, - "responses": { - "200": { - "description": "OK.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "responses" : { + "200" : { + "description" : "OK.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } }, - "201": { - "description": "Created", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "201" : { + "description" : "Created", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "Create the string containing all stations for the wisp converter logic", - "tags": [ - "Configuration" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "Create the string containing all stations for the wisp converter logic", + "tags" : [ "Configuration" ] } } }, - "components": { - "schemas": { - "AppInfoResponse": { - "type": "object", - "properties": { - "environment": { - "type": "string" + "components" : { + "schemas" : { + "AppInfoResponse" : { + "type" : "object", + "properties" : { + "environment" : { + "type" : "string" }, - "name": { - "type": "string" + "name" : { + "type" : "string" }, - "version": { - "type": "string" + "version" : { + "type" : "string" } } }, - "ConfigurationModel": { - "type": "object", - "properties": { - "key": { - "type": "string" + "ConfigurationModel" : { + "type" : "object", + "properties" : { + "key" : { + "type" : "string" } } }, - "PairStringString": { - "type": "object", - "properties": { - "first": { - "type": "string" + "PairStringString" : { + "type" : "object", + "properties" : { + "first" : { + "type" : "string" }, - "second": { - "type": "string" + "second" : { + "type" : "string" } } }, - "RPTTimerRequest": { - "type": "object", - "properties": { - "sessionId": { - "type": "string" + "RPTTimerRequest" : { + "type" : "object", + "properties" : { + "sessionId" : { + "type" : "string" } } }, - "ReceiptRequest": { - "type": "object", - "properties": { - "content": { - "type": "string" + "ReceiptRequest" : { + "type" : "object", + "properties" : { + "content" : { + "type" : "string" } } }, - "ReceiptTimerRequest": { - "type": "object", - "properties": { - "expirationTime": { - "type": "integer", - "format": "int64" + "ReceiptTimerRequest" : { + "type" : "object", + "properties" : { + "expirationTime" : { + "type" : "integer", + "format" : "int64" }, - "fiscalCode": { - "pattern": "\\w*", - "type": "string" + "fiscalCode" : { + "pattern" : "\\w*", + "type" : "string" }, - "noticeNumber": { - "pattern": "\\d*", - "type": "string" + "noticeNumber" : { + "pattern" : "\\d*", + "type" : "string" }, - "paymentToken": { - "type": "string" + "paymentToken" : { + "type" : "string" }, - "sessionId": { - "type": "string" + "sessionId" : { + "type" : "string" + } + } + }, + "RecoveryReceiptByPartitionRequest" : { + "type" : "object", + "properties" : { + "partitionKeys" : { + "type" : "array", + "items" : { + "type" : "string" + } } } }, - "RecoveryReceiptByPartitionRequest": { - "type": "object", - "properties": { - "partitionKeys": { - "type": "array", - "items": { - "type": "string" + "RecoveryReceiptBySessionIdRequest" : { + "type" : "object", + "properties" : { + "sessionIds" : { + "type" : "array", + "items" : { + "type" : "string" } } } }, - "RecoveryReceiptPaymentResponse": { - "type": "object", - "properties": { - "ccp": { - "type": "string" + "RecoveryReceiptPaymentResponse" : { + "type" : "object", + "properties" : { + "ccp" : { + "type" : "string" }, - "ci": { - "type": "string" + "ci" : { + "type" : "string" }, - "iuv": { - "type": "string" + "iuv" : { + "type" : "string" } } }, - "RecoveryReceiptReportResponse": { - "type": "object", - "properties": { - "receiptStatus": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PairStringString" + "RecoveryReceiptReportResponse" : { + "type" : "object", + "properties" : { + "receiptStatus" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/PairStringString" } } } }, - "RecoveryReceiptRequest": { - "type": "object", - "properties": { - "receiptIds": { - "type": "array", - "items": { - "type": "string" + "RecoveryReceiptRequest" : { + "type" : "object", + "properties" : { + "receiptIds" : { + "type" : "array", + "items" : { + "type" : "string" } } } }, - "RecoveryReceiptResponse": { - "type": "object", - "properties": { - "payments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RecoveryReceiptPaymentResponse" + "RecoveryReceiptResponse" : { + "type" : "object", + "properties" : { + "payments" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/RecoveryReceiptPaymentResponse" } } } } }, - "securitySchemes": { - "ApiKey": { - "description": "The API key to access this function app.", - "in": "header", - "name": "Ocp-Apim-Subscription-Key", - "type": "apiKey" + "securitySchemes" : { + "ApiKey" : { + "description" : "The API key to access this function app.", + "in" : "header", + "name" : "Ocp-Apim-Subscription-Key", + "type" : "apiKey" } } } -} +} \ No newline at end of file diff --git a/openapi/openapi_redirect.json b/openapi/openapi_redirect.json index 3417dbf8..05dc3774 100644 --- a/openapi/openapi_redirect.json +++ b/openapi/openapi_redirect.json @@ -1,142 +1,123 @@ { - "openapi": "3.0.1", - "info": { - "title": "WISP-Converter-redirect", - "version": "0.4.12" + "openapi" : "3.0.1", + "info" : { + "title" : "WISP-Converter-redirect", + "version" : "0.4.12" }, - "servers": [ - { - "url": "http://localhost", - "description": "Generated server url" - } - ], - "tags": [ - { - "description": "Application info APIs", - "name": "Home" - }, - { - "description": "Conversion and redirection APIs", - "name": "Redirect" - } - ], - "paths": { - "/info": { - "get": { - "operationId": "healthCheck", - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppInfoResponse" + "servers" : [ { + "url" : "http://localhost", + "description" : "Generated server url" + } ], + "tags" : [ { + "description" : "Application info APIs", + "name" : "Home" + }, { + "description" : "Conversion and redirection APIs", + "name" : "Redirect" + } ], + "paths" : { + "/info" : { + "get" : { + "operationId" : "healthCheck", + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppInfoResponse" } } }, - "description": "OK.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + "description" : "OK.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "summary": "Return OK if application is started", - "tags": [ - "Home" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "summary" : "Return OK if application is started", + "tags" : [ "Home" ] }, - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ] + } ] }, - "/payments": { - "get": { - "operationId": "redirect", - "parameters": [ - { - "example": "identificativoIntermediarioPA_sessionId", - "in": "query", - "name": "idSession", - "required": true, - "schema": { - "type": "string" - } + "/payments" : { + "get" : { + "operationId" : "redirect", + "parameters" : [ { + "example" : "identificativoIntermediarioPA_sessionId", + "in" : "query", + "name" : "idSession", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "302": { - "description": "Redirect to Checkout service.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + } ], + "responses" : { + "302" : { + "description" : "Redirect to Checkout service.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } } } }, - "security": [ - { - "ApiKey": [] - } - ], - "tags": [ - "Redirect" - ] + "security" : [ { + "ApiKey" : [ ] + } ], + "tags" : [ "Redirect" ] }, - "parameters": [ - { - "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in": "header", - "name": "X-Request-Id", - "schema": { - "type": "string" - } + "parameters" : [ { + "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in" : "header", + "name" : "X-Request-Id", + "schema" : { + "type" : "string" } - ] + } ] } }, - "components": { - "schemas": { - "AppInfoResponse": { - "type": "object", - "properties": { - "environment": { - "type": "string" + "components" : { + "schemas" : { + "AppInfoResponse" : { + "type" : "object", + "properties" : { + "environment" : { + "type" : "string" }, - "name": { - "type": "string" + "name" : { + "type" : "string" }, - "version": { - "type": "string" + "version" : { + "type" : "string" } } } }, - "securitySchemes": { - "ApiKey": { - "description": "The API key to access this function app.", - "in": "header", - "name": "Ocp-Apim-Subscription-Key", - "type": "apiKey" + "securitySchemes" : { + "ApiKey" : { + "description" : "The API key to access this function app.", + "in" : "header", + "name" : "Ocp-Apim-Subscription-Key", + "type" : "apiKey" } } } -} +} \ No newline at end of file From c67e8a12cd26b534decf993b66f65faee273fb78 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Fri, 18 Oct 2024 10:56:14 +0000 Subject: [PATCH 11/12] Bump to version 0.4.13 [skip ci] --- helm/Chart.yaml | 4 +- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 1647 ++++++++++++++++++--------------- openapi/openapi_redirect.json | 201 ++-- pom.xml | 2 +- 7 files changed, 1004 insertions(+), 856 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index e0a90d33..8d90015f 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: pagopa-wisp-converter description: A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, interfacing them with GPD system type: application -version: 0.241.0 -appVersion: 0.4.12 +version: 0.242.0 +appVersion: 0.4.13 dependencies: - name: microservice-chart version: 3.0.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 2db03443..8f14038b 100644 --- a/helm/values-dev.yaml +++ b/helm/values-dev.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.12" + tag: "0.4.13" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index e520960c..03162ed9 100644 --- a/helm/values-prod.yaml +++ b/helm/values-prod.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.12" + tag: "0.4.13" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 00aba72d..67e09910 100644 --- a/helm/values-uat.yaml +++ b/helm/values-uat.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.12" + tag: "0.4.13" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index d9e4066f..06f06174 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -1,1044 +1,1173 @@ { - "openapi" : "3.0.1", - "info" : { - "description" : "A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, converting them in NMU payments.\n\n# OPERATIVE INFO\n\n\n## EVENT MAPPING IN RE\n\n
Details\nFIELD | SCOPE | DESCRIPTION\n- | - | -\n**requestId** | BOTH | The identifier, set by X-Request-ID, from which the events can be grouped.\n**operationId** | BOTH | The identifier associated to a request identifier\n**clientOperationId** | BOTH | The identifier that associate a client to an operation identifier.\n**component** | BOTH | The applicative component from which the event is generated.
In NDP it is mapped with field 'componente'.
Values:
_WISP_SOAP_CONVERTER_
_WISP_CONVERTER_\n**insertedTimestamp** | BOTH | The time on which the event is inserted in RE storage\n**eventCategory** | BOTH | The category on which the event can be grouped.
In NDP it is mapped with field 'categoriaEvento'.
Values:
_INTERFACE_
_INTERNAL_\n**eventSubcategory** | BOTH | The subcategory related to the specific nature of the event.
In NDP it is mapped with field 'sottoTipoEvento'.
Values:
_REQ_
_RESP_
_INTERN_\n**callType** | INTERFACE | The type of role that the application has in the communication with the remote endpoint.
Values:
_SERVER_
_CLIENT_\n**outcome** | INTERFACE | The outcome of the operation described by the event.
In NDP it is mapped with field 'esito'.
Values:
_SEND_: Correctly sent request to HTTP endpoint. In NDP it is mapped with value 'INVIATA'.
_SEND_FAILURE_: Failed to send request to HTTP endpoint. In NDP it is mapped with value 'INVIATA_KO'
_RECEIVED_: Received an OK response from HTTP endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_RECEIVED_FAILURE_: Received a failure response from endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_NEVER_RECEIVED_: Failed to receive response at all from endpoint. In NDP it is mapped with value 'NO_RICEVUTA'
_EXECUTED_INTERNAL_STEP_: Executed internal step on execution. In NDP it is mapped with value 'CAMBIO_STATO'\n**httpMethod** | INTERFACE | The HTTP method of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpUri** | INTERFACE | The URI related to the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpHeaders** | INTERFACE | The list of HTTP headers extracted from the request/response analyzed by the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpCallRemoteAddress** | INTERFACE | The remote IP address extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpStatusCode** | INTERFACE | The status code extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**executionTimeMs** | INTERFACE | The duration time of the invocation of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**compressedPayload** | INTERFACE | The payload of the request/response analyzed by the event.
This value is zipped using GZip compression algorithm.\n**compressedPayloadLength** | INTERFACE | The length (in number of characters) of the compressed payload.\n**businessProcess** | INTERFACE | The descriptive label associated to the endpoint called by user and related to the whole process.\n**operationStatus** | INTERFACE | The final status of the whole operation.
This is set only in the events that describe the response in output to user.\n**operationErrorTitle** | INTERFACE | The error title extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorDetail** | INTERFACE | The error detail message extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorCode** | INTERFACE | The error code extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**primitive** | INTERNAL | The typology of primitive analyzed and tracked by the event.
In NDP it is mapped with field 'eventType'.\n**sessionId** | INTERNAL | The session identifier generated by WISP SOAP Converter and used in the request.\n**cartId** | INTERNAL | The cart identifier used in the request.\n**iuv** | INTERNAL | The 'identificativo univoco pagamento' used in the request.\n**noticeNumber** | INTERNAL | The notice number (aka NAV code) used in the request.\n**domainId** | INTERNAL | The creditor institution identifier used in the request.\n**ccp** | INTERNAL | The 'codice contesto pagamento' used in the request.\n**psp** | INTERNAL | The payment service provider used in the request.\n**station** | INTERNAL | The station used in the request.\n**channel** | INTERNAL | The channel used in the request.\n**status** | INTERNAL | The state of the internal step executed.
Values:
_FOUND_RPT_IN_STORAGE_
_FOUND_RT_IN_STORAGE_
_EXTRACTED_DATA_FROM_RPT_
_CREATED_NEW_PAYMENT_POSITION_IN_GPD_
_GENERATED_NAV_FOR_NEW_PAYMENT_POSITION_
_UPDATED_EXISTING_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_INVALID_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_GPD_EXCEPTION_
_GENERATING_RT_FOR_REDIRECT_ERROR_
_GENERATED_CACHE_ABOUT_RPT_FOR_DECOUPLER_
_GENERATED_CACHE_ABOUT_RPT_FOR_CARTSESSION_CACHING_
_GENERATED_CACHE_ABOUT_RPT_FOR_RT_GENERATION_
_SAVED_RPT_IN_CART_RECEIVED_REDIRECT_URL_FROM_CHECKOUT_
_RT_NOT_GENERABLE_FOR_GPD_STATION_
_RT_NOT_GENERABLE_FOR_NOT_EXISTING_PAYMENT_POSITION_
_NEGATIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_POSITIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_RT_SEND_SUCCESS_
_RT_SENT_OK_
_RT_SEND_FAILURE_
_RT_ALREADY_SENT_
_RT_SEND_SCHEDULING_SUCCESS_
_RT_SEND_SCHEDULING_FAILURE_
_RT_SCHEDULED_SEND_SUCCESS_
_RT_SCHEDULED_SEND_FAILURE_
_RT_SEND_RESCHEDULING_FAILURE_
_RT_SEND_RESCHEDULING_REACHED_MAX_RETRIES_
_RT_SEND_RESCHEDULING_SUCCESS_
_RT_START_RECONCILIATION_PROCESS_
_RT_END_RECONCILIATION_PROCESS_
_RT_DEAD_LETTER_SAVED_
_RT_DEAD_LETTER_FAILED_
_RECEIPT_TIMER_GENERATION_CREATED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_CACHED_SEQUENCE_NUMBER_
_RECEIPT_TIMER_GENERATION_DELETED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_SKIP_DELETE_SCHEDULED_SEND_
_RECEIPT_TIMER_PAYMENT_TOKEN_TIMEOUT_TRIGGER_
_ECOMMERCE_HANG_TIMER_TRIGGER_
_ECOMMERCE_HANG_TIMER_CREATED_
_ECOMMERCE_HANG_TIMER_DELETED_
_RPT_TIMER_TRIGGER_
_RPT_TIMER_CREATED_
_RPT_TIMER_DELETED_
_RPT_TIMER_NOT_SET_
_COMMUNICATING_WITH_GPD_REQUEST_
_COMMUNICATING_WITH_GPD_RESPONSE_
_COMMUNICATING_WITH_IUV_GENERATOR_REQUEST_
_COMMUNICATING_WITH_IUV_GENERATOR_RESPONSE_
_COMMUNICATING_WITH_CHECKOUT_REQUEST_
_COMMUNICATING_WITH_CHECKOUT_RESPONSE_
_COMMUNICATING_WITH_DECOUPLER_CACHING_REQUEST_
_COMMUNICATING_WITH_DECOUPLER_CACHING_RESPONSE_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_REQUEST_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_RESPONSE_\n**info** | INTERNAL | The other information that can be inserted for the tracing.\n**paymentToken** | INTERNAL | The payment token.\n\n
\n\n\n## OPERATIONAL ERROR CODES\n\n
Details\nNAME | CODE | DESCRIPTION\n- | - | -\n**WIC-500** | *ERROR* | A not documented generic error occurred while execution. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1000** | *GENERIC_ERROR* | A generic error occurred while executing conversion flow. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1001** | *PARSING_GENERIC_ERROR* | A generic error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1002** | *PARSING_INVALID_HEADER* | An error occurred while parsing of the content header, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1003** | *PARSING_INVALID_BODY* | An error occurred while parsing of the content payload, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1004** | *PARSING_INVALID_XML_NODES* | An error occurred while parsing of the of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The XML content extracted, either from payload or from header, is invalid because it is not possible to extract tag nodes from document. So, the document is probably empty.\n**WIC-1005** | *PARSING_INVALID_ZIPPED_PAYLOAD* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The SOAP request analyzed and stored in dedicated storage is not usable for convert the debt positions in GPD system. This is probably due to an invalid conversion of the SOAP request via GZip algorithm executed before the same is stored in its storage.\n**WIC-1006** | *PARSING_RPT_PRIMITIVE_NOT_VALID* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The primitive (the content related to header 'soapaction') cannot be handled by WISP Converter application in redirect process: only one of nodoInviaRPT and nodoInviaCarrelloRPT can be accepted.\n**WIC-1100** | *VALIDATION_INVALID_MULTIBENEFICIARY_CART* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, the request is arrived as nodoInviaCarrelloRPT as multi-beneficiary cart, but the number of RPTs in the request is lower than two, so it cannot be correctly handled as multi-beneficiary.\n**WIC-1101** | *VALIDATION_INVALID_IBANS* | An error occurred while analyzing the RPTs extracted from SOAP request. An IBAN must always be set in RPT transfers if they aren't related to digital stamps (which don't require an IBAN, because they will be reported to specific subject). In this case, in one or more RPT transfers not related to digital stamp, the IBAN is not correctly set.\n**WIC-1102** | *VALIDATION_INVALID_DEBTOR* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, in a cart there are different debtor subjects and this is not permitted for this flow. So, the whole cart is discarded.\n**WIC-1200** | *CONFIGURATION_INVALID_CACHE* | An error occurred while trying to access data from cached configuration. It is possible that the cache is not retrieved yet by this service or a corrupted configuration was returned from APIConfig Cache internal service. If this problem still occurs, please check the connectivity with APIConfig Cache.\n**WIC-1201** | *CONFIGURATION_INVALID_STATION* | An error occurred while retrieving data from local cached configuration. In particular, it is not possible to retrieve the configuration about the station because it does not exists in cache, and maybe also in general configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1202** | *CONFIGURATION_INVALID_CREDITOR_INSTITUTION_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the required station does not exists in cached configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1203** | *CONFIGURATION_INVALID_STATION_REDIRECT_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration about redirection in error cases is not correctly set to points towards some creditor institution's endpoint. So, a change in configuration is required.\n**WIC-1204** | *CONFIGURATION_INVALID_STATION_SERVICE_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint for RT generator. So, a change in configuration is required.\n**WIC-1205** | *CONFIGURATION_NOT_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint. So, a change in configuration is required.\n**WIC-1206** | *CONFIGURATION_INVALID_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is correctly set to points towards GPD service endpoint but uses the 'v1' primitive version (and it must use the 'v2' version). So, a change in configuration is required.\n**WIC-1207** | *CONFIGURATION_INVALID_STATION_PROXY* | An error occurred while checking the station that will be used for the receipt send process. In particular, analyzing the station it turns out that the configuration is not correctly set to configure proxy structure for RT generator. So, a change in configuration is required.\n**WIC-1300** | *PAYMENT_POSITION_NOT_IN_PAYABLE_STATE* | An error occurred while checking an existing payment position. One or more RPTs extracted from the request refers to existing payment positions in GPD that have a state from which it is impossible to execute a payment flow. If the execution of this flow is related to a RPT cart, all the payments that can be retrieved or generated ex novo from those RPTs are declared as atomically invalid (if one RPT in cart is bad, all RPTs in cart are bad) and not payable with this flow.\n**WIC-1301** | *PAYMENT_POSITION_IN_INCONSISTENT_STATE* | An error occurred while checking an existing payment position in GPD system. The retrieved payment position, previously inserted in GPD by this same flow or by other procedures, is in an invalid state, not mappable to an existing value. This can be related to a wrong setting in GPD or a corruption of the retrieved data.\n**WIC-1302** | *PAYMENT_POSITION_NOT_VALID* | An error occurred while generating a payment position. In particular, something during the generation of a new payment position or the analysis of an existing payment position went wrong and the operation cannot be completed. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1303** | *PAYMENT_OPTION_NOT_EXTRACTABLE* | An error occurred while extracting a payment option from a payment position. This can be caused by a malformed payment position that does not have a payment option. Remember that a payment position in this flow must have one and only one payment option.\n**WIC-1400** | *RECEIPT_GENERATION_GENERIC_ERROR* | An error occurred while generating an RT (aka a receipt). An unhandled error occurred and it is impossible to complete the process. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1401** | *RECEIPT_GENERATION_WRONG_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an invalid response from which is impossible to continue the analysis. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1402** | *RECEIPT_GENERATION_ERROR_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an error response that explicit the occurred problem. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1403** | *RECEIPT_KO_NOT_SENT* | An error occurred while sending a negative RT (aka a KO receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1404** | *RECEIPT_OK_NOT_SENT* | An error occurred while sending a positive RT (aka a OK receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1405** | *RECEIPT_GENERATION_IDEMPOTENCY_LOCKED_BY_ANOTHER_PROCESS* | An error occurred while generating an RT (aka a receipt). Two or more generation processes are concurrently trying to execute the same operation on the same receipt but only one of them is currently 'authorized' to do so.\n**WIC-1406** | *RECEIPT_GENERATION_NOT_PROCESSABLE* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be started correctly because it is trying to lock the idempotency key that is already in a locked state. Probably the process is in execution by another thread.\n**WIC-1407** | *RECEIPT_GENERATION_ALREADY_PROCESSED* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because it is trying to unlock the idempotency key that is not in a locked state. Probably the process was already completed.\n**WIC-1408** | *RECEIPT_GENERATION_ANOMALY_ON_PROCESSING* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because there is a mismatch between the type of the cached receipt and the kind of request made for generate the same receipt. For example, the cached receipt is defined as negative paaInviaRT but the request was made to 'receipt/ok' endpoint. This is an anomaly that should never happens in a correct NMU flow execution but must be traced in case of error.\n**WIC-1409** | *RECEIPT_KO_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a negative RT (aka a KO receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1410** | *RECEIPT_OK_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a positive RT (aka a OK receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1411** | *RECEIPT_GENERATION_ERROR_DEAD_LETTER* | An error occurred while generating an RT (aka a receipt). Specifically, the creditor institution response status has not been recognized, for this reason the RT has been placed in the dead letter container.\n**WIC-2000** | *PERSISTENCE_SAVING_RE_ERROR* | An error occurred wile trying to store a new event in the Registro Eventi storage. The error is somewhat related to a persistence problem of the used storage and in the majority of the cases is temporary (maybe a 429 HTTP code). This error currently blocks the entire flow because that can lead to untraceable requests. For better understanding the cause, please execute a search in the log provider (Application Insights, Kibana, etc).\n**WIC-2001** | *PERSISTENCE_RPT_NOT_FOUND* | An error occurred while trying to retrieve the RPT content saved in storage by WISP SOAP Converter. This can be related either with the use of a wrong sessionId or a missed persistence from WISP SOAP Converter, so it is better to analyze the entire flow using Technical Support's APIs. This block totally the conversion of the RPTs in GPD's payment positions, so the whole process is discarded.\n**WIC-2002** | *PERSISTENCE_RT_NOT_FOUND* | An error occurred while trying to retrieve the RT content saved in storage by WISP Converter. This can be related either with the use of a wrong identifier, a missed persistence or an expired object, so it is better to analyze the entire flow using Technical Support's APIs.\n**WIC-2003** | *PERSISTENCE_REQUESTID_CACHING_ERROR* | An error occurred while trying to retrieve data from internal cache. Specifically, the cached key, defined in format wisp_nav2iuv__
\n", - "termsOfService" : "https://www.pagopa.gov.it/", - "title" : "WISP Converter", - "version" : "0.4.12" + "openapi": "3.0.1", + "info": { + "description": "A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, converting them in NMU payments.\n\n# OPERATIVE INFO\n\n\n## EVENT MAPPING IN RE\n\n
Details\nFIELD | SCOPE | DESCRIPTION\n- | - | -\n**requestId** | BOTH | The identifier, set by X-Request-ID, from which the events can be grouped.\n**operationId** | BOTH | The identifier associated to a request identifier\n**clientOperationId** | BOTH | The identifier that associate a client to an operation identifier.\n**component** | BOTH | The applicative component from which the event is generated.
In NDP it is mapped with field 'componente'.
Values:
_WISP_SOAP_CONVERTER_
_WISP_CONVERTER_\n**insertedTimestamp** | BOTH | The time on which the event is inserted in RE storage\n**eventCategory** | BOTH | The category on which the event can be grouped.
In NDP it is mapped with field 'categoriaEvento'.
Values:
_INTERFACE_
_INTERNAL_\n**eventSubcategory** | BOTH | The subcategory related to the specific nature of the event.
In NDP it is mapped with field 'sottoTipoEvento'.
Values:
_REQ_
_RESP_
_INTERN_\n**callType** | INTERFACE | The type of role that the application has in the communication with the remote endpoint.
Values:
_SERVER_
_CLIENT_\n**outcome** | INTERFACE | The outcome of the operation described by the event.
In NDP it is mapped with field 'esito'.
Values:
_SEND_: Correctly sent request to HTTP endpoint. In NDP it is mapped with value 'INVIATA'.
_SEND_FAILURE_: Failed to send request to HTTP endpoint. In NDP it is mapped with value 'INVIATA_KO'
_RECEIVED_: Received an OK response from HTTP endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_RECEIVED_FAILURE_: Received a failure response from endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_NEVER_RECEIVED_: Failed to receive response at all from endpoint. In NDP it is mapped with value 'NO_RICEVUTA'
_EXECUTED_INTERNAL_STEP_: Executed internal step on execution. In NDP it is mapped with value 'CAMBIO_STATO'\n**httpMethod** | INTERFACE | The HTTP method of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpUri** | INTERFACE | The URI related to the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpHeaders** | INTERFACE | The list of HTTP headers extracted from the request/response analyzed by the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpCallRemoteAddress** | INTERFACE | The remote IP address extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpStatusCode** | INTERFACE | The status code extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**executionTimeMs** | INTERFACE | The duration time of the invocation of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**compressedPayload** | INTERFACE | The payload of the request/response analyzed by the event.
This value is zipped using GZip compression algorithm.\n**compressedPayloadLength** | INTERFACE | The length (in number of characters) of the compressed payload.\n**businessProcess** | INTERFACE | The descriptive label associated to the endpoint called by user and related to the whole process.\n**operationStatus** | INTERFACE | The final status of the whole operation.
This is set only in the events that describe the response in output to user.\n**operationErrorTitle** | INTERFACE | The error title extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorDetail** | INTERFACE | The error detail message extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorCode** | INTERFACE | The error code extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**primitive** | INTERNAL | The typology of primitive analyzed and tracked by the event.
In NDP it is mapped with field 'eventType'.\n**sessionId** | INTERNAL | The session identifier generated by WISP SOAP Converter and used in the request.\n**cartId** | INTERNAL | The cart identifier used in the request.\n**iuv** | INTERNAL | The 'identificativo univoco pagamento' used in the request.\n**noticeNumber** | INTERNAL | The notice number (aka NAV code) used in the request.\n**domainId** | INTERNAL | The creditor institution identifier used in the request.\n**ccp** | INTERNAL | The 'codice contesto pagamento' used in the request.\n**psp** | INTERNAL | The payment service provider used in the request.\n**station** | INTERNAL | The station used in the request.\n**channel** | INTERNAL | The channel used in the request.\n**status** | INTERNAL | The state of the internal step executed.
Values:
_FOUND_RPT_IN_STORAGE_
_FOUND_RT_IN_STORAGE_
_EXTRACTED_DATA_FROM_RPT_
_CREATED_NEW_PAYMENT_POSITION_IN_GPD_
_GENERATED_NAV_FOR_NEW_PAYMENT_POSITION_
_UPDATED_EXISTING_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_INVALID_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_GPD_EXCEPTION_
_GENERATING_RT_FOR_REDIRECT_ERROR_
_GENERATED_CACHE_ABOUT_RPT_FOR_DECOUPLER_
_GENERATED_CACHE_ABOUT_RPT_FOR_CARTSESSION_CACHING_
_GENERATED_CACHE_ABOUT_RPT_FOR_RT_GENERATION_
_SAVED_RPT_IN_CART_RECEIVED_REDIRECT_URL_FROM_CHECKOUT_
_RT_NOT_GENERABLE_FOR_GPD_STATION_
_RT_NOT_GENERABLE_FOR_NOT_EXISTING_PAYMENT_POSITION_
_NEGATIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_POSITIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_RT_SEND_SUCCESS_
_RT_SENT_OK_
_RT_SEND_FAILURE_
_RT_ALREADY_SENT_
_RT_SEND_SCHEDULING_SUCCESS_
_RT_SEND_SCHEDULING_FAILURE_
_RT_SCHEDULED_SEND_SUCCESS_
_RT_SCHEDULED_SEND_FAILURE_
_RT_SEND_RESCHEDULING_FAILURE_
_RT_SEND_RESCHEDULING_REACHED_MAX_RETRIES_
_RT_SEND_RESCHEDULING_SUCCESS_
_RT_START_RECONCILIATION_PROCESS_
_RT_END_RECONCILIATION_PROCESS_
_RT_DEAD_LETTER_SAVED_
_RT_DEAD_LETTER_FAILED_
_RECEIPT_TIMER_GENERATION_CREATED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_CACHED_SEQUENCE_NUMBER_
_RECEIPT_TIMER_GENERATION_DELETED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_SKIP_DELETE_SCHEDULED_SEND_
_RECEIPT_TIMER_PAYMENT_TOKEN_TIMEOUT_TRIGGER_
_ECOMMERCE_HANG_TIMER_TRIGGER_
_ECOMMERCE_HANG_TIMER_CREATED_
_ECOMMERCE_HANG_TIMER_DELETED_
_RPT_TIMER_TRIGGER_
_RPT_TIMER_CREATED_
_RPT_TIMER_DELETED_
_RPT_TIMER_NOT_SET_
_COMMUNICATING_WITH_GPD_REQUEST_
_COMMUNICATING_WITH_GPD_RESPONSE_
_COMMUNICATING_WITH_IUV_GENERATOR_REQUEST_
_COMMUNICATING_WITH_IUV_GENERATOR_RESPONSE_
_COMMUNICATING_WITH_CHECKOUT_REQUEST_
_COMMUNICATING_WITH_CHECKOUT_RESPONSE_
_COMMUNICATING_WITH_DECOUPLER_CACHING_REQUEST_
_COMMUNICATING_WITH_DECOUPLER_CACHING_RESPONSE_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_REQUEST_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_RESPONSE_\n**info** | INTERNAL | The other information that can be inserted for the tracing.\n**paymentToken** | INTERNAL | The payment token.\n\n
\n\n\n## OPERATIONAL ERROR CODES\n\n
Details\nNAME | CODE | DESCRIPTION\n- | - | -\n**WIC-500** | *ERROR* | A not documented generic error occurred while execution. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1000** | *GENERIC_ERROR* | A generic error occurred while executing conversion flow. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1001** | *PARSING_GENERIC_ERROR* | A generic error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1002** | *PARSING_INVALID_HEADER* | An error occurred while parsing of the content header, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1003** | *PARSING_INVALID_BODY* | An error occurred while parsing of the content payload, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1004** | *PARSING_INVALID_XML_NODES* | An error occurred while parsing of the of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The XML content extracted, either from payload or from header, is invalid because it is not possible to extract tag nodes from document. So, the document is probably empty.\n**WIC-1005** | *PARSING_INVALID_ZIPPED_PAYLOAD* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The SOAP request analyzed and stored in dedicated storage is not usable for convert the debt positions in GPD system. This is probably due to an invalid conversion of the SOAP request via GZip algorithm executed before the same is stored in its storage.\n**WIC-1006** | *PARSING_RPT_PRIMITIVE_NOT_VALID* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The primitive (the content related to header 'soapaction') cannot be handled by WISP Converter application in redirect process: only one of nodoInviaRPT and nodoInviaCarrelloRPT can be accepted.\n**WIC-1100** | *VALIDATION_INVALID_MULTIBENEFICIARY_CART* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, the request is arrived as nodoInviaCarrelloRPT as multi-beneficiary cart, but the number of RPTs in the request is lower than two, so it cannot be correctly handled as multi-beneficiary.\n**WIC-1101** | *VALIDATION_INVALID_IBANS* | An error occurred while analyzing the RPTs extracted from SOAP request. An IBAN must always be set in RPT transfers if they aren't related to digital stamps (which don't require an IBAN, because they will be reported to specific subject). In this case, in one or more RPT transfers not related to digital stamp, the IBAN is not correctly set.\n**WIC-1102** | *VALIDATION_INVALID_DEBTOR* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, in a cart there are different debtor subjects and this is not permitted for this flow. So, the whole cart is discarded.\n**WIC-1200** | *CONFIGURATION_INVALID_CACHE* | An error occurred while trying to access data from cached configuration. It is possible that the cache is not retrieved yet by this service or a corrupted configuration was returned from APIConfig Cache internal service. If this problem still occurs, please check the connectivity with APIConfig Cache.\n**WIC-1201** | *CONFIGURATION_INVALID_STATION* | An error occurred while retrieving data from local cached configuration. In particular, it is not possible to retrieve the configuration about the station because it does not exists in cache, and maybe also in general configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1202** | *CONFIGURATION_INVALID_CREDITOR_INSTITUTION_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the required station does not exists in cached configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1203** | *CONFIGURATION_INVALID_STATION_REDIRECT_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration about redirection in error cases is not correctly set to points towards some creditor institution's endpoint. So, a change in configuration is required.\n**WIC-1204** | *CONFIGURATION_INVALID_STATION_SERVICE_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint for RT generator. So, a change in configuration is required.\n**WIC-1205** | *CONFIGURATION_NOT_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint. So, a change in configuration is required.\n**WIC-1206** | *CONFIGURATION_INVALID_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is correctly set to points towards GPD service endpoint but uses the 'v1' primitive version (and it must use the 'v2' version). So, a change in configuration is required.\n**WIC-1207** | *CONFIGURATION_INVALID_STATION_PROXY* | An error occurred while checking the station that will be used for the receipt send process. In particular, analyzing the station it turns out that the configuration is not correctly set to configure proxy structure for RT generator. So, a change in configuration is required.\n**WIC-1300** | *PAYMENT_POSITION_NOT_IN_PAYABLE_STATE* | An error occurred while checking an existing payment position. One or more RPTs extracted from the request refers to existing payment positions in GPD that have a state from which it is impossible to execute a payment flow. If the execution of this flow is related to a RPT cart, all the payments that can be retrieved or generated ex novo from those RPTs are declared as atomically invalid (if one RPT in cart is bad, all RPTs in cart are bad) and not payable with this flow.\n**WIC-1301** | *PAYMENT_POSITION_IN_INCONSISTENT_STATE* | An error occurred while checking an existing payment position in GPD system. The retrieved payment position, previously inserted in GPD by this same flow or by other procedures, is in an invalid state, not mappable to an existing value. This can be related to a wrong setting in GPD or a corruption of the retrieved data.\n**WIC-1302** | *PAYMENT_POSITION_NOT_VALID* | An error occurred while generating a payment position. In particular, something during the generation of a new payment position or the analysis of an existing payment position went wrong and the operation cannot be completed. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1303** | *PAYMENT_OPTION_NOT_EXTRACTABLE* | An error occurred while extracting a payment option from a payment position. This can be caused by a malformed payment position that does not have a payment option. Remember that a payment position in this flow must have one and only one payment option.\n**WIC-1400** | *RECEIPT_GENERATION_GENERIC_ERROR* | An error occurred while generating an RT (aka a receipt). An unhandled error occurred and it is impossible to complete the process. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1401** | *RECEIPT_GENERATION_WRONG_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an invalid response from which is impossible to continue the analysis. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1402** | *RECEIPT_GENERATION_ERROR_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an error response that explicit the occurred problem. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1403** | *RECEIPT_KO_NOT_SENT* | An error occurred while sending a negative RT (aka a KO receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1404** | *RECEIPT_OK_NOT_SENT* | An error occurred while sending a positive RT (aka a OK receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1405** | *RECEIPT_GENERATION_IDEMPOTENCY_LOCKED_BY_ANOTHER_PROCESS* | An error occurred while generating an RT (aka a receipt). Two or more generation processes are concurrently trying to execute the same operation on the same receipt but only one of them is currently 'authorized' to do so.\n**WIC-1406** | *RECEIPT_GENERATION_NOT_PROCESSABLE* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be started correctly because it is trying to lock the idempotency key that is already in a locked state. Probably the process is in execution by another thread.\n**WIC-1407** | *RECEIPT_GENERATION_ALREADY_PROCESSED* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because it is trying to unlock the idempotency key that is not in a locked state. Probably the process was already completed.\n**WIC-1408** | *RECEIPT_GENERATION_ANOMALY_ON_PROCESSING* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because there is a mismatch between the type of the cached receipt and the kind of request made for generate the same receipt. For example, the cached receipt is defined as negative paaInviaRT but the request was made to 'receipt/ok' endpoint. This is an anomaly that should never happens in a correct NMU flow execution but must be traced in case of error.\n**WIC-1409** | *RECEIPT_KO_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a negative RT (aka a KO receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1410** | *RECEIPT_OK_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a positive RT (aka a OK receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1411** | *RECEIPT_GENERATION_ERROR_DEAD_LETTER* | An error occurred while generating an RT (aka a receipt). Specifically, the creditor institution response status has not been recognized, for this reason the RT has been placed in the dead letter container.\n**WIC-2000** | *PERSISTENCE_SAVING_RE_ERROR* | An error occurred wile trying to store a new event in the Registro Eventi storage. The error is somewhat related to a persistence problem of the used storage and in the majority of the cases is temporary (maybe a 429 HTTP code). This error currently blocks the entire flow because that can lead to untraceable requests. For better understanding the cause, please execute a search in the log provider (Application Insights, Kibana, etc).\n**WIC-2001** | *PERSISTENCE_RPT_NOT_FOUND* | An error occurred while trying to retrieve the RPT content saved in storage by WISP SOAP Converter. This can be related either with the use of a wrong sessionId or a missed persistence from WISP SOAP Converter, so it is better to analyze the entire flow using Technical Support's APIs. This block totally the conversion of the RPTs in GPD's payment positions, so the whole process is discarded.\n**WIC-2002** | *PERSISTENCE_RT_NOT_FOUND* | An error occurred while trying to retrieve the RT content saved in storage by WISP Converter. This can be related either with the use of a wrong identifier, a missed persistence or an expired object, so it is better to analyze the entire flow using Technical Support's APIs.\n**WIC-2003** | *PERSISTENCE_REQUESTID_CACHING_ERROR* | An error occurred while trying to retrieve data from internal cache. Specifically, the cached key, defined in format wisp_nav2iuv__
\n", + "termsOfService": "https://www.pagopa.gov.it/", + "title": "WISP Converter", + "version": "0.4.13" }, - "servers" : [ { - "url" : "http://localhost", - "description" : "Generated server url" - } ], - "tags" : [ { - "description" : "Application info APIs", - "name" : "Home" - }, { - "description" : "Create and Delete payment token timer", - "name" : "ReceiptTimer" - }, { - "description" : "ECs and Stations configuration", - "name" : "Configuration" - }, { - "description" : "Convert sendPaymentResultV2, closePaymentV2 or paSendRTV2 into paaInviaRT to EC", - "name" : "Receipt" - }, { - "description" : "Create and Delete rpt timer", - "name" : "RPTTimer" - }, { - "description" : "Conversion and redirection APIs", - "name" : "Redirect" - }, { - "description" : "Recovery and reconciliation APIs", - "name" : "Recovery" - } ], - "paths" : { - "/info" : { - "get" : { - "operationId" : "healthCheck", - "responses" : { - "200" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/AppInfoResponse" + "servers": [ + { + "url": "http://localhost", + "description": "Generated server url" + } + ], + "tags": [ + { + "description": "Application info APIs", + "name": "Home" + }, + { + "description": "Create and Delete payment token timer", + "name": "ReceiptTimer" + }, + { + "description": "ECs and Stations configuration", + "name": "Configuration" + }, + { + "description": "Convert sendPaymentResultV2, closePaymentV2 or paSendRTV2 into paaInviaRT to EC", + "name": "Receipt" + }, + { + "description": "Create and Delete rpt timer", + "name": "RPTTimer" + }, + { + "description": "Conversion and redirection APIs", + "name": "Redirect" + }, + { + "description": "Recovery and reconciliation APIs", + "name": "Recovery" + } + ], + "paths": { + "/info": { + "get": { + "operationId": "healthCheck", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppInfoResponse" } } }, - "description" : "OK.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "OK.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "Return OK if application is started", - "tags" : [ "Home" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "Return OK if application is started", + "tags": [ + "Home" + ] }, - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ] + ] }, - "/payments" : { - "get" : { - "operationId" : "redirect", - "parameters" : [ { - "example" : "identificativoIntermediarioPA_sessionId", - "in" : "query", - "name" : "idSession", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "302" : { - "description" : "Redirect to Checkout service.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/payments": { + "get": { + "operationId": "redirect", + "parameters": [ + { + "example": "identificativoIntermediarioPA_sessionId", + "in": "query", + "name": "idSession", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "302": { + "description": "Redirect to Checkout service.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "tags" : [ "Redirect" ] + "security": [ + { + "ApiKey": [] + } + ], + "tags": [ + "Redirect" + ] }, - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ] + ] }, - "/receipt" : { - "get" : { - "operationId" : "receiptRetrieve", - "parameters" : [ { - "in" : "query", - "name" : "ci", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "in" : "query", - "name" : "ccp", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "in" : "query", - "name" : "iuv", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "type" : "string" + "/receipt": { + "get": { + "operationId": "receiptRetrieve", + "parameters": [ + { + "in": "query", + "name": "ci", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "ccp", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "iuv", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "type": "string" } } }, - "description" : "Receipt exists", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "Receipt exists", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "tags" : [ "Receipt" ] + "security": [ + { + "ApiKey": [] + } + ], + "tags": [ + "Receipt" + ] }, - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ] + ] }, - "/receipt/ko" : { - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "/receipt/ko": { + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ], - "post" : { - "operationId" : "receiptKo", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "type" : "string" + ], + "post": { + "operationId": "receiptKo", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "string" } } }, - "required" : true + "required": true }, - "responses" : { - "200" : { - "description" : "Successfully forwarded negative paaInviaRT to EC", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "responses": { + "200": { + "description": "Successfully forwarded negative paaInviaRT to EC", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "tags" : [ "Receipt" ] + "security": [ + { + "ApiKey": [] + } + ], + "tags": [ + "Receipt" + ] } }, - "/receipt/ok" : { - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "/receipt/ok": { + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ], - "post" : { - "operationId" : "receiptOk", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ReceiptRequest" + ], + "post": { + "operationId": "receiptOk", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReceiptRequest" } } }, - "required" : true + "required": true }, - "responses" : { - "200" : { - "description" : "Successfully forwarded positive paaInviaRT to EC", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "responses": { + "200": { + "description": "Successfully forwarded positive paaInviaRT to EC", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "tags" : [ "Receipt" ] + "security": [ + { + "ApiKey": [] + } + ], + "tags": [ + "Receipt" + ] } }, - "/receipt/timer" : { - "delete" : { - "description" : "Delete a timer by paymentToken", - "operationId" : "deleteTimer_1", - "parameters" : [ { - "in" : "query", - "name" : "paymentTokens", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "description" : "Successfully paymentToken expiration timer deleted", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/receipt/timer": { + "delete": { + "description": "Delete a timer by paymentToken", + "operationId": "deleteTimer_1", + "parameters": [ + { + "in": "query", + "name": "paymentTokens", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully paymentToken expiration timer deleted", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "deleteTimer", - "tags" : [ "ReceiptTimer" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "deleteTimer", + "tags": [ + "ReceiptTimer" + ] }, - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ], - "post" : { - "description" : "Create a timer linked with paymentToken and receipt data", - "operationId" : "createTimer_1", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ReceiptTimerRequest" + ], + "post": { + "description": "Create a timer linked with paymentToken and receipt data", + "operationId": "createTimer_1", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReceiptTimerRequest" } } }, - "required" : true + "required": true }, - "responses" : { - "200" : { - "description" : "Successfully paymentToken expiration timer created", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "responses": { + "200": { + "description": "Successfully paymentToken expiration timer created", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "createTimer", - "tags" : [ "ReceiptTimer" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "createTimer", + "tags": [ + "ReceiptTimer" + ] } }, - "/recovery/partitions" : { - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "/recovery/partitions": { + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ], - "post" : { - "description" : "Execute reconciliation of all receipts contained in the partitions of the request", - "operationId" : "recoverReceiptToBeReSentByPartition", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/RecoveryReceiptByPartitionRequest" + ], + "post": { + "description": "Execute reconciliation of all receipts contained in the partitions of the request", + "operationId": "recoverReceiptToBeReSentByPartition", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecoveryReceiptByPartitionRequest" } } }, - "required" : true + "required": true }, - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/RecoveryReceiptReportResponse" + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RecoveryReceiptReportResponse" } } }, - "description" : "Reconciliation scheduled", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "Reconciliation scheduled", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "Execute reconciliation for passed receipts by partition.", - "tags" : [ "Recovery" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "Execute reconciliation for passed receipts by partition.", + "tags": [ + "Recovery" + ] } }, - "/recovery/receipts" : { - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "/recovery/receipts": { + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ], - "post" : { - "description" : "Execute reconciliation of all receipts in the request, searching by passed identifier", - "operationId" : "recoverReceiptToBeReSent", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/RecoveryReceiptRequest" + ], + "post": { + "description": "Execute reconciliation of all receipts in the request, searching by passed identifier", + "operationId": "recoverReceiptToBeReSent", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecoveryReceiptRequest" } } }, - "required" : true + "required": true }, - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/RecoveryReceiptReportResponse" + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RecoveryReceiptReportResponse" } } }, - "description" : "Reconciliation scheduled", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "Reconciliation scheduled", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "Execute reconciliation for passed receipts.", - "tags" : [ "Recovery" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "Execute reconciliation for passed receipts.", + "tags": [ + "Recovery" + ] } }, - "/recovery/sessionIds/ok" : { - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "/recovery/sessionIds/ok": { + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ], - "post" : { - "description" : "Execute reconciliation of all receipts related to the sessionIds of the request", - "operationId" : "recoverReceiptToBeReSentBySessionId", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/RecoveryReceiptBySessionIdRequest" + ], + "post": { + "description": "Execute reconciliation of all receipts related to the sessionIds of the request", + "operationId": "recoverReceiptToBeReSentBySessionId", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecoveryReceiptBySessionIdRequest" } } }, - "required" : true + "required": true }, - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/RecoveryReceiptReportResponse" + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RecoveryReceiptReportResponse" } } }, - "description" : "Reconciliation scheduled", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "Reconciliation scheduled", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "Execute reconciliation for OK receipts by sessionId.", - "tags" : [ "Recovery" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "Execute reconciliation for OK receipts by sessionId.", + "tags": [ + "Recovery" + ] } }, - "/recovery/{creditor_institution}/receipt-ko" : { - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "/recovery/{creditor_institution}/receipt-ko": { + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ], - "post" : { - "description" : "Execute reconciliation of all IUVs for certain creditor institution, sending RT for close payment.", - "operationId" : "recoverReceiptKOForCreditorInstitution", - "parameters" : [ { - "in" : "path", - "name" : "creditor_institution", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "in" : "query", - "name" : "dateFrom", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "in" : "query", - "name" : "dateTo", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/RecoveryReceiptResponse" + ], + "post": { + "description": "Execute reconciliation of all IUVs for certain creditor institution, sending RT for close payment.", + "operationId": "recoverReceiptKOForCreditorInstitution", + "parameters": [ + { + "in": "path", + "name": "creditor_institution", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "dateFrom", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "dateTo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RecoveryReceiptResponse" } } }, - "description" : "Started reconciling IUVs with explicit RT send", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "Started reconciling IUVs with explicit RT send", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "Execute IUV reconciliation for certain creditor institution.", - "tags" : [ "Recovery" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "Execute IUV reconciliation for certain creditor institution.", + "tags": [ + "Recovery" + ] } }, - "/recovery/{creditor_institution}/rpt/{iuv}/receipt-ko" : { - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "/recovery/{creditor_institution}/rpt/{iuv}/receipt-ko": { + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ], - "post" : { - "description" : "Execute reconciliation of all IUVs for certain creditor institution, sending RT for close payment.", - "operationId" : "recoverReceiptKOForCreditorInstitutionAndIUV", - "parameters" : [ { - "in" : "path", - "name" : "creditor_institution", - "required" : true, - "schema" : { - "pattern" : "[a-zA-Z0-9_-]{1,100}", - "type" : "string" - } - }, { - "in" : "path", - "name" : "iuv", - "required" : true, - "schema" : { - "pattern" : "[a-zA-Z0-9_-]{1,100}", - "type" : "string" - } - }, { - "in" : "query", - "name" : "dateFrom", - "required" : true, - "schema" : { - "pattern" : "[a-zA-Z0-9_-]{1,10}", - "type" : "string" - } - }, { - "in" : "query", - "name" : "dateTo", - "required" : true, - "schema" : { - "pattern" : "[a-zA-Z0-9_-]{1,10}", - "type" : "string" - } - } ], - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/RecoveryReceiptResponse" + ], + "post": { + "description": "Execute reconciliation of all IUVs for certain creditor institution, sending RT for close payment.", + "operationId": "recoverReceiptKOForCreditorInstitutionAndIUV", + "parameters": [ + { + "in": "path", + "name": "creditor_institution", + "required": true, + "schema": { + "pattern": "[a-zA-Z0-9_-]{1,100}", + "type": "string" + } + }, + { + "in": "path", + "name": "iuv", + "required": true, + "schema": { + "pattern": "[a-zA-Z0-9_-]{1,100}", + "type": "string" + } + }, + { + "in": "query", + "name": "dateFrom", + "required": true, + "schema": { + "pattern": "[a-zA-Z0-9_-]{1,10}", + "type": "string" + } + }, + { + "in": "query", + "name": "dateTo", + "required": true, + "schema": { + "pattern": "[a-zA-Z0-9_-]{1,10}", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RecoveryReceiptResponse" } } }, - "description" : "Completed IUV reconciliation with explicit RT submission", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "Completed IUV reconciliation with explicit RT submission", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "400" : { - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/RecoveryReceiptResponse" + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RecoveryReceiptResponse" } } }, - "description" : "It is not possible to complete reconciliation (with explicit RT submission) for the submitted UIV", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "It is not possible to complete reconciliation (with explicit RT submission) for the submitted UIV", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "Execute IUV reconciliation for certain creditor institution.", - "tags" : [ "Recovery" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "Execute IUV reconciliation for certain creditor institution.", + "tags": [ + "Recovery" + ] } }, - "/rpt/timer" : { - "delete" : { - "description" : "Delete a timer by sessionId", - "operationId" : "deleteTimer", - "parameters" : [ { - "in" : "query", - "name" : "sessionId", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "description" : "Successfully rpt timer deleted", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/rpt/timer": { + "delete": { + "description": "Delete a timer by sessionId", + "operationId": "deleteTimer", + "parameters": [ + { + "in": "query", + "name": "sessionId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully rpt timer deleted", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "deleteRPTTimer", - "tags" : [ "RPTTimer" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "deleteRPTTimer", + "tags": [ + "RPTTimer" + ] }, - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ], - "post" : { - "description" : "Create a timer from sessionId data", - "operationId" : "createTimer", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/RPTTimerRequest" + ], + "post": { + "description": "Create a timer from sessionId data", + "operationId": "createTimer", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RPTTimerRequest" } } }, - "required" : true + "required": true }, - "responses" : { - "200" : { - "description" : "Successfully rpt timer created", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "responses": { + "200": { + "description": "Successfully rpt timer created", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "createRPTTimer", - "tags" : [ "RPTTimer" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "createRPTTimer", + "tags": [ + "RPTTimer" + ] } }, - "/whitelist/cis" : { - "get" : { - "operationId" : "getCreditorInstitutions", - "responses" : { - "200" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ConfigurationModel" + "/whitelist/cis": { + "get": { + "operationId": "getCreditorInstitutions", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigurationModel" } } }, - "description" : "Configuration for EC retrieved.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "Configuration for EC retrieved.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "404" : { - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/ConfigurationModel" + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ConfigurationModel" } } }, - "description" : "Configuration for EC not found.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "Configuration for EC not found.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "Return the string containing all creditor institutions for the wisp converter logic", - "tags" : [ "Configuration" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "Return the string containing all creditor institutions for the wisp converter logic", + "tags": [ + "Configuration" + ] }, - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ], - "post" : { - "operationId" : "createCreditorInstitutionsConfiguration", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ConfigurationModel" + ], + "post": { + "operationId": "createCreditorInstitutionsConfiguration", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigurationModel" } } }, - "required" : true + "required": true }, - "responses" : { - "200" : { - "description" : "OK.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "responses": { + "200": { + "description": "OK.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "201" : { - "description" : "Created", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "201": { + "description": "Created", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "Create the string containing all creditor institutions for the wisp converter logic", - "tags" : [ "Configuration" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "Create the string containing all creditor institutions for the wisp converter logic", + "tags": [ + "Configuration" + ] } }, - "/whitelist/stations" : { - "get" : { - "operationId" : "getStations", - "responses" : { - "200" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ConfigurationModel" + "/whitelist/stations": { + "get": { + "operationId": "getStations", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigurationModel" } } }, - "description" : "Configuration for Stations retrieved.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "Configuration for Stations retrieved.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "404" : { - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/ConfigurationModel" + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ConfigurationModel" } } }, - "description" : "Configuration for Stations not found.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "Configuration for Stations not found.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "Return the string containing all stations for the wisp converter logic", - "tags" : [ "Configuration" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "Return the string containing all stations for the wisp converter logic", + "tags": [ + "Configuration" + ] }, - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ], - "post" : { - "operationId" : "createStationsConfiguration", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ConfigurationModel" + ], + "post": { + "operationId": "createStationsConfiguration", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigurationModel" } } }, - "required" : true + "required": true }, - "responses" : { - "200" : { - "description" : "OK.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "responses": { + "200": { + "description": "OK.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "201" : { - "description" : "Created", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "201": { + "description": "Created", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "Create the string containing all stations for the wisp converter logic", - "tags" : [ "Configuration" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "Create the string containing all stations for the wisp converter logic", + "tags": [ + "Configuration" + ] } } }, - "components" : { - "schemas" : { - "AppInfoResponse" : { - "type" : "object", - "properties" : { - "environment" : { - "type" : "string" + "components": { + "schemas": { + "AppInfoResponse": { + "type": "object", + "properties": { + "environment": { + "type": "string" }, - "name" : { - "type" : "string" + "name": { + "type": "string" }, - "version" : { - "type" : "string" + "version": { + "type": "string" } } }, - "ConfigurationModel" : { - "type" : "object", - "properties" : { - "key" : { - "type" : "string" + "ConfigurationModel": { + "type": "object", + "properties": { + "key": { + "type": "string" } } }, - "PairStringString" : { - "type" : "object", - "properties" : { - "first" : { - "type" : "string" + "PairStringString": { + "type": "object", + "properties": { + "first": { + "type": "string" }, - "second" : { - "type" : "string" + "second": { + "type": "string" } } }, - "RPTTimerRequest" : { - "type" : "object", - "properties" : { - "sessionId" : { - "type" : "string" + "RPTTimerRequest": { + "type": "object", + "properties": { + "sessionId": { + "type": "string" } } }, - "ReceiptRequest" : { - "type" : "object", - "properties" : { - "content" : { - "type" : "string" + "ReceiptRequest": { + "type": "object", + "properties": { + "content": { + "type": "string" } } }, - "ReceiptTimerRequest" : { - "type" : "object", - "properties" : { - "expirationTime" : { - "type" : "integer", - "format" : "int64" + "ReceiptTimerRequest": { + "type": "object", + "properties": { + "expirationTime": { + "type": "integer", + "format": "int64" }, - "fiscalCode" : { - "pattern" : "\\w*", - "type" : "string" + "fiscalCode": { + "pattern": "\\w*", + "type": "string" }, - "noticeNumber" : { - "pattern" : "\\d*", - "type" : "string" + "noticeNumber": { + "pattern": "\\d*", + "type": "string" }, - "paymentToken" : { - "type" : "string" + "paymentToken": { + "type": "string" }, - "sessionId" : { - "type" : "string" + "sessionId": { + "type": "string" } } }, - "RecoveryReceiptByPartitionRequest" : { - "type" : "object", - "properties" : { - "partitionKeys" : { - "type" : "array", - "items" : { - "type" : "string" + "RecoveryReceiptByPartitionRequest": { + "type": "object", + "properties": { + "partitionKeys": { + "type": "array", + "items": { + "type": "string" } } } }, - "RecoveryReceiptBySessionIdRequest" : { - "type" : "object", - "properties" : { - "sessionIds" : { - "type" : "array", - "items" : { - "type" : "string" + "RecoveryReceiptBySessionIdRequest": { + "type": "object", + "properties": { + "sessionIds": { + "type": "array", + "items": { + "type": "string" } } } }, - "RecoveryReceiptPaymentResponse" : { - "type" : "object", - "properties" : { - "ccp" : { - "type" : "string" + "RecoveryReceiptPaymentResponse": { + "type": "object", + "properties": { + "ccp": { + "type": "string" }, - "ci" : { - "type" : "string" + "ci": { + "type": "string" }, - "iuv" : { - "type" : "string" + "iuv": { + "type": "string" } } }, - "RecoveryReceiptReportResponse" : { - "type" : "object", - "properties" : { - "receiptStatus" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/PairStringString" + "RecoveryReceiptReportResponse": { + "type": "object", + "properties": { + "receiptStatus": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PairStringString" } } } }, - "RecoveryReceiptRequest" : { - "type" : "object", - "properties" : { - "receiptIds" : { - "type" : "array", - "items" : { - "type" : "string" + "RecoveryReceiptRequest": { + "type": "object", + "properties": { + "receiptIds": { + "type": "array", + "items": { + "type": "string" } } } }, - "RecoveryReceiptResponse" : { - "type" : "object", - "properties" : { - "payments" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/RecoveryReceiptPaymentResponse" + "RecoveryReceiptResponse": { + "type": "object", + "properties": { + "payments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecoveryReceiptPaymentResponse" } } } } }, - "securitySchemes" : { - "ApiKey" : { - "description" : "The API key to access this function app.", - "in" : "header", - "name" : "Ocp-Apim-Subscription-Key", - "type" : "apiKey" + "securitySchemes": { + "ApiKey": { + "description": "The API key to access this function app.", + "in": "header", + "name": "Ocp-Apim-Subscription-Key", + "type": "apiKey" } } } -} \ No newline at end of file +} diff --git a/openapi/openapi_redirect.json b/openapi/openapi_redirect.json index 05dc3774..dd868e1a 100644 --- a/openapi/openapi_redirect.json +++ b/openapi/openapi_redirect.json @@ -1,123 +1,142 @@ { - "openapi" : "3.0.1", - "info" : { - "title" : "WISP-Converter-redirect", - "version" : "0.4.12" + "openapi": "3.0.1", + "info": { + "title": "WISP-Converter-redirect", + "version": "0.4.13" }, - "servers" : [ { - "url" : "http://localhost", - "description" : "Generated server url" - } ], - "tags" : [ { - "description" : "Application info APIs", - "name" : "Home" - }, { - "description" : "Conversion and redirection APIs", - "name" : "Redirect" - } ], - "paths" : { - "/info" : { - "get" : { - "operationId" : "healthCheck", - "responses" : { - "200" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/AppInfoResponse" + "servers": [ + { + "url": "http://localhost", + "description": "Generated server url" + } + ], + "tags": [ + { + "description": "Application info APIs", + "name": "Home" + }, + { + "description": "Conversion and redirection APIs", + "name": "Redirect" + } + ], + "paths": { + "/info": { + "get": { + "operationId": "healthCheck", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppInfoResponse" } } }, - "description" : "OK.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "description": "OK.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "summary" : "Return OK if application is started", - "tags" : [ "Home" ] + "security": [ + { + "ApiKey": [] + } + ], + "summary": "Return OK if application is started", + "tags": [ + "Home" + ] }, - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ] + ] }, - "/payments" : { - "get" : { - "operationId" : "redirect", - "parameters" : [ { - "example" : "identificativoIntermediarioPA_sessionId", - "in" : "query", - "name" : "idSession", - "required" : true, - "schema" : { - "type" : "string" + "/payments": { + "get": { + "operationId": "redirect", + "parameters": [ + { + "example": "identificativoIntermediarioPA_sessionId", + "in": "query", + "name": "idSession", + "required": true, + "schema": { + "type": "string" + } } - } ], - "responses" : { - "302" : { - "description" : "Redirect to Checkout service.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + ], + "responses": { + "302": { + "description": "Redirect to Checkout service.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ], - "tags" : [ "Redirect" ] + "security": [ + { + "ApiKey": [] + } + ], + "tags": [ + "Redirect" + ] }, - "parameters" : [ { - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "in" : "header", - "name" : "X-Request-Id", - "schema" : { - "type" : "string" + "parameters": [ + { + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "in": "header", + "name": "X-Request-Id", + "schema": { + "type": "string" + } } - } ] + ] } }, - "components" : { - "schemas" : { - "AppInfoResponse" : { - "type" : "object", - "properties" : { - "environment" : { - "type" : "string" + "components": { + "schemas": { + "AppInfoResponse": { + "type": "object", + "properties": { + "environment": { + "type": "string" }, - "name" : { - "type" : "string" + "name": { + "type": "string" }, - "version" : { - "type" : "string" + "version": { + "type": "string" } } } }, - "securitySchemes" : { - "ApiKey" : { - "description" : "The API key to access this function app.", - "in" : "header", - "name" : "Ocp-Apim-Subscription-Key", - "type" : "apiKey" + "securitySchemes": { + "ApiKey": { + "description": "The API key to access this function app.", + "in": "header", + "name": "Ocp-Apim-Subscription-Key", + "type": "apiKey" } } } -} \ No newline at end of file +} diff --git a/pom.xml b/pom.xml index de752dde..6f2dc2b1 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ it.gov.pagopa wisp-converter - 0.4.12 + 0.4.13 pagoPA WISP Converter A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, converting them in NMU payments. From fc96afe7ec52363bc156370d4ac558e9f6d003c4 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Fri, 18 Oct 2024 11:01:23 +0000 Subject: [PATCH 12/12] Bump to version 0.4.14 [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- openapi/openapi_redirect.json | 2 +- pom.xml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 8d90015f..209e67e9 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: pagopa-wisp-converter description: A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, interfacing them with GPD system type: application -version: 0.242.0 -appVersion: 0.4.13 +version: 0.243.0 +appVersion: 0.4.14 dependencies: - name: microservice-chart version: 3.0.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 8f14038b..cc2a71a1 100644 --- a/helm/values-dev.yaml +++ b/helm/values-dev.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.13" + tag: "0.4.14" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index fb18dd4c..412f288c 100644 --- a/helm/values-prod.yaml +++ b/helm/values-prod.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.13" + tag: "0.4.14" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 67e09910..4c9c9fea 100644 --- a/helm/values-uat.yaml +++ b/helm/values-uat.yaml @@ -4,7 +4,7 @@ microservice-chart: µservice-chart fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-wisp-converter - tag: "0.4.13" + tag: "0.4.14" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 06f06174..4db5907d 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "description": "A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, converting them in NMU payments.\n\n# OPERATIVE INFO\n\n\n## EVENT MAPPING IN RE\n\n
Details\nFIELD | SCOPE | DESCRIPTION\n- | - | -\n**requestId** | BOTH | The identifier, set by X-Request-ID, from which the events can be grouped.\n**operationId** | BOTH | The identifier associated to a request identifier\n**clientOperationId** | BOTH | The identifier that associate a client to an operation identifier.\n**component** | BOTH | The applicative component from which the event is generated.
In NDP it is mapped with field 'componente'.
Values:
_WISP_SOAP_CONVERTER_
_WISP_CONVERTER_\n**insertedTimestamp** | BOTH | The time on which the event is inserted in RE storage\n**eventCategory** | BOTH | The category on which the event can be grouped.
In NDP it is mapped with field 'categoriaEvento'.
Values:
_INTERFACE_
_INTERNAL_\n**eventSubcategory** | BOTH | The subcategory related to the specific nature of the event.
In NDP it is mapped with field 'sottoTipoEvento'.
Values:
_REQ_
_RESP_
_INTERN_\n**callType** | INTERFACE | The type of role that the application has in the communication with the remote endpoint.
Values:
_SERVER_
_CLIENT_\n**outcome** | INTERFACE | The outcome of the operation described by the event.
In NDP it is mapped with field 'esito'.
Values:
_SEND_: Correctly sent request to HTTP endpoint. In NDP it is mapped with value 'INVIATA'.
_SEND_FAILURE_: Failed to send request to HTTP endpoint. In NDP it is mapped with value 'INVIATA_KO'
_RECEIVED_: Received an OK response from HTTP endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_RECEIVED_FAILURE_: Received a failure response from endpoint. In NDP it is mapped with value 'RICEVUTA_KO'
_NEVER_RECEIVED_: Failed to receive response at all from endpoint. In NDP it is mapped with value 'NO_RICEVUTA'
_EXECUTED_INTERNAL_STEP_: Executed internal step on execution. In NDP it is mapped with value 'CAMBIO_STATO'\n**httpMethod** | INTERFACE | The HTTP method of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpUri** | INTERFACE | The URI related to the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpHeaders** | INTERFACE | The list of HTTP headers extracted from the request/response analyzed by the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpCallRemoteAddress** | INTERFACE | The remote IP address extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**httpStatusCode** | INTERFACE | The status code extracted from the called endpoint.
This field is set only if the events that describe an HTTP communication with an external service.\n**executionTimeMs** | INTERFACE | The duration time of the invocation of the endpoint related to the event.
This field is set only if the events that describe an HTTP communication with an external service.\n**compressedPayload** | INTERFACE | The payload of the request/response analyzed by the event.
This value is zipped using GZip compression algorithm.\n**compressedPayloadLength** | INTERFACE | The length (in number of characters) of the compressed payload.\n**businessProcess** | INTERFACE | The descriptive label associated to the endpoint called by user and related to the whole process.\n**operationStatus** | INTERFACE | The final status of the whole operation.
This is set only in the events that describe the response in output to user.\n**operationErrorTitle** | INTERFACE | The error title extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorDetail** | INTERFACE | The error detail message extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**operationErrorCode** | INTERFACE | The error code extracted from the computation that refers to the error occurred during computation.
This is set only in the events that describe the response in output to user if there is an error.\n**primitive** | INTERNAL | The typology of primitive analyzed and tracked by the event.
In NDP it is mapped with field 'eventType'.\n**sessionId** | INTERNAL | The session identifier generated by WISP SOAP Converter and used in the request.\n**cartId** | INTERNAL | The cart identifier used in the request.\n**iuv** | INTERNAL | The 'identificativo univoco pagamento' used in the request.\n**noticeNumber** | INTERNAL | The notice number (aka NAV code) used in the request.\n**domainId** | INTERNAL | The creditor institution identifier used in the request.\n**ccp** | INTERNAL | The 'codice contesto pagamento' used in the request.\n**psp** | INTERNAL | The payment service provider used in the request.\n**station** | INTERNAL | The station used in the request.\n**channel** | INTERNAL | The channel used in the request.\n**status** | INTERNAL | The state of the internal step executed.
Values:
_FOUND_RPT_IN_STORAGE_
_FOUND_RT_IN_STORAGE_
_EXTRACTED_DATA_FROM_RPT_
_CREATED_NEW_PAYMENT_POSITION_IN_GPD_
_GENERATED_NAV_FOR_NEW_PAYMENT_POSITION_
_UPDATED_EXISTING_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_INVALID_PAYMENT_POSITION_IN_GPD_
_GENERATING_RT_FOR_GPD_EXCEPTION_
_GENERATING_RT_FOR_REDIRECT_ERROR_
_GENERATED_CACHE_ABOUT_RPT_FOR_DECOUPLER_
_GENERATED_CACHE_ABOUT_RPT_FOR_CARTSESSION_CACHING_
_GENERATED_CACHE_ABOUT_RPT_FOR_RT_GENERATION_
_SAVED_RPT_IN_CART_RECEIVED_REDIRECT_URL_FROM_CHECKOUT_
_RT_NOT_GENERABLE_FOR_GPD_STATION_
_RT_NOT_GENERABLE_FOR_NOT_EXISTING_PAYMENT_POSITION_
_NEGATIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_POSITIVE_RT_TRY_TO_SEND_TO_CREDITOR_INSTITUTION_
_RT_SEND_SUCCESS_
_RT_SENT_OK_
_RT_SEND_FAILURE_
_RT_ALREADY_SENT_
_RT_SEND_SCHEDULING_SUCCESS_
_RT_SEND_SCHEDULING_FAILURE_
_RT_SCHEDULED_SEND_SUCCESS_
_RT_SCHEDULED_SEND_FAILURE_
_RT_SEND_RESCHEDULING_FAILURE_
_RT_SEND_RESCHEDULING_REACHED_MAX_RETRIES_
_RT_SEND_RESCHEDULING_SUCCESS_
_RT_START_RECONCILIATION_PROCESS_
_RT_END_RECONCILIATION_PROCESS_
_RT_DEAD_LETTER_SAVED_
_RT_DEAD_LETTER_FAILED_
_RECEIPT_TIMER_GENERATION_CREATED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_CACHED_SEQUENCE_NUMBER_
_RECEIPT_TIMER_GENERATION_DELETED_SCHEDULED_SEND_
_RECEIPT_TIMER_GENERATION_SKIP_DELETE_SCHEDULED_SEND_
_RECEIPT_TIMER_PAYMENT_TOKEN_TIMEOUT_TRIGGER_
_ECOMMERCE_HANG_TIMER_TRIGGER_
_ECOMMERCE_HANG_TIMER_CREATED_
_ECOMMERCE_HANG_TIMER_DELETED_
_RPT_TIMER_TRIGGER_
_RPT_TIMER_CREATED_
_RPT_TIMER_DELETED_
_RPT_TIMER_NOT_SET_
_COMMUNICATING_WITH_GPD_REQUEST_
_COMMUNICATING_WITH_GPD_RESPONSE_
_COMMUNICATING_WITH_IUV_GENERATOR_REQUEST_
_COMMUNICATING_WITH_IUV_GENERATOR_RESPONSE_
_COMMUNICATING_WITH_CHECKOUT_REQUEST_
_COMMUNICATING_WITH_CHECKOUT_RESPONSE_
_COMMUNICATING_WITH_DECOUPLER_CACHING_REQUEST_
_COMMUNICATING_WITH_DECOUPLER_CACHING_RESPONSE_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_REQUEST_
_COMMUNICATING_WITH_CREDITOR_INSTITUTION_RESPONSE_\n**info** | INTERNAL | The other information that can be inserted for the tracing.\n**paymentToken** | INTERNAL | The payment token.\n\n
\n\n\n## OPERATIONAL ERROR CODES\n\n
Details\nNAME | CODE | DESCRIPTION\n- | - | -\n**WIC-500** | *ERROR* | A not documented generic error occurred while execution. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1000** | *GENERIC_ERROR* | A generic error occurred while executing conversion flow. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1001** | *PARSING_GENERIC_ERROR* | A generic error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1002** | *PARSING_INVALID_HEADER* | An error occurred while parsing of the content header, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1003** | *PARSING_INVALID_BODY* | An error occurred while parsing of the content payload, associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT.\n**WIC-1004** | *PARSING_INVALID_XML_NODES* | An error occurred while parsing of the of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The XML content extracted, either from payload or from header, is invalid because it is not possible to extract tag nodes from document. So, the document is probably empty.\n**WIC-1005** | *PARSING_INVALID_ZIPPED_PAYLOAD* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The SOAP request analyzed and stored in dedicated storage is not usable for convert the debt positions in GPD system. This is probably due to an invalid conversion of the SOAP request via GZip algorithm executed before the same is stored in its storage.\n**WIC-1006** | *PARSING_RPT_PRIMITIVE_NOT_VALID* | An error occurred while parsing of the content associated to the SOAP request related to nodoInviaRPT or nodoInviaCarrelloRPT. The primitive (the content related to header 'soapaction') cannot be handled by WISP Converter application in redirect process: only one of nodoInviaRPT and nodoInviaCarrelloRPT can be accepted.\n**WIC-1100** | *VALIDATION_INVALID_MULTIBENEFICIARY_CART* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, the request is arrived as nodoInviaCarrelloRPT as multi-beneficiary cart, but the number of RPTs in the request is lower than two, so it cannot be correctly handled as multi-beneficiary.\n**WIC-1101** | *VALIDATION_INVALID_IBANS* | An error occurred while analyzing the RPTs extracted from SOAP request. An IBAN must always be set in RPT transfers if they aren't related to digital stamps (which don't require an IBAN, because they will be reported to specific subject). In this case, in one or more RPT transfers not related to digital stamp, the IBAN is not correctly set.\n**WIC-1102** | *VALIDATION_INVALID_DEBTOR* | An error occurred while analyzing the RPTs extracted from SOAP request. In particular, in a cart there are different debtor subjects and this is not permitted for this flow. So, the whole cart is discarded.\n**WIC-1200** | *CONFIGURATION_INVALID_CACHE* | An error occurred while trying to access data from cached configuration. It is possible that the cache is not retrieved yet by this service or a corrupted configuration was returned from APIConfig Cache internal service. If this problem still occurs, please check the connectivity with APIConfig Cache.\n**WIC-1201** | *CONFIGURATION_INVALID_STATION* | An error occurred while retrieving data from local cached configuration. In particular, it is not possible to retrieve the configuration about the station because it does not exists in cache, and maybe also in general configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1202** | *CONFIGURATION_INVALID_CREDITOR_INSTITUTION_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the required station does not exists in cached configuration. So, a change in whole configuration and/or a refresh on cache is required.\n**WIC-1203** | *CONFIGURATION_INVALID_STATION_REDIRECT_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration about redirection in error cases is not correctly set to points towards some creditor institution's endpoint. So, a change in configuration is required.\n**WIC-1204** | *CONFIGURATION_INVALID_STATION_SERVICE_URL* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint for RT generator. So, a change in configuration is required.\n**WIC-1205** | *CONFIGURATION_NOT_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is not correctly set to points towards GPD service endpoint. So, a change in configuration is required.\n**WIC-1206** | *CONFIGURATION_INVALID_GPD_STATION* | An error occurred while checking the station that will be used for the payment process. In particular, analyzing the station that is related to the segregation code extracted from a payment option's notice number, it turns out that the configuration is correctly set to points towards GPD service endpoint but uses the 'v1' primitive version (and it must use the 'v2' version). So, a change in configuration is required.\n**WIC-1207** | *CONFIGURATION_INVALID_STATION_PROXY* | An error occurred while checking the station that will be used for the receipt send process. In particular, analyzing the station it turns out that the configuration is not correctly set to configure proxy structure for RT generator. So, a change in configuration is required.\n**WIC-1300** | *PAYMENT_POSITION_NOT_IN_PAYABLE_STATE* | An error occurred while checking an existing payment position. One or more RPTs extracted from the request refers to existing payment positions in GPD that have a state from which it is impossible to execute a payment flow. If the execution of this flow is related to a RPT cart, all the payments that can be retrieved or generated ex novo from those RPTs are declared as atomically invalid (if one RPT in cart is bad, all RPTs in cart are bad) and not payable with this flow.\n**WIC-1301** | *PAYMENT_POSITION_IN_INCONSISTENT_STATE* | An error occurred while checking an existing payment position in GPD system. The retrieved payment position, previously inserted in GPD by this same flow or by other procedures, is in an invalid state, not mappable to an existing value. This can be related to a wrong setting in GPD or a corruption of the retrieved data.\n**WIC-1302** | *PAYMENT_POSITION_NOT_VALID* | An error occurred while generating a payment position. In particular, something during the generation of a new payment position or the analysis of an existing payment position went wrong and the operation cannot be completed. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1303** | *PAYMENT_OPTION_NOT_EXTRACTABLE* | An error occurred while extracting a payment option from a payment position. This can be caused by a malformed payment position that does not have a payment option. Remember that a payment position in this flow must have one and only one payment option.\n**WIC-1400** | *RECEIPT_GENERATION_GENERIC_ERROR* | An error occurred while generating an RT (aka a receipt). An unhandled error occurred and it is impossible to complete the process. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1401** | *RECEIPT_GENERATION_WRONG_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an invalid response from which is impossible to continue the analysis. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1402** | *RECEIPT_GENERATION_ERROR_RESPONSE_FROM_CREDITOR_INSTITUTION* | An error occurred while generating an RT (aka a receipt). Specifically, the RT request is sent to creditor institution but this one responded with an error response that explicit the occurred problem. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1403** | *RECEIPT_KO_NOT_SENT* | An error occurred while sending a negative RT (aka a KO receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1404** | *RECEIPT_OK_NOT_SENT* | An error occurred while sending a positive RT (aka a OK receipt). So, no receipt can be sent lately to creditor institution and probably the process must be executed manually. For better understanding the cause, please use the Technical Support's APIs.\n**WIC-1405** | *RECEIPT_GENERATION_IDEMPOTENCY_LOCKED_BY_ANOTHER_PROCESS* | An error occurred while generating an RT (aka a receipt). Two or more generation processes are concurrently trying to execute the same operation on the same receipt but only one of them is currently 'authorized' to do so.\n**WIC-1406** | *RECEIPT_GENERATION_NOT_PROCESSABLE* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be started correctly because it is trying to lock the idempotency key that is already in a locked state. Probably the process is in execution by another thread.\n**WIC-1407** | *RECEIPT_GENERATION_ALREADY_PROCESSED* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because it is trying to unlock the idempotency key that is not in a locked state. Probably the process was already completed.\n**WIC-1408** | *RECEIPT_GENERATION_ANOMALY_ON_PROCESSING* | An error occurred while generating an RT (aka a receipt). The process of receipt generation cannot be completed correctly because there is a mismatch between the type of the cached receipt and the kind of request made for generate the same receipt. For example, the cached receipt is defined as negative paaInviaRT but the request was made to 'receipt/ok' endpoint. This is an anomaly that should never happens in a correct NMU flow execution but must be traced in case of error.\n**WIC-1409** | *RECEIPT_KO_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a negative RT (aka a KO receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1410** | *RECEIPT_OK_NOT_GENERATED_BUT_MAYBE_RESCHEDULED* | An error occurred while generating a positive RT (aka a OK receipt). The receipt could be sent lately to creditor institution but for better understanding the cause, please use the Technical Support's APIs.\n**WIC-1411** | *RECEIPT_GENERATION_ERROR_DEAD_LETTER* | An error occurred while generating an RT (aka a receipt). Specifically, the creditor institution response status has not been recognized, for this reason the RT has been placed in the dead letter container.\n**WIC-2000** | *PERSISTENCE_SAVING_RE_ERROR* | An error occurred wile trying to store a new event in the Registro Eventi storage. The error is somewhat related to a persistence problem of the used storage and in the majority of the cases is temporary (maybe a 429 HTTP code). This error currently blocks the entire flow because that can lead to untraceable requests. For better understanding the cause, please execute a search in the log provider (Application Insights, Kibana, etc).\n**WIC-2001** | *PERSISTENCE_RPT_NOT_FOUND* | An error occurred while trying to retrieve the RPT content saved in storage by WISP SOAP Converter. This can be related either with the use of a wrong sessionId or a missed persistence from WISP SOAP Converter, so it is better to analyze the entire flow using Technical Support's APIs. This block totally the conversion of the RPTs in GPD's payment positions, so the whole process is discarded.\n**WIC-2002** | *PERSISTENCE_RT_NOT_FOUND* | An error occurred while trying to retrieve the RT content saved in storage by WISP Converter. This can be related either with the use of a wrong identifier, a missed persistence or an expired object, so it is better to analyze the entire flow using Technical Support's APIs.\n**WIC-2003** | *PERSISTENCE_REQUESTID_CACHING_ERROR* | An error occurred while trying to retrieve data from internal cache. Specifically, the cached key, defined in format wisp_nav2iuv__
\n", "termsOfService": "https://www.pagopa.gov.it/", "title": "WISP Converter", - "version": "0.4.13" + "version": "0.4.14" }, "servers": [ { diff --git a/openapi/openapi_redirect.json b/openapi/openapi_redirect.json index dd868e1a..dafb57f1 100644 --- a/openapi/openapi_redirect.json +++ b/openapi/openapi_redirect.json @@ -2,7 +2,7 @@ "openapi": "3.0.1", "info": { "title": "WISP-Converter-redirect", - "version": "0.4.13" + "version": "0.4.14" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 6f2dc2b1..923067e2 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ it.gov.pagopa wisp-converter - 0.4.13 + 0.4.14 pagoPA WISP Converter A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, converting them in NMU payments.