diff --git a/helm/Chart.yaml b/helm/Chart.yaml index a2cdab7a..4a48006b 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: pagopa-biz-events-service description: Microservice for exposing REST APIs about payment receipts. type: application -version: 0.49.0 -appVersion: 0.1.27 +version: 0.50.0 +appVersion: 0.1.28 dependencies: - name: microservice-chart version: 2.4.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 16e32ac4..07afa873 100644 --- a/helm/values-dev.yaml +++ b/helm/values-dev.yaml @@ -4,7 +4,7 @@ microservice-chart: fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-biz-events-service - tag: "0.1.27" + tag: "0.1.28" pullPolicy: Always livenessProbe: httpGet: @@ -79,8 +79,12 @@ microservice-chart: COSMOS_DB_VIEW_CART_CONTAINER_NAME: 'biz-events-view-cart' COSMOS_QUERY_METRICS: 'false' PDF_RECEIPT_HOST: 'https://api.dev.platform.pagopa.it/receipts/service/v1' - RETRY_MAX_DELAY: "10000" - RETRY_MAX_ATTEMPTS: "1" + PDF_GENERATE_RECEIPT_HOST: 'https://api.dev.platform.pagopa.it/receipts/helpdesk/v1' + PDF_GENERATE_RECEIPT_PATH: '/receipts/{event-id}/regenerate-receipt-pdf' + GET_PDF_RETRY_MAX_DELAY: "10000" + GET_PDF_RETRY_MAX_ATTEMPTS: "1" + GENERATE_PDF_RETRY_MAX_DELAY: "10000" + GENERATE_PDF_RETRY_MAX_ATTEMPTS: "1" CONNECTION_TIMEOUT: "10000" OTEL_SERVICE_NAME: "pagopabizeventsservice" OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopareceiptspdfserviceotl,deployment.environment=dev" @@ -94,6 +98,7 @@ microservice-chart: APPLICATIONINSIGHTS_CONNECTION_STRING: 'ai-d-connection-string' COSMOS_DB_PRIMARY_KEY: 'cosmos-d-biz-key' PDF_RECEIPT_SUBSCRIPTION_KEY: "bizevent-d-receiptpdfservice-subscription-key" + PDF_GENERATE_RECEIPT_SUBSCRIPTION_KEY: "bizevent-d-generatepdfservice-subscription-key" OTEL_EXPORTER_OTLP_HEADERS: 'elastic-otl-secret-token' keyvault: name: "pagopa-d-bizevents-kv" diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index b7f6d131..b4467db2 100644 --- a/helm/values-prod.yaml +++ b/helm/values-prod.yaml @@ -4,7 +4,7 @@ microservice-chart: fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-biz-events-service - tag: "0.1.27" + tag: "0.1.28" pullPolicy: Always livenessProbe: httpGet: @@ -79,8 +79,12 @@ microservice-chart: COSMOS_DB_VIEW_CART_CONTAINER_NAME: 'biz-events-view-cart' COSMOS_QUERY_METRICS: 'false' PDF_RECEIPT_HOST: 'https://api.platform.pagopa.it/receipts/service/v1' - RETRY_MAX_DELAY: "10000" - RETRY_MAX_ATTEMPTS: "1" + PDF_GENERATE_RECEIPT_HOST: 'https://api.platform.pagopa.it/receipts/helpdesk/v1' + PDF_GENERATE_RECEIPT_PATH: '/receipts/{event-id}/regenerate-receipt-pdf' + GET_PDF_RETRY_MAX_DELAY: "10000" + GET_PDF_RETRY_MAX_ATTEMPTS: "1" + GENERATE_PDF_RETRY_MAX_DELAY: "10000" + GENERATE_PDF_RETRY_MAX_ATTEMPTS: "1" CONNECTION_TIMEOUT: "10000" OTEL_SERVICE_NAME: "pagopabizeventsservice" OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopareceiptspdfserviceotl,deployment.environment=prod" @@ -94,6 +98,7 @@ microservice-chart: APPLICATIONINSIGHTS_CONNECTION_STRING: 'ai-p-connection-string' COSMOS_DB_PRIMARY_KEY: 'cosmos-p-biz-key' PDF_RECEIPT_SUBSCRIPTION_KEY: "bizevent-p-receiptpdfservice-subscription-key" + PDF_GENERATE_RECEIPT_SUBSCRIPTION_KEY: "bizevent-p-generatepdfservice-subscription-key" OTEL_EXPORTER_OTLP_HEADERS: 'elastic-otl-secret-token' keyvault: name: "pagopa-p-bizevents-kv" diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 36d6604c..2e3dd935 100644 --- a/helm/values-uat.yaml +++ b/helm/values-uat.yaml @@ -4,7 +4,7 @@ microservice-chart: fullnameOverride: "" image: repository: ghcr.io/pagopa/pagopa-biz-events-service - tag: "0.1.27" + tag: "0.1.28" pullPolicy: Always livenessProbe: httpGet: @@ -79,8 +79,12 @@ microservice-chart: COSMOS_DB_VIEW_CART_CONTAINER_NAME: 'biz-events-view-cart' COSMOS_QUERY_METRICS: 'false' PDF_RECEIPT_HOST: 'https://api.uat.platform.pagopa.it/receipts/service/v1' - RETRY_MAX_DELAY: "10000" - RETRY_MAX_ATTEMPTS: "1" + PDF_GENERATE_RECEIPT_HOST: 'https://api.uat.platform.pagopa.it/receipts/helpdesk/v1' + PDF_GENERATE_RECEIPT_PATH: '/receipts/{event-id}/regenerate-receipt-pdf' + GET_PDF_RETRY_MAX_DELAY: "10000" + GET_PDF_RETRY_MAX_ATTEMPTS: "1" + GENERATE_PDF_RETRY_MAX_DELAY: "10000" + GENERATE_PDF_RETRY_MAX_ATTEMPTS: "1" CONNECTION_TIMEOUT: "10000" OTEL_SERVICE_NAME: "pagopabizeventsservice" OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopareceiptspdfserviceotl,deployment.environment=uat" @@ -94,6 +98,7 @@ microservice-chart: APPLICATIONINSIGHTS_CONNECTION_STRING: 'ai-u-connection-string' COSMOS_DB_PRIMARY_KEY: 'cosmos-u-biz-key' PDF_RECEIPT_SUBSCRIPTION_KEY: "bizevent-u-receiptpdfservice-subscription-key" + PDF_GENERATE_RECEIPT_SUBSCRIPTION_KEY: "bizevent-u-generatepdfservice-subscription-key" OTEL_EXPORTER_OTLP_HEADERS: 'elastic-otl-secret-token' keyvault: name: "pagopa-u-bizevents-kv" diff --git a/openapi/openapi.json b/openapi/openapi.json index 5fd29c16..7fd258b9 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -1,2023 +1,2157 @@ { - "openapi" : "3.0.1", - "info" : { - "title" : "Biz-Events Service", - "description" : "Microservice for exposing REST APIs about payment receipts.", - "termsOfService" : "https://www.pagopa.gov.it/", - "version" : "0.1.27" + "openapi": "3.0.1", + "info": { + "title": "Biz-Events Service", + "description": "Microservice for exposing REST APIs about payment receipts.", + "termsOfService": "https://www.pagopa.gov.it/", + "version": "0.1.28" }, - "servers" : [ { - "url" : "http://localhost", - "description" : "Generated server url" - } ], - "paths" : { - "/events/organizations/{organization-fiscal-code}/iuvs/{iuv}" : { - "get" : { - "tags" : [ "Biz-Events Helpdesk" ], - "summary" : "Retrieve the biz-event given the organization fiscal code and IUV.", - "operationId" : "getBizEventByOrganizationFiscalCodeAndIuv", - "parameters" : [ { - "name" : "organization-fiscal-code", - "in" : "path", - "description" : "The fiscal code of the Organization.", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "iuv", - "in" : "path", - "description" : "The unique payment identification. Alphanumeric code that uniquely associates and identifies three key elements of a payment: reason, payer, amount", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "description" : "Obtained biz-event.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "servers": [ + { + "url": "http://localhost", + "description": "Generated server url" + } + ], + "paths": { + "/events/organizations/{organization-fiscal-code}/iuvs/{iuv}": { + "get": { + "tags": [ + "Biz-Events Helpdesk" + ], + "summary": "Retrieve the biz-event given the organization fiscal code and IUV.", + "operationId": "getBizEventByOrganizationFiscalCodeAndIuv", + "parameters": [ + { + "name": "organization-fiscal-code", + "in": "path", + "description": "The fiscal code of the Organization.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "iuv", + "in": "path", + "description": "The unique payment identification. Alphanumeric code that uniquely associates and identifies three key elements of a payment: reason, payer, amount", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Obtained biz-event.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BizEvent" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BizEvent" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "404" : { - "description" : "Not found the biz-event.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the biz-event.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "422" : { - "description" : "Unable to process the request.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "422": { + "description": "Unable to process the request.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/events/{biz-event-id}" : { - "get" : { - "tags" : [ "Biz-Events Helpdesk" ], - "summary" : "Retrieve the biz-event given its id.", - "operationId" : "getBizEvent", - "parameters" : [ { - "name" : "biz-event-id", - "in" : "path", - "description" : "The id of the biz-event.", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "description" : "Obtained biz-event.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/events/{biz-event-id}": { + "get": { + "tags": [ + "Biz-Events Helpdesk" + ], + "summary": "Retrieve the biz-event given its id.", + "operationId": "getBizEvent", + "parameters": [ + { + "name": "biz-event-id", + "in": "path", + "description": "The id of the biz-event.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Obtained biz-event.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BizEvent" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BizEvent" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "404" : { - "description" : "Not found the biz-event.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the biz-event.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "422" : { - "description" : "Unable to process the request.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "422": { + "description": "Unable to process the request.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/info" : { - "get" : { - "tags" : [ "Home" ], - "summary" : "health check", - "description" : "Return OK if application is started", - "operationId" : "healthCheck", - "responses" : { - "200" : { - "description" : "OK", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/info": { + "get": { + "tags": [ + "Home" + ], + "summary": "health check", + "description": "Return OK if application is started", + "operationId": "healthCheck", + "responses": { + "200": { + "description": "OK", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/AppInfo" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppInfo" } } } }, - "400" : { - "description" : "Bad Request", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "400": { + "description": "Bad Request", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "401" : { - "description" : "Unauthorized", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Unauthorized", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "403" : { - "description" : "Forbidden", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "403": { + "description": "Forbidden", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "429" : { - "description" : "Too many requests", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "500" : { - "description" : "Service unavailable", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/organizations/{organizationfiscalcode}/receipts/{iur}" : { - "get" : { - "tags" : [ "Payment Receipts REST APIs" ], - "summary" : "The organization get the receipt for the creditor institution using IUR.", - "operationId" : "getOrganizationReceiptIur", - "parameters" : [ { - "name" : "organizationfiscalcode", - "in" : "path", - "description" : "The fiscal code of the Organization.", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "iur", - "in" : "path", - "description" : "The unique reference of the operation assigned to the payment (Payment Token).", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "description" : "Obtained receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/organizations/{organizationfiscalcode}/receipts/{iur}": { + "get": { + "tags": [ + "Payment Receipts REST APIs" + ], + "summary": "The organization get the receipt for the creditor institution using IUR.", + "operationId": "getOrganizationReceiptIur", + "parameters": [ + { + "name": "organizationfiscalcode", + "in": "path", + "description": "The fiscal code of the Organization.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "iur", + "in": "path", + "description": "The unique reference of the operation assigned to the payment (Payment Token).", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Obtained receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CtReceiptModelResponse" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CtReceiptModelResponse" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "404" : { - "description" : "Not found the receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "422" : { - "description" : "Unable to process the request.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "422": { + "description": "Unable to process the request.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/organizations/{organizationfiscalcode}/receipts/{iur}/paymentoptions/{iuv}" : { - "get" : { - "tags" : [ "Payment Receipts REST APIs" ], - "summary" : "The organization get the receipt for the creditor institution using IUV and IUR.", - "operationId" : "getOrganizationReceiptIuvIur", - "parameters" : [ { - "name" : "organizationfiscalcode", - "in" : "path", - "description" : "The fiscal code of the Organization.", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "iur", - "in" : "path", - "description" : "The unique reference of the operation assigned to the payment (Payment Token).", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "iuv", - "in" : "path", - "description" : "The unique payment identification. Alphanumeric code that uniquely associates and identifies three key elements of a payment: reason, payer, amount", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "description" : "Obtained receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/organizations/{organizationfiscalcode}/receipts/{iur}/paymentoptions/{iuv}": { + "get": { + "tags": [ + "Payment Receipts REST APIs" + ], + "summary": "The organization get the receipt for the creditor institution using IUV and IUR.", + "operationId": "getOrganizationReceiptIuvIur", + "parameters": [ + { + "name": "organizationfiscalcode", + "in": "path", + "description": "The fiscal code of the Organization.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "iur", + "in": "path", + "description": "The unique reference of the operation assigned to the payment (Payment Token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "iuv", + "in": "path", + "description": "The unique payment identification. Alphanumeric code that uniquely associates and identifies three key elements of a payment: reason, payer, amount", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Obtained receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CtReceiptModelResponse" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CtReceiptModelResponse" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "404" : { - "description" : "Not found the receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "422" : { - "description" : "Unable to process the request.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "422": { + "description": "Unable to process the request.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/transactions" : { - "get" : { - "tags" : [ "IO Transactions REST APIs" ], - "summary" : "Retrieve the paged transaction list from biz events.", - "operationId" : "getTransactionList", - "parameters" : [ { - "name" : "x-fiscal-code", - "in" : "header", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "x-continuation-token", - "in" : "header", - "required" : false, - "schema" : { - "type" : "string" - } - }, { - "name" : "size", - "in" : "query", - "required" : false, - "schema" : { - "type" : "integer", - "format" : "int32", - "default" : 10 - } - } ], - "responses" : { - "200" : { - "description" : "Obtained transaction list.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/transactions": { + "get": { + "tags": [ + "IO Transactions REST APIs" + ], + "summary": "Retrieve the paged transaction list from biz events.", + "operationId": "getTransactionList", + "parameters": [ + { + "name": "x-fiscal-code", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-continuation-token", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "size", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "Obtained transaction list.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } }, - "x-continuation-token" : { - "description" : "continuation token for paginated query", - "style" : "simple", - "schema" : { - "type" : "string" + "x-continuation-token": { + "description": "continuation token for paginated query", + "style": "simple", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TransactionListWrapResponse" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionListWrapResponse" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "404" : { - "description" : "Not found the transaction.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the transaction.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/transactions/{event-id}/pdf" : { - "get" : { - "tags" : [ "IO Transactions REST APIs" ], - "summary" : "Retrieve the PDF receipt given event id.", - "operationId" : "getPDFReceipt", - "parameters" : [ { - "name" : "x-fiscal-code", - "in" : "header", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "event-id", - "in" : "path", - "description" : "The id of the event.", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "description" : "Obtained the PDF receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/transactions/{event-id}/pdf": { + "get": { + "tags": [ + "IO Transactions REST APIs" + ], + "summary": "Retrieve the PDF receipt given event id.", + "operationId": "getPDFReceipt", + "parameters": [ + { + "name": "x-fiscal-code", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "event-id", + "in": "path", + "description": "The id of the event.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Obtained the PDF receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/pdf" : { } + "content": { + "application/pdf": {} } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "404" : { - "description" : "Not found the receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "422" : { - "description" : "Unprocessable receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "422": { + "description": "Unprocessable receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/transactions/{transaction-id}" : { - "get" : { - "tags" : [ "IO Transactions REST APIs" ], - "summary" : "Retrieve the transaction details given its id.", - "operationId" : "getTransactionDetails", - "parameters" : [ { - "name" : "x-fiscal-code", - "in" : "header", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "transaction-id", - "in" : "path", - "description" : "The id of the transaction.", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "description" : "Obtained transaction details.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/transactions/{transaction-id}": { + "get": { + "tags": [ + "IO Transactions REST APIs" + ], + "summary": "Retrieve the transaction details given its id.", + "operationId": "getTransactionDetails", + "parameters": [ + { + "name": "x-fiscal-code", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "transaction-id", + "in": "path", + "description": "The id of the transaction.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Obtained transaction details.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TransactionDetailResponse" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionDetailResponse" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "404" : { - "description" : "Not found the transaction.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the transaction.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/transactions/{transaction-id}/disable" : { - "post" : { - "tags" : [ "IO Transactions REST APIs" ], - "summary" : "Disable the transaction details given its id.", - "operationId" : "disableTransaction", - "parameters" : [ { - "name" : "x-fiscal-code", - "in" : "header", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "transaction-id", - "in" : "path", - "description" : "The id of the transaction.", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "description" : "Disabled Transactions.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/transactions/{transaction-id}/disable": { + "post": { + "tags": [ + "IO Transactions REST APIs" + ], + "summary": "Disable the transaction details given its id.", + "operationId": "disableTransaction", + "parameters": [ + { + "name": "x-fiscal-code", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "transaction-id", + "in": "path", + "description": "The id of the transaction.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Disabled Transactions.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { } + "content": { + "application/json": {} } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "404" : { - "description" : "Not found the transaction.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the transaction.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] } }, - "components" : { - "schemas" : { - "ProblemJson" : { - "type" : "object", - "properties" : { - "title" : { - "type" : "string", - "description" : "A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized); example: Service Unavailable" - }, - "status" : { - "maximum" : 600, - "minimum" : 100, - "type" : "integer", - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.", - "format" : "int32", - "example" : 200 - }, - "detail" : { - "type" : "string", - "description" : "A human readable explanation specific to this occurrence of the problem.", - "example" : "There was an error processing the request" + "components": { + "schemas": { + "ProblemJson": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized); example: Service Unavailable" + }, + "status": { + "maximum": 600, + "minimum": 100, + "type": "integer", + "description": "The HTTP status code generated by the origin server for this occurrence of the problem.", + "format": "int32", + "example": 200 + }, + "detail": { + "type": "string", + "description": "A human readable explanation specific to this occurrence of the problem.", + "example": "There was an error processing the request" } } }, - "TransactionListItem" : { - "type" : "object", - "properties" : { - "transactionId" : { - "type" : "string" + "TransactionListItem": { + "type": "object", + "properties": { + "transactionId": { + "type": "string" }, - "payeeName" : { - "type" : "string" + "payeeName": { + "type": "string" }, - "payeeTaxCode" : { - "type" : "string" + "payeeTaxCode": { + "type": "string" }, - "amount" : { - "type" : "string" + "amount": { + "type": "string" }, - "transactionDate" : { - "type" : "string" + "transactionDate": { + "type": "string" }, - "isCart" : { - "type" : "boolean" + "isCart": { + "type": "boolean" }, - "isPayer" : { - "type" : "boolean" + "isPayer": { + "type": "boolean" }, - "isDebtor" : { - "type" : "boolean" + "isDebtor": { + "type": "boolean" } } }, - "TransactionListWrapResponse" : { - "type" : "object", - "properties" : { - "transactions" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/TransactionListItem" + "TransactionListWrapResponse": { + "type": "object", + "properties": { + "transactions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransactionListItem" } } } }, - "CartItem" : { - "type" : "object", - "properties" : { - "subject" : { - "type" : "string" + "CartItem": { + "type": "object", + "properties": { + "subject": { + "type": "string" }, - "amount" : { - "type" : "string" + "amount": { + "type": "string" }, - "payee" : { - "$ref" : "#/components/schemas/UserDetail" + "payee": { + "$ref": "#/components/schemas/UserDetail" }, - "debtor" : { - "$ref" : "#/components/schemas/UserDetail" + "debtor": { + "$ref": "#/components/schemas/UserDetail" }, - "refNumberValue" : { - "type" : "string" + "refNumberValue": { + "type": "string" }, - "refNumberType" : { - "type" : "string" + "refNumberType": { + "type": "string" } } }, - "InfoTransactionView" : { - "type" : "object", - "properties" : { - "transactionId" : { - "type" : "string" - }, - "authCode" : { - "type" : "string" - }, - "rrn" : { - "type" : "string" - }, - "transactionDate" : { - "type" : "string" - }, - "pspName" : { - "type" : "string" - }, - "walletInfo" : { - "$ref" : "#/components/schemas/WalletInfo" - }, - "paymentMethod" : { - "type" : "string", - "enum" : [ "BBT", "BP", "AD", "CP", "PO", "OBEP", "JIF", "MYBK", "PPAL", "UNKNOWN" ] - }, - "payer" : { - "$ref" : "#/components/schemas/UserDetail" - }, - "amount" : { - "type" : "string" - }, - "fee" : { - "type" : "string" - }, - "origin" : { - "type" : "string", - "enum" : [ "INTERNAL", "PM", "NDP001PROD", "NDP002PROD", "NDP003PROD", "UNKNOWN" ] + "InfoTransactionView": { + "type": "object", + "properties": { + "transactionId": { + "type": "string" + }, + "authCode": { + "type": "string" + }, + "rrn": { + "type": "string" + }, + "transactionDate": { + "type": "string" + }, + "pspName": { + "type": "string" + }, + "walletInfo": { + "$ref": "#/components/schemas/WalletInfo" + }, + "paymentMethod": { + "type": "string", + "enum": [ + "BBT", + "BP", + "AD", + "CP", + "PO", + "OBEP", + "JIF", + "MYBK", + "PPAL", + "UNKNOWN" + ] + }, + "payer": { + "$ref": "#/components/schemas/UserDetail" + }, + "amount": { + "type": "string" + }, + "fee": { + "type": "string" + }, + "origin": { + "type": "string", + "enum": [ + "INTERNAL", + "PM", + "NDP001PROD", + "NDP002PROD", + "NDP003PROD", + "UNKNOWN" + ] } } }, - "TransactionDetailResponse" : { - "type" : "object", - "properties" : { - "infoTransaction" : { - "$ref" : "#/components/schemas/InfoTransactionView" - }, - "carts" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/CartItem" + "TransactionDetailResponse": { + "type": "object", + "properties": { + "infoTransaction": { + "$ref": "#/components/schemas/InfoTransactionView" + }, + "carts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartItem" } } } }, - "UserDetail" : { - "type" : "object", - "properties" : { - "name" : { - "type" : "string" - }, - "taxCode" : { - "type" : "string" + "UserDetail": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "taxCode": { + "type": "string" } } }, - "WalletInfo" : { - "type" : "object", - "properties" : { - "accountHolder" : { - "type" : "string" + "WalletInfo": { + "type": "object", + "properties": { + "accountHolder": { + "type": "string" }, - "brand" : { - "type" : "string" + "brand": { + "type": "string" }, - "blurredNumber" : { - "type" : "string" + "blurredNumber": { + "type": "string" }, - "maskedEmail" : { - "type" : "string" + "maskedEmail": { + "type": "string" } } }, - "CtReceiptModelResponse" : { - "required" : [ "channelDescription", "companyName", "creditorReferenceId", "debtor", "description", "fiscalCode", "idChannel", "idPSP", "noticeNumber", "outcome", "paymentAmount", "pspCompanyName", "receiptId", "transferList" ], - "type" : "object", - "properties" : { - "receiptId" : { - "type" : "string" - }, - "noticeNumber" : { - "type" : "string" - }, - "fiscalCode" : { - "type" : "string" - }, - "outcome" : { - "type" : "string" - }, - "creditorReferenceId" : { - "type" : "string" - }, - "paymentAmount" : { - "type" : "number" - }, - "description" : { - "type" : "string" - }, - "companyName" : { - "type" : "string" - }, - "officeName" : { - "type" : "string" - }, - "debtor" : { - "$ref" : "#/components/schemas/Debtor" - }, - "transferList" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/TransferPA" + "CtReceiptModelResponse": { + "required": [ + "channelDescription", + "companyName", + "creditorReferenceId", + "debtor", + "description", + "fiscalCode", + "idChannel", + "idPSP", + "noticeNumber", + "outcome", + "paymentAmount", + "pspCompanyName", + "receiptId", + "transferList" + ], + "type": "object", + "properties": { + "receiptId": { + "type": "string" + }, + "noticeNumber": { + "type": "string" + }, + "fiscalCode": { + "type": "string" + }, + "outcome": { + "type": "string" + }, + "creditorReferenceId": { + "type": "string" + }, + "paymentAmount": { + "type": "number" + }, + "description": { + "type": "string" + }, + "companyName": { + "type": "string" + }, + "officeName": { + "type": "string" + }, + "debtor": { + "$ref": "#/components/schemas/Debtor" + }, + "transferList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransferPA" } }, - "idPSP" : { - "type" : "string" + "idPSP": { + "type": "string" }, - "pspFiscalCode" : { - "type" : "string" + "pspFiscalCode": { + "type": "string" }, - "pspPartitaIVA" : { - "type" : "string" + "pspPartitaIVA": { + "type": "string" }, - "pspCompanyName" : { - "type" : "string" + "pspCompanyName": { + "type": "string" }, - "idChannel" : { - "type" : "string" + "idChannel": { + "type": "string" }, - "channelDescription" : { - "type" : "string" + "channelDescription": { + "type": "string" }, - "payer" : { - "$ref" : "#/components/schemas/Payer" + "payer": { + "$ref": "#/components/schemas/Payer" }, - "paymentMethod" : { - "type" : "string" + "paymentMethod": { + "type": "string" }, - "fee" : { - "type" : "number" + "fee": { + "type": "number" }, - "primaryCiIncurredFee" : { - "type" : "number" + "primaryCiIncurredFee": { + "type": "number" }, - "idBundle" : { - "type" : "string" + "idBundle": { + "type": "string" }, - "idCiBundle" : { - "type" : "string" + "idCiBundle": { + "type": "string" }, - "paymentDateTime" : { - "type" : "string", - "format" : "date" + "paymentDateTime": { + "type": "string", + "format": "date" }, - "applicationDate" : { - "type" : "string", - "format" : "date" + "applicationDate": { + "type": "string", + "format": "date" }, - "transferDate" : { - "type" : "string", - "format" : "date" + "transferDate": { + "type": "string", + "format": "date" }, - "metadata" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/MapEntry" + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapEntry" } } } }, - "Debtor" : { - "type" : "object", - "properties" : { - "fullName" : { - "type" : "string" + "Debtor": { + "type": "object", + "properties": { + "fullName": { + "type": "string" }, - "entityUniqueIdentifierType" : { - "type" : "string" + "entityUniqueIdentifierType": { + "type": "string" }, - "entityUniqueIdentifierValue" : { - "type" : "string" + "entityUniqueIdentifierValue": { + "type": "string" }, - "streetName" : { - "type" : "string" + "streetName": { + "type": "string" }, - "civicNumber" : { - "type" : "string" + "civicNumber": { + "type": "string" }, - "postalCode" : { - "type" : "string" + "postalCode": { + "type": "string" }, - "city" : { - "type" : "string" + "city": { + "type": "string" }, - "stateProvinceRegion" : { - "type" : "string" + "stateProvinceRegion": { + "type": "string" }, - "country" : { - "type" : "string" + "country": { + "type": "string" }, - "eMail" : { - "type" : "string" + "eMail": { + "type": "string" } } }, - "MapEntry" : { - "type" : "object", - "properties" : { - "key" : { - "type" : "string" - }, - "value" : { - "type" : "string" + "MapEntry": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" } } }, - "Payer" : { - "type" : "object", - "properties" : { - "fullName" : { - "type" : "string" + "Payer": { + "type": "object", + "properties": { + "fullName": { + "type": "string" }, - "entityUniqueIdentifierType" : { - "type" : "string" + "entityUniqueIdentifierType": { + "type": "string" }, - "entityUniqueIdentifierValue" : { - "type" : "string" + "entityUniqueIdentifierValue": { + "type": "string" }, - "streetName" : { - "type" : "string" + "streetName": { + "type": "string" }, - "civicNumber" : { - "type" : "string" + "civicNumber": { + "type": "string" }, - "postalCode" : { - "type" : "string" + "postalCode": { + "type": "string" }, - "city" : { - "type" : "string" + "city": { + "type": "string" }, - "stateProvinceRegion" : { - "type" : "string" + "stateProvinceRegion": { + "type": "string" }, - "country" : { - "type" : "string" + "country": { + "type": "string" }, - "eMail" : { - "type" : "string" + "eMail": { + "type": "string" } } }, - "TransferPA" : { - "required" : [ "fiscalCodePA", "iban", "mbdAttachment", "remittanceInformation", "transferAmount", "transferCategory" ], - "type" : "object", - "properties" : { - "idTransfer" : { - "maximum" : 5, - "minimum" : 1, - "type" : "integer", - "format" : "int32" - }, - "transferAmount" : { - "type" : "number" - }, - "fiscalCodePA" : { - "type" : "string" - }, - "iban" : { - "type" : "string" - }, - "mbdAttachment" : { - "type" : "string" - }, - "remittanceInformation" : { - "type" : "string" - }, - "transferCategory" : { - "type" : "string" - }, - "metadata" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/MapEntry" + "TransferPA": { + "required": [ + "fiscalCodePA", + "iban", + "mbdAttachment", + "remittanceInformation", + "transferAmount", + "transferCategory" + ], + "type": "object", + "properties": { + "idTransfer": { + "maximum": 5, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "transferAmount": { + "type": "number" + }, + "fiscalCodePA": { + "type": "string" + }, + "iban": { + "type": "string" + }, + "mbdAttachment": { + "type": "string" + }, + "remittanceInformation": { + "type": "string" + }, + "transferCategory": { + "type": "string" + }, + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapEntry" } } } }, - "AppInfo" : { - "type" : "object", - "properties" : { - "name" : { - "type" : "string" + "AppInfo": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "version" : { - "type" : "string" + "version": { + "type": "string" }, - "environment" : { - "type" : "string" + "environment": { + "type": "string" } } }, - "AuthRequest" : { - "type" : "object", - "properties" : { - "authOutcome" : { - "type" : "string" + "AuthRequest": { + "type": "object", + "properties": { + "authOutcome": { + "type": "string" }, - "guid" : { - "type" : "string" + "guid": { + "type": "string" }, - "correlationId" : { - "type" : "string" + "correlationId": { + "type": "string" }, - "error" : { - "type" : "string" + "error": { + "type": "string" }, - "auth_code" : { - "type" : "string" + "auth_code": { + "type": "string" } } }, - "BizEvent" : { - "type" : "object", - "properties" : { - "id" : { - "type" : "string" + "BizEvent": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "version" : { - "type" : "string" + "version": { + "type": "string" }, - "idPaymentManager" : { - "type" : "string" + "idPaymentManager": { + "type": "string" }, - "complete" : { - "type" : "string" + "complete": { + "type": "string" }, - "receiptId" : { - "type" : "string" + "receiptId": { + "type": "string" }, - "missingInfo" : { - "type" : "array", - "items" : { - "type" : "string" + "missingInfo": { + "type": "array", + "items": { + "type": "string" } }, - "debtorPosition" : { - "$ref" : "#/components/schemas/DebtorPosition" + "debtorPosition": { + "$ref": "#/components/schemas/DebtorPosition" }, - "creditor" : { - "$ref" : "#/components/schemas/Creditor" + "creditor": { + "$ref": "#/components/schemas/Creditor" }, - "psp" : { - "$ref" : "#/components/schemas/Psp" + "psp": { + "$ref": "#/components/schemas/Psp" }, - "debtor" : { - "$ref" : "#/components/schemas/Debtor" + "debtor": { + "$ref": "#/components/schemas/Debtor" }, - "payer" : { - "$ref" : "#/components/schemas/Payer" + "payer": { + "$ref": "#/components/schemas/Payer" }, - "paymentInfo" : { - "$ref" : "#/components/schemas/PaymentInfo" + "paymentInfo": { + "$ref": "#/components/schemas/PaymentInfo" }, - "transferList" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Transfer" + "transferList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Transfer" } }, - "transactionDetails" : { - "$ref" : "#/components/schemas/TransactionDetails" - }, - "eventStatus" : { - "type" : "string", - "enum" : [ "NA", "RETRY", "FAILED", "DONE" ] - }, - "eventRetryEnrichmentCount" : { - "type" : "integer", - "format" : "int32" + "transactionDetails": { + "$ref": "#/components/schemas/TransactionDetails" + }, + "eventStatus": { + "type": "string", + "enum": [ + "NA", + "RETRY", + "FAILED", + "DONE" + ] + }, + "eventRetryEnrichmentCount": { + "type": "integer", + "format": "int32" } } }, - "Creditor" : { - "type" : "object", - "properties" : { - "idPA" : { - "type" : "string" + "Creditor": { + "type": "object", + "properties": { + "idPA": { + "type": "string" }, - "idBrokerPA" : { - "type" : "string" + "idBrokerPA": { + "type": "string" }, - "idStation" : { - "type" : "string" + "idStation": { + "type": "string" }, - "companyName" : { - "type" : "string" + "companyName": { + "type": "string" }, - "officeName" : { - "type" : "string" + "officeName": { + "type": "string" } } }, - "DebtorPosition" : { - "type" : "object", - "properties" : { - "modelType" : { - "type" : "string" + "DebtorPosition": { + "type": "object", + "properties": { + "modelType": { + "type": "string" }, - "noticeNumber" : { - "type" : "string" + "noticeNumber": { + "type": "string" }, - "iuv" : { - "type" : "string" + "iuv": { + "type": "string" }, - "iur" : { - "type" : "string" + "iur": { + "type": "string" } } }, - "Details" : { - "type" : "object", - "properties" : { - "blurredNumber" : { - "type" : "string" + "Details": { + "type": "object", + "properties": { + "blurredNumber": { + "type": "string" }, - "holder" : { - "type" : "string" + "holder": { + "type": "string" }, - "circuit" : { - "type" : "string" + "circuit": { + "type": "string" } } }, - "Info" : { - "type" : "object", - "properties" : { - "type" : { - "type" : "string" + "Info": { + "type": "object", + "properties": { + "type": { + "type": "string" }, - "blurredNumber" : { - "type" : "string" + "blurredNumber": { + "type": "string" }, - "holder" : { - "type" : "string" + "holder": { + "type": "string" }, - "expireMonth" : { - "type" : "string" + "expireMonth": { + "type": "string" }, - "expireYear" : { - "type" : "string" + "expireYear": { + "type": "string" }, - "brand" : { - "type" : "string" + "brand": { + "type": "string" }, - "issuerAbi" : { - "type" : "string" + "issuerAbi": { + "type": "string" }, - "issuerName" : { - "type" : "string" + "issuerName": { + "type": "string" }, - "label" : { - "type" : "string" + "label": { + "type": "string" } } }, - "InfoTransaction" : { - "type" : "object", - "properties" : { - "brand" : { - "type" : "string" + "InfoTransaction": { + "type": "object", + "properties": { + "brand": { + "type": "string" }, - "brandLogo" : { - "type" : "string" + "brandLogo": { + "type": "string" }, - "clientId" : { - "type" : "string" + "clientId": { + "type": "string" }, - "paymentMethodName" : { - "type" : "string" + "paymentMethodName": { + "type": "string" }, - "type" : { - "type" : "string" + "type": { + "type": "string" } } }, - "MBD" : { - "type" : "object", - "properties" : { - "IUBD" : { - "type" : "string" + "MBD": { + "type": "object", + "properties": { + "IUBD": { + "type": "string" }, - "oraAcquisto" : { - "type" : "string" + "oraAcquisto": { + "type": "string" }, - "importo" : { - "type" : "string" + "importo": { + "type": "string" }, - "tipoBollo" : { - "type" : "string" + "tipoBollo": { + "type": "string" }, - "MBDAttachment" : { - "type" : "string" + "MBDAttachment": { + "type": "string" } } }, - "PaymentAuthorizationRequest" : { - "type" : "object", - "properties" : { - "authOutcome" : { - "type" : "string" + "PaymentAuthorizationRequest": { + "type": "object", + "properties": { + "authOutcome": { + "type": "string" }, - "requestId" : { - "type" : "string" + "requestId": { + "type": "string" }, - "correlationId" : { - "type" : "string" + "correlationId": { + "type": "string" }, - "authCode" : { - "type" : "string" + "authCode": { + "type": "string" }, - "paymentMethodType" : { - "type" : "string" + "paymentMethodType": { + "type": "string" }, - "details" : { - "$ref" : "#/components/schemas/Details" + "details": { + "$ref": "#/components/schemas/Details" } } }, - "PaymentInfo" : { - "type" : "object", - "properties" : { - "paymentDateTime" : { - "type" : "string" + "PaymentInfo": { + "type": "object", + "properties": { + "paymentDateTime": { + "type": "string" }, - "applicationDate" : { - "type" : "string" + "applicationDate": { + "type": "string" }, - "transferDate" : { - "type" : "string" + "transferDate": { + "type": "string" }, - "dueDate" : { - "type" : "string" + "dueDate": { + "type": "string" }, - "paymentToken" : { - "type" : "string" + "paymentToken": { + "type": "string" }, - "amount" : { - "type" : "string" + "amount": { + "type": "string" }, - "fee" : { - "type" : "string" + "fee": { + "type": "string" }, - "primaryCiIncurredFee" : { - "type" : "string" + "primaryCiIncurredFee": { + "type": "string" }, - "idBundle" : { - "type" : "string" + "idBundle": { + "type": "string" }, - "idCiBundle" : { - "type" : "string" + "idCiBundle": { + "type": "string" }, - "totalNotice" : { - "type" : "string" + "totalNotice": { + "type": "string" }, - "paymentMethod" : { - "type" : "string" + "paymentMethod": { + "type": "string" }, - "touchpoint" : { - "type" : "string" + "touchpoint": { + "type": "string" }, - "remittanceInformation" : { - "type" : "string" + "remittanceInformation": { + "type": "string" }, - "description" : { - "type" : "string" + "description": { + "type": "string" }, - "metadata" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/MapEntry" + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapEntry" } }, - "IUR" : { - "type" : "string" + "IUR": { + "type": "string" } } }, - "Psp" : { - "type" : "object", - "properties" : { - "idPsp" : { - "type" : "string" + "Psp": { + "type": "object", + "properties": { + "idPsp": { + "type": "string" }, - "idBrokerPsp" : { - "type" : "string" + "idBrokerPsp": { + "type": "string" }, - "idChannel" : { - "type" : "string" + "idChannel": { + "type": "string" }, - "psp" : { - "type" : "string" + "psp": { + "type": "string" }, - "pspPartitaIVA" : { - "type" : "string" + "pspPartitaIVA": { + "type": "string" }, - "pspFiscalCode" : { - "type" : "string" + "pspFiscalCode": { + "type": "string" }, - "channelDescription" : { - "type" : "string" + "channelDescription": { + "type": "string" } } }, - "Transaction" : { - "type" : "object", - "properties" : { - "idTransaction" : { - "type" : "string" + "Transaction": { + "type": "object", + "properties": { + "idTransaction": { + "type": "string" }, - "transactionId" : { - "type" : "string" + "transactionId": { + "type": "string" }, - "grandTotal" : { - "type" : "integer", - "format" : "int64" + "grandTotal": { + "type": "integer", + "format": "int64" }, - "amount" : { - "type" : "integer", - "format" : "int64" + "amount": { + "type": "integer", + "format": "int64" }, - "fee" : { - "type" : "integer", - "format" : "int64" + "fee": { + "type": "integer", + "format": "int64" }, - "transactionStatus" : { - "type" : "string" + "transactionStatus": { + "type": "string" }, - "accountingStatus" : { - "type" : "string" + "accountingStatus": { + "type": "string" }, - "rrn" : { - "type" : "string" + "rrn": { + "type": "string" }, - "authorizationCode" : { - "type" : "string" + "authorizationCode": { + "type": "string" }, - "creationDate" : { - "type" : "string" + "creationDate": { + "type": "string" }, - "numAut" : { - "type" : "string" + "numAut": { + "type": "string" }, - "accountCode" : { - "type" : "string" + "accountCode": { + "type": "string" }, - "psp" : { - "$ref" : "#/components/schemas/TransactionPsp" + "psp": { + "$ref": "#/components/schemas/TransactionPsp" }, - "origin" : { - "type" : "string" + "origin": { + "type": "string" } } }, - "TransactionDetails" : { - "type" : "object", - "properties" : { - "user" : { - "$ref" : "#/components/schemas/User" + "TransactionDetails": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/User" }, - "paymentAuthorizationRequest" : { - "$ref" : "#/components/schemas/PaymentAuthorizationRequest" + "paymentAuthorizationRequest": { + "$ref": "#/components/schemas/PaymentAuthorizationRequest" }, - "wallet" : { - "$ref" : "#/components/schemas/WalletItem" + "wallet": { + "$ref": "#/components/schemas/WalletItem" }, - "origin" : { - "type" : "string" + "origin": { + "type": "string" }, - "transaction" : { - "$ref" : "#/components/schemas/Transaction" + "transaction": { + "$ref": "#/components/schemas/Transaction" }, - "info" : { - "$ref" : "#/components/schemas/InfoTransaction" + "info": { + "$ref": "#/components/schemas/InfoTransaction" } } }, - "TransactionPsp" : { - "type" : "object", - "properties" : { - "idChannel" : { - "type" : "string" + "TransactionPsp": { + "type": "object", + "properties": { + "idChannel": { + "type": "string" }, - "businessName" : { - "type" : "string" + "businessName": { + "type": "string" }, - "serviceName" : { - "type" : "string" + "serviceName": { + "type": "string" } } }, - "Transfer" : { - "type" : "object", - "properties" : { - "idTransfer" : { - "type" : "string" + "Transfer": { + "type": "object", + "properties": { + "idTransfer": { + "type": "string" }, - "fiscalCodePA" : { - "type" : "string" + "fiscalCodePA": { + "type": "string" }, - "companyName" : { - "type" : "string" + "companyName": { + "type": "string" }, - "amount" : { - "type" : "string" + "amount": { + "type": "string" }, - "transferCategory" : { - "type" : "string" + "transferCategory": { + "type": "string" }, - "remittanceInformation" : { - "type" : "string" + "remittanceInformation": { + "type": "string" }, - "metadata" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/MapEntry" + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapEntry" } }, - "IBAN" : { - "type" : "string" + "IBAN": { + "type": "string" }, - "MBD" : { - "$ref" : "#/components/schemas/MBD" + "MBD": { + "$ref": "#/components/schemas/MBD" } } }, - "User" : { - "type" : "object", - "properties" : { - "fullName" : { - "type" : "string" - }, - "type" : { - "type" : "string", - "enum" : [ "F", "G", "GUEST" ] - }, - "fiscalCode" : { - "type" : "string" - }, - "notificationEmail" : { - "type" : "string" - }, - "userId" : { - "type" : "string" - }, - "userStatus" : { - "type" : "string" - }, - "userStatusDescription" : { - "type" : "string" + "User": { + "type": "object", + "properties": { + "fullName": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "F", + "G", + "GUEST" + ] + }, + "fiscalCode": { + "type": "string" + }, + "notificationEmail": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "userStatus": { + "type": "string" + }, + "userStatusDescription": { + "type": "string" } } }, - "WalletItem" : { - "type" : "object", - "properties" : { - "idWallet" : { - "type" : "string" - }, - "walletType" : { - "type" : "string", - "enum" : [ "CARD", "PAYPAL", "BANCOMATPAY" ] - }, - "enableableFunctions" : { - "type" : "array", - "items" : { - "type" : "string" + "WalletItem": { + "type": "object", + "properties": { + "idWallet": { + "type": "string" + }, + "walletType": { + "type": "string", + "enum": [ + "CARD", + "PAYPAL", + "BANCOMATPAY" + ] + }, + "enableableFunctions": { + "type": "array", + "items": { + "type": "string" } }, - "pagoPa" : { - "type" : "boolean" + "pagoPa": { + "type": "boolean" }, - "onboardingChannel" : { - "type" : "string" + "onboardingChannel": { + "type": "string" }, - "favourite" : { - "type" : "boolean" + "favourite": { + "type": "boolean" }, - "createDate" : { - "type" : "string" + "createDate": { + "type": "string" }, - "info" : { - "$ref" : "#/components/schemas/Info" + "info": { + "$ref": "#/components/schemas/Info" }, - "authRequest" : { - "$ref" : "#/components/schemas/AuthRequest" + "authRequest": { + "$ref": "#/components/schemas/AuthRequest" } } } }, - "securitySchemes" : { - "ApiKey" : { - "type" : "apiKey", - "description" : "The API key to access this function app.", - "name" : "Ocp-Apim-Subscription-Key", - "in" : "header" + "securitySchemes": { + "ApiKey": { + "type": "apiKey", + "description": "The API key to access this function app.", + "name": "Ocp-Apim-Subscription-Key", + "in": "header" } } } -} \ No newline at end of file +} diff --git a/openapi/openapi_ec.json b/openapi/openapi_ec.json index 4afd80d8..ee42e159 100644 --- a/openapi/openapi_ec.json +++ b/openapi/openapi_ec.json @@ -1,658 +1,721 @@ { - "openapi" : "3.0.1", - "info" : { - "title" : "Biz-Events Service", - "description" : "Microservice for exposing REST APIs about payment receipts.", - "termsOfService" : "https://www.pagopa.gov.it/", - "version" : "0.1.27" + "openapi": "3.0.1", + "info": { + "title": "Biz-Events Service", + "description": "Microservice for exposing REST APIs about payment receipts.", + "termsOfService": "https://www.pagopa.gov.it/", + "version": "0.1.28" }, - "servers" : [ { - "url" : "http://localhost", - "description" : "Generated server url" - } ], - "paths" : { - "/organizations/{organizationfiscalcode}/receipts/{iur}" : { - "get" : { - "tags" : [ "Payment Receipts REST APIs" ], - "summary" : "The organization get the receipt for the creditor institution using IUR.", - "operationId" : "getOrganizationReceiptIur", - "parameters" : [ { - "name" : "organizationfiscalcode", - "in" : "path", - "description" : "The fiscal code of the Organization.", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "iur", - "in" : "path", - "description" : "The unique reference of the operation assigned to the payment (Payment Token).", - "required" : true, - "schema" : { - "type" : "string" + "servers": [ + { + "url": "http://localhost", + "description": "Generated server url" + } + ], + "paths": { + "/organizations/{organizationfiscalcode}/receipts/{iur}": { + "get": { + "tags": [ + "Payment Receipts REST APIs" + ], + "summary": "The organization get the receipt for the creditor institution using IUR.", + "operationId": "getOrganizationReceiptIur", + "parameters": [ + { + "name": "organizationfiscalcode", + "in": "path", + "description": "The fiscal code of the Organization.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "iur", + "in": "path", + "description": "The unique reference of the operation assigned to the payment (Payment Token).", + "required": true, + "schema": { + "type": "string" + } } - } ], - "responses" : { - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + ], + "responses": { + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "404" : { - "description" : "Not found the receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "422" : { - "description" : "Unable to process the request.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "422": { + "description": "Unable to process the request.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "200" : { - "description" : "Obtained receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "200": { + "description": "Obtained receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CtReceiptModelResponse" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CtReceiptModelResponse" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/organizations/{organizationfiscalcode}/receipts/{iur}/paymentoptions/{iuv}" : { - "get" : { - "tags" : [ "Payment Receipts REST APIs" ], - "summary" : "The organization get the receipt for the creditor institution using IUV and IUR.", - "operationId" : "getOrganizationReceiptIuvIur", - "parameters" : [ { - "name" : "organizationfiscalcode", - "in" : "path", - "description" : "The fiscal code of the Organization.", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "iur", - "in" : "path", - "description" : "The unique reference of the operation assigned to the payment (Payment Token).", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "iuv", - "in" : "path", - "description" : "The unique payment identification. Alphanumeric code that uniquely associates and identifies three key elements of a payment: reason, payer, amount", - "required" : true, - "schema" : { - "type" : "string" + "/organizations/{organizationfiscalcode}/receipts/{iur}/paymentoptions/{iuv}": { + "get": { + "tags": [ + "Payment Receipts REST APIs" + ], + "summary": "The organization get the receipt for the creditor institution using IUV and IUR.", + "operationId": "getOrganizationReceiptIuvIur", + "parameters": [ + { + "name": "organizationfiscalcode", + "in": "path", + "description": "The fiscal code of the Organization.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "iur", + "in": "path", + "description": "The unique reference of the operation assigned to the payment (Payment Token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "iuv", + "in": "path", + "description": "The unique payment identification. Alphanumeric code that uniquely associates and identifies three key elements of a payment: reason, payer, amount", + "required": true, + "schema": { + "type": "string" + } } - } ], - "responses" : { - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + ], + "responses": { + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "404" : { - "description" : "Not found the receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "422" : { - "description" : "Unable to process the request.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "422": { + "description": "Unable to process the request.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "200" : { - "description" : "Obtained receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "200": { + "description": "Obtained receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CtReceiptModelResponse" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CtReceiptModelResponse" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/info" : { - "get" : { - "tags" : [ "Home" ], - "summary" : "health check", - "description" : "Return OK if application is started", - "operationId" : "healthCheck", - "responses" : { - "429" : { - "description" : "Too many requests", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/info": { + "get": { + "tags": [ + "Home" + ], + "summary": "health check", + "description": "Return OK if application is started", + "operationId": "healthCheck", + "responses": { + "429": { + "description": "Too many requests", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "401" : { - "description" : "Unauthorized", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Unauthorized", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "400" : { - "description" : "Bad Request", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "400": { + "description": "Bad Request", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "500" : { - "description" : "Service unavailable", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "403" : { - "description" : "Forbidden", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "403": { + "description": "Forbidden", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "200" : { - "description" : "OK", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "200": { + "description": "OK", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/AppInfo" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppInfo" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] } }, - "components" : { - "schemas" : { - "ProblemJson" : { - "type" : "object", - "properties" : { - "title" : { - "type" : "string", - "description" : "A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized); example: Service Unavailable" - }, - "status" : { - "maximum" : 600, - "minimum" : 100, - "type" : "integer", - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.", - "format" : "int32", - "example" : 200 - }, - "detail" : { - "type" : "string", - "description" : "A human readable explanation specific to this occurrence of the problem.", - "example" : "There was an error processing the request" + "components": { + "schemas": { + "ProblemJson": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized); example: Service Unavailable" + }, + "status": { + "maximum": 600, + "minimum": 100, + "type": "integer", + "description": "The HTTP status code generated by the origin server for this occurrence of the problem.", + "format": "int32", + "example": 200 + }, + "detail": { + "type": "string", + "description": "A human readable explanation specific to this occurrence of the problem.", + "example": "There was an error processing the request" } } }, - "CtReceiptModelResponse" : { - "required" : [ "channelDescription", "companyName", "creditorReferenceId", "debtor", "description", "fiscalCode", "idChannel", "idPSP", "noticeNumber", "outcome", "paymentAmount", "pspCompanyName", "receiptId", "transferList" ], - "type" : "object", - "properties" : { - "receiptId" : { - "type" : "string" - }, - "noticeNumber" : { - "type" : "string" - }, - "fiscalCode" : { - "type" : "string" - }, - "outcome" : { - "type" : "string" - }, - "creditorReferenceId" : { - "type" : "string" - }, - "paymentAmount" : { - "type" : "number" - }, - "description" : { - "type" : "string" - }, - "companyName" : { - "type" : "string" - }, - "officeName" : { - "type" : "string" - }, - "debtor" : { - "$ref" : "#/components/schemas/Debtor" - }, - "transferList" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/TransferPA" + "CtReceiptModelResponse": { + "required": [ + "channelDescription", + "companyName", + "creditorReferenceId", + "debtor", + "description", + "fiscalCode", + "idChannel", + "idPSP", + "noticeNumber", + "outcome", + "paymentAmount", + "pspCompanyName", + "receiptId", + "transferList" + ], + "type": "object", + "properties": { + "receiptId": { + "type": "string" + }, + "noticeNumber": { + "type": "string" + }, + "fiscalCode": { + "type": "string" + }, + "outcome": { + "type": "string" + }, + "creditorReferenceId": { + "type": "string" + }, + "paymentAmount": { + "type": "number" + }, + "description": { + "type": "string" + }, + "companyName": { + "type": "string" + }, + "officeName": { + "type": "string" + }, + "debtor": { + "$ref": "#/components/schemas/Debtor" + }, + "transferList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransferPA" } }, - "idPSP" : { - "type" : "string" + "idPSP": { + "type": "string" }, - "pspFiscalCode" : { - "type" : "string" + "pspFiscalCode": { + "type": "string" }, - "pspPartitaIVA" : { - "type" : "string" + "pspPartitaIVA": { + "type": "string" }, - "pspCompanyName" : { - "type" : "string" + "pspCompanyName": { + "type": "string" }, - "idChannel" : { - "type" : "string" + "idChannel": { + "type": "string" }, - "channelDescription" : { - "type" : "string" + "channelDescription": { + "type": "string" }, - "payer" : { - "$ref" : "#/components/schemas/Payer" + "payer": { + "$ref": "#/components/schemas/Payer" }, - "paymentMethod" : { - "type" : "string" + "paymentMethod": { + "type": "string" }, - "fee" : { - "type" : "number" + "fee": { + "type": "number" }, - "primaryCiIncurredFee" : { - "type" : "number" + "primaryCiIncurredFee": { + "type": "number" }, - "idBundle" : { - "type" : "string" + "idBundle": { + "type": "string" }, - "idCiBundle" : { - "type" : "string" + "idCiBundle": { + "type": "string" }, - "paymentDateTime" : { - "type" : "string", - "format" : "date" + "paymentDateTime": { + "type": "string", + "format": "date" }, - "applicationDate" : { - "type" : "string", - "format" : "date" + "applicationDate": { + "type": "string", + "format": "date" }, - "transferDate" : { - "type" : "string", - "format" : "date" + "transferDate": { + "type": "string", + "format": "date" }, - "metadata" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/MapEntry" + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapEntry" } } } }, - "Debtor" : { - "required" : [ "entityUniqueIdentifierType", "entityUniqueIdentifierValue", "fullName" ], - "type" : "object", - "properties" : { - "entityUniqueIdentifierType" : { - "type" : "string", - "enum" : [ "F", "G" ] - }, - "entityUniqueIdentifierValue" : { - "type" : "string" - }, - "fullName" : { - "type" : "string" - }, - "streetName" : { - "type" : "string" - }, - "civicNumber" : { - "type" : "string" - }, - "postalCode" : { - "type" : "string" - }, - "city" : { - "type" : "string" - }, - "stateProvinceRegion" : { - "type" : "string" - }, - "country" : { - "type" : "string" - }, - "email" : { - "type" : "string" + "Debtor": { + "required": [ + "entityUniqueIdentifierType", + "entityUniqueIdentifierValue", + "fullName" + ], + "type": "object", + "properties": { + "entityUniqueIdentifierType": { + "type": "string", + "enum": [ + "F", + "G" + ] + }, + "entityUniqueIdentifierValue": { + "type": "string" + }, + "fullName": { + "type": "string" + }, + "streetName": { + "type": "string" + }, + "civicNumber": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "city": { + "type": "string" + }, + "stateProvinceRegion": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" } } }, - "MapEntry" : { - "type" : "object", - "properties" : { - "key" : { - "type" : "string" - }, - "value" : { - "type" : "string" + "MapEntry": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" } } }, - "Payer" : { - "required" : [ "entityUniqueIdentifierType", "entityUniqueIdentifierValue", "fullName" ], - "type" : "object", - "properties" : { - "entityUniqueIdentifierType" : { - "type" : "string", - "enum" : [ "F", "G" ] - }, - "entityUniqueIdentifierValue" : { - "type" : "string" - }, - "fullName" : { - "type" : "string" - }, - "streetName" : { - "type" : "string" - }, - "civicNumber" : { - "type" : "string" - }, - "postalCode" : { - "type" : "string" - }, - "city" : { - "type" : "string" - }, - "stateProvinceRegion" : { - "type" : "string" - }, - "country" : { - "type" : "string" - }, - "email" : { - "type" : "string" + "Payer": { + "required": [ + "entityUniqueIdentifierType", + "entityUniqueIdentifierValue", + "fullName" + ], + "type": "object", + "properties": { + "entityUniqueIdentifierType": { + "type": "string", + "enum": [ + "F", + "G" + ] + }, + "entityUniqueIdentifierValue": { + "type": "string" + }, + "fullName": { + "type": "string" + }, + "streetName": { + "type": "string" + }, + "civicNumber": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "city": { + "type": "string" + }, + "stateProvinceRegion": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" } } }, - "TransferPA" : { - "required" : [ "fiscalCodePA", "iban", "mbdAttachment", "remittanceInformation", "transferAmount", "transferCategory" ], - "type" : "object", - "properties" : { - "idTransfer" : { - "maximum" : 5, - "minimum" : 1, - "type" : "integer", - "format" : "int32" - }, - "transferAmount" : { - "type" : "number" - }, - "fiscalCodePA" : { - "type" : "string" - }, - "iban" : { - "type" : "string" - }, - "mbdAttachment" : { - "type" : "string" - }, - "remittanceInformation" : { - "type" : "string" - }, - "transferCategory" : { - "type" : "string" - }, - "metadata" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/MapEntry" + "TransferPA": { + "required": [ + "fiscalCodePA", + "iban", + "mbdAttachment", + "remittanceInformation", + "transferAmount", + "transferCategory" + ], + "type": "object", + "properties": { + "idTransfer": { + "maximum": 5, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "transferAmount": { + "type": "number" + }, + "fiscalCodePA": { + "type": "string" + }, + "iban": { + "type": "string" + }, + "mbdAttachment": { + "type": "string" + }, + "remittanceInformation": { + "type": "string" + }, + "transferCategory": { + "type": "string" + }, + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapEntry" } } } }, - "AppInfo" : { - "type" : "object", - "properties" : { - "name" : { - "type" : "string" + "AppInfo": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "version" : { - "type" : "string" + "version": { + "type": "string" }, - "environment" : { - "type" : "string" + "environment": { + "type": "string" } } } }, - "securitySchemes" : { - "ApiKey" : { - "type" : "apiKey", - "description" : "The API key to access this function app.", - "name" : "Ocp-Apim-Subscription-Key", - "in" : "header" + "securitySchemes": { + "ApiKey": { + "type": "apiKey", + "description": "The API key to access this function app.", + "name": "Ocp-Apim-Subscription-Key", + "in": "header" } } } -} \ No newline at end of file +} diff --git a/openapi/openapi_helpdesk.json b/openapi/openapi_helpdesk.json index 5d7101ca..70ff86ca 100644 --- a/openapi/openapi_helpdesk.json +++ b/openapi/openapi_helpdesk.json @@ -1,1003 +1,1041 @@ { - "openapi" : "3.0.1", - "info" : { - "title" : "Biz-Events Service", - "description" : "Microservice for exposing REST APIs about payment receipts.", - "termsOfService" : "https://www.pagopa.gov.it/", - "version" : "0.1.27" + "openapi": "3.0.1", + "info": { + "title": "Biz-Events Service", + "description": "Microservice for exposing REST APIs about payment receipts.", + "termsOfService": "https://www.pagopa.gov.it/", + "version": "0.1.28" }, - "servers" : [ { - "url" : "http://localhost", - "description" : "Generated server url" - } ], - "paths" : { - "/info" : { - "get" : { - "tags" : [ "Home" ], - "summary" : "health check", - "description" : "Return OK if application is started", - "operationId" : "healthCheck", - "responses" : { - "429" : { - "description" : "Too many requests", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "servers": [ + { + "url": "http://localhost", + "description": "Generated server url" + } + ], + "paths": { + "/info": { + "get": { + "tags": [ + "Home" + ], + "summary": "health check", + "description": "Return OK if application is started", + "operationId": "healthCheck", + "responses": { + "429": { + "description": "Too many requests", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "401" : { - "description" : "Unauthorized", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Unauthorized", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "400" : { - "description" : "Bad Request", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "400": { + "description": "Bad Request", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "500" : { - "description" : "Service unavailable", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "403" : { - "description" : "Forbidden", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "403": { + "description": "Forbidden", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "200" : { - "description" : "OK", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "200": { + "description": "OK", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/AppInfo" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppInfo" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/events/{biz-event-id}" : { - "get" : { - "tags" : [ "Biz-Events Helpdesk" ], - "summary" : "Retrieve the biz-event given its id.", - "operationId" : "getBizEvent", - "parameters" : [ { - "name" : "biz-event-id", - "in" : "path", - "description" : "The id of the biz-event.", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/events/{biz-event-id}": { + "get": { + "tags": [ + "Biz-Events Helpdesk" + ], + "summary": "Retrieve the biz-event given its id.", + "operationId": "getBizEvent", + "parameters": [ + { + "name": "biz-event-id", + "in": "path", + "description": "The id of the biz-event.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "404" : { - "description" : "Not found the biz-event.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the biz-event.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "422" : { - "description" : "Unable to process the request.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "422": { + "description": "Unable to process the request.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "200" : { - "description" : "Obtained biz-event.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "200": { + "description": "Obtained biz-event.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BizEvent" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BizEvent" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/events/organizations/{organization-fiscal-code}/iuvs/{iuv}" : { - "get" : { - "tags" : [ "Biz-Events Helpdesk" ], - "summary" : "Retrieve the biz-event given the organization fiscal code and IUV.", - "operationId" : "getBizEventByOrganizationFiscalCodeAndIuv", - "parameters" : [ { - "name" : "organization-fiscal-code", - "in" : "path", - "description" : "The fiscal code of the Organization.", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "iuv", - "in" : "path", - "description" : "The unique payment identification. Alphanumeric code that uniquely associates and identifies three key elements of a payment: reason, payer, amount", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/events/organizations/{organization-fiscal-code}/iuvs/{iuv}": { + "get": { + "tags": [ + "Biz-Events Helpdesk" + ], + "summary": "Retrieve the biz-event given the organization fiscal code and IUV.", + "operationId": "getBizEventByOrganizationFiscalCodeAndIuv", + "parameters": [ + { + "name": "organization-fiscal-code", + "in": "path", + "description": "The fiscal code of the Organization.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "iuv", + "in": "path", + "description": "The unique payment identification. Alphanumeric code that uniquely associates and identifies three key elements of a payment: reason, payer, amount", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "404" : { - "description" : "Not found the biz-event.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the biz-event.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "422" : { - "description" : "Unable to process the request.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "422": { + "description": "Unable to process the request.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "200" : { - "description" : "Obtained biz-event.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "200": { + "description": "Obtained biz-event.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BizEvent" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BizEvent" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] } }, - "components" : { - "schemas" : { - "ProblemJson" : { - "type" : "object", - "properties" : { - "title" : { - "type" : "string", - "description" : "A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized); example: Service Unavailable" - }, - "status" : { - "maximum" : 600, - "minimum" : 100, - "type" : "integer", - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.", - "format" : "int32", - "example" : 200 - }, - "detail" : { - "type" : "string", - "description" : "A human readable explanation specific to this occurrence of the problem.", - "example" : "There was an error processing the request" + "components": { + "schemas": { + "ProblemJson": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized); example: Service Unavailable" + }, + "status": { + "maximum": 600, + "minimum": 100, + "type": "integer", + "description": "The HTTP status code generated by the origin server for this occurrence of the problem.", + "format": "int32", + "example": 200 + }, + "detail": { + "type": "string", + "description": "A human readable explanation specific to this occurrence of the problem.", + "example": "There was an error processing the request" } } }, - "AppInfo" : { - "type" : "object", - "properties" : { - "name" : { - "type" : "string" + "AppInfo": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "version" : { - "type" : "string" + "version": { + "type": "string" }, - "environment" : { - "type" : "string" + "environment": { + "type": "string" } } }, - "AuthRequest" : { - "type" : "object", - "properties" : { - "authOutcome" : { - "type" : "string" + "AuthRequest": { + "type": "object", + "properties": { + "authOutcome": { + "type": "string" }, - "guid" : { - "type" : "string" + "guid": { + "type": "string" }, - "correlationId" : { - "type" : "string" + "correlationId": { + "type": "string" }, - "error" : { - "type" : "string" + "error": { + "type": "string" }, - "auth_code" : { - "type" : "string" + "auth_code": { + "type": "string" } } }, - "BizEvent" : { - "type" : "object", - "properties" : { - "id" : { - "type" : "string" + "BizEvent": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "version" : { - "type" : "string" + "version": { + "type": "string" }, - "idPaymentManager" : { - "type" : "string" + "idPaymentManager": { + "type": "string" }, - "complete" : { - "type" : "string" + "complete": { + "type": "string" }, - "receiptId" : { - "type" : "string" + "receiptId": { + "type": "string" }, - "missingInfo" : { - "type" : "array", - "items" : { - "type" : "string" + "missingInfo": { + "type": "array", + "items": { + "type": "string" } }, - "debtorPosition" : { - "$ref" : "#/components/schemas/DebtorPosition" + "debtorPosition": { + "$ref": "#/components/schemas/DebtorPosition" }, - "creditor" : { - "$ref" : "#/components/schemas/Creditor" + "creditor": { + "$ref": "#/components/schemas/Creditor" }, - "psp" : { - "$ref" : "#/components/schemas/Psp" + "psp": { + "$ref": "#/components/schemas/Psp" }, - "debtor" : { - "$ref" : "#/components/schemas/Debtor" + "debtor": { + "$ref": "#/components/schemas/Debtor" }, - "payer" : { - "$ref" : "#/components/schemas/Payer" + "payer": { + "$ref": "#/components/schemas/Payer" }, - "paymentInfo" : { - "$ref" : "#/components/schemas/PaymentInfo" + "paymentInfo": { + "$ref": "#/components/schemas/PaymentInfo" }, - "transferList" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Transfer" + "transferList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Transfer" } }, - "transactionDetails" : { - "$ref" : "#/components/schemas/TransactionDetails" - }, - "eventStatus" : { - "type" : "string", - "enum" : [ "NA", "RETRY", "FAILED", "DONE" ] - }, - "eventRetryEnrichmentCount" : { - "type" : "integer", - "format" : "int32" + "transactionDetails": { + "$ref": "#/components/schemas/TransactionDetails" + }, + "eventStatus": { + "type": "string", + "enum": [ + "NA", + "RETRY", + "FAILED", + "DONE" + ] + }, + "eventRetryEnrichmentCount": { + "type": "integer", + "format": "int32" } } }, - "Creditor" : { - "type" : "object", - "properties" : { - "idPA" : { - "type" : "string" + "Creditor": { + "type": "object", + "properties": { + "idPA": { + "type": "string" }, - "idBrokerPA" : { - "type" : "string" + "idBrokerPA": { + "type": "string" }, - "idStation" : { - "type" : "string" + "idStation": { + "type": "string" }, - "companyName" : { - "type" : "string" + "companyName": { + "type": "string" }, - "officeName" : { - "type" : "string" + "officeName": { + "type": "string" } } }, - "Debtor" : { - "type" : "object", - "properties" : { - "fullName" : { - "type" : "string" + "Debtor": { + "type": "object", + "properties": { + "fullName": { + "type": "string" }, - "entityUniqueIdentifierType" : { - "type" : "string" + "entityUniqueIdentifierType": { + "type": "string" }, - "entityUniqueIdentifierValue" : { - "type" : "string" + "entityUniqueIdentifierValue": { + "type": "string" }, - "streetName" : { - "type" : "string" + "streetName": { + "type": "string" }, - "civicNumber" : { - "type" : "string" + "civicNumber": { + "type": "string" }, - "postalCode" : { - "type" : "string" + "postalCode": { + "type": "string" }, - "city" : { - "type" : "string" + "city": { + "type": "string" }, - "stateProvinceRegion" : { - "type" : "string" + "stateProvinceRegion": { + "type": "string" }, - "country" : { - "type" : "string" + "country": { + "type": "string" }, - "eMail" : { - "type" : "string" + "eMail": { + "type": "string" } } }, - "DebtorPosition" : { - "type" : "object", - "properties" : { - "modelType" : { - "type" : "string" + "DebtorPosition": { + "type": "object", + "properties": { + "modelType": { + "type": "string" }, - "noticeNumber" : { - "type" : "string" + "noticeNumber": { + "type": "string" }, - "iuv" : { - "type" : "string" + "iuv": { + "type": "string" }, - "iur" : { - "type" : "string" + "iur": { + "type": "string" } } }, - "Details" : { - "type" : "object", - "properties" : { - "blurredNumber" : { - "type" : "string" + "Details": { + "type": "object", + "properties": { + "blurredNumber": { + "type": "string" }, - "holder" : { - "type" : "string" + "holder": { + "type": "string" }, - "circuit" : { - "type" : "string" + "circuit": { + "type": "string" } } }, - "Info" : { - "type" : "object", - "properties" : { - "type" : { - "type" : "string" + "Info": { + "type": "object", + "properties": { + "type": { + "type": "string" }, - "blurredNumber" : { - "type" : "string" + "blurredNumber": { + "type": "string" }, - "holder" : { - "type" : "string" + "holder": { + "type": "string" }, - "expireMonth" : { - "type" : "string" + "expireMonth": { + "type": "string" }, - "expireYear" : { - "type" : "string" + "expireYear": { + "type": "string" }, - "brand" : { - "type" : "string" + "brand": { + "type": "string" }, - "issuerAbi" : { - "type" : "string" + "issuerAbi": { + "type": "string" }, - "issuerName" : { - "type" : "string" + "issuerName": { + "type": "string" }, - "label" : { - "type" : "string" + "label": { + "type": "string" } } }, - "InfoTransaction" : { - "type" : "object", - "properties" : { - "brand" : { - "type" : "string" + "InfoTransaction": { + "type": "object", + "properties": { + "brand": { + "type": "string" }, - "brandLogo" : { - "type" : "string" + "brandLogo": { + "type": "string" }, - "clientId" : { - "type" : "string" + "clientId": { + "type": "string" }, - "paymentMethodName" : { - "type" : "string" + "paymentMethodName": { + "type": "string" }, - "type" : { - "type" : "string" + "type": { + "type": "string" } } }, - "MBD" : { - "type" : "object", - "properties" : { - "IUBD" : { - "type" : "string" + "MBD": { + "type": "object", + "properties": { + "IUBD": { + "type": "string" }, - "oraAcquisto" : { - "type" : "string" + "oraAcquisto": { + "type": "string" }, - "importo" : { - "type" : "string" + "importo": { + "type": "string" }, - "tipoBollo" : { - "type" : "string" + "tipoBollo": { + "type": "string" }, - "MBDAttachment" : { - "type" : "string" + "MBDAttachment": { + "type": "string" } } }, - "MapEntry" : { - "type" : "object", - "properties" : { - "key" : { - "type" : "string" - }, - "value" : { - "type" : "string" + "MapEntry": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" } } }, - "Payer" : { - "type" : "object", - "properties" : { - "fullName" : { - "type" : "string" + "Payer": { + "type": "object", + "properties": { + "fullName": { + "type": "string" }, - "entityUniqueIdentifierType" : { - "type" : "string" + "entityUniqueIdentifierType": { + "type": "string" }, - "entityUniqueIdentifierValue" : { - "type" : "string" + "entityUniqueIdentifierValue": { + "type": "string" }, - "streetName" : { - "type" : "string" + "streetName": { + "type": "string" }, - "civicNumber" : { - "type" : "string" + "civicNumber": { + "type": "string" }, - "postalCode" : { - "type" : "string" + "postalCode": { + "type": "string" }, - "city" : { - "type" : "string" + "city": { + "type": "string" }, - "stateProvinceRegion" : { - "type" : "string" + "stateProvinceRegion": { + "type": "string" }, - "country" : { - "type" : "string" + "country": { + "type": "string" }, - "eMail" : { - "type" : "string" + "eMail": { + "type": "string" } } }, - "PaymentAuthorizationRequest" : { - "type" : "object", - "properties" : { - "authOutcome" : { - "type" : "string" + "PaymentAuthorizationRequest": { + "type": "object", + "properties": { + "authOutcome": { + "type": "string" }, - "requestId" : { - "type" : "string" + "requestId": { + "type": "string" }, - "correlationId" : { - "type" : "string" + "correlationId": { + "type": "string" }, - "authCode" : { - "type" : "string" + "authCode": { + "type": "string" }, - "paymentMethodType" : { - "type" : "string" + "paymentMethodType": { + "type": "string" }, - "details" : { - "$ref" : "#/components/schemas/Details" + "details": { + "$ref": "#/components/schemas/Details" } } }, - "PaymentInfo" : { - "type" : "object", - "properties" : { - "paymentDateTime" : { - "type" : "string" + "PaymentInfo": { + "type": "object", + "properties": { + "paymentDateTime": { + "type": "string" }, - "applicationDate" : { - "type" : "string" + "applicationDate": { + "type": "string" }, - "transferDate" : { - "type" : "string" + "transferDate": { + "type": "string" }, - "dueDate" : { - "type" : "string" + "dueDate": { + "type": "string" }, - "paymentToken" : { - "type" : "string" + "paymentToken": { + "type": "string" }, - "amount" : { - "type" : "string" + "amount": { + "type": "string" }, - "fee" : { - "type" : "string" + "fee": { + "type": "string" }, - "primaryCiIncurredFee" : { - "type" : "string" + "primaryCiIncurredFee": { + "type": "string" }, - "idBundle" : { - "type" : "string" + "idBundle": { + "type": "string" }, - "idCiBundle" : { - "type" : "string" + "idCiBundle": { + "type": "string" }, - "totalNotice" : { - "type" : "string" + "totalNotice": { + "type": "string" }, - "paymentMethod" : { - "type" : "string" + "paymentMethod": { + "type": "string" }, - "touchpoint" : { - "type" : "string" + "touchpoint": { + "type": "string" }, - "remittanceInformation" : { - "type" : "string" + "remittanceInformation": { + "type": "string" }, - "description" : { - "type" : "string" + "description": { + "type": "string" }, - "metadata" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/MapEntry" + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapEntry" } }, - "IUR" : { - "type" : "string" + "IUR": { + "type": "string" } } }, - "Psp" : { - "type" : "object", - "properties" : { - "idPsp" : { - "type" : "string" + "Psp": { + "type": "object", + "properties": { + "idPsp": { + "type": "string" }, - "idBrokerPsp" : { - "type" : "string" + "idBrokerPsp": { + "type": "string" }, - "idChannel" : { - "type" : "string" + "idChannel": { + "type": "string" }, - "psp" : { - "type" : "string" + "psp": { + "type": "string" }, - "pspPartitaIVA" : { - "type" : "string" + "pspPartitaIVA": { + "type": "string" }, - "pspFiscalCode" : { - "type" : "string" + "pspFiscalCode": { + "type": "string" }, - "channelDescription" : { - "type" : "string" + "channelDescription": { + "type": "string" } } }, - "Transaction" : { - "type" : "object", - "properties" : { - "idTransaction" : { - "type" : "string" + "Transaction": { + "type": "object", + "properties": { + "idTransaction": { + "type": "string" }, - "transactionId" : { - "type" : "string" + "transactionId": { + "type": "string" }, - "grandTotal" : { - "type" : "integer", - "format" : "int64" + "grandTotal": { + "type": "integer", + "format": "int64" }, - "amount" : { - "type" : "integer", - "format" : "int64" + "amount": { + "type": "integer", + "format": "int64" }, - "fee" : { - "type" : "integer", - "format" : "int64" + "fee": { + "type": "integer", + "format": "int64" }, - "transactionStatus" : { - "type" : "string" + "transactionStatus": { + "type": "string" }, - "accountingStatus" : { - "type" : "string" + "accountingStatus": { + "type": "string" }, - "rrn" : { - "type" : "string" + "rrn": { + "type": "string" }, - "authorizationCode" : { - "type" : "string" + "authorizationCode": { + "type": "string" }, - "creationDate" : { - "type" : "string" + "creationDate": { + "type": "string" }, - "numAut" : { - "type" : "string" + "numAut": { + "type": "string" }, - "accountCode" : { - "type" : "string" + "accountCode": { + "type": "string" }, - "psp" : { - "$ref" : "#/components/schemas/TransactionPsp" + "psp": { + "$ref": "#/components/schemas/TransactionPsp" }, - "origin" : { - "type" : "string" + "origin": { + "type": "string" } } }, - "TransactionDetails" : { - "type" : "object", - "properties" : { - "user" : { - "$ref" : "#/components/schemas/User" + "TransactionDetails": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/User" }, - "paymentAuthorizationRequest" : { - "$ref" : "#/components/schemas/PaymentAuthorizationRequest" + "paymentAuthorizationRequest": { + "$ref": "#/components/schemas/PaymentAuthorizationRequest" }, - "wallet" : { - "$ref" : "#/components/schemas/WalletItem" + "wallet": { + "$ref": "#/components/schemas/WalletItem" }, - "origin" : { - "type" : "string" + "origin": { + "type": "string" }, - "transaction" : { - "$ref" : "#/components/schemas/Transaction" + "transaction": { + "$ref": "#/components/schemas/Transaction" }, - "info" : { - "$ref" : "#/components/schemas/InfoTransaction" + "info": { + "$ref": "#/components/schemas/InfoTransaction" } } }, - "TransactionPsp" : { - "type" : "object", - "properties" : { - "idChannel" : { - "type" : "string" + "TransactionPsp": { + "type": "object", + "properties": { + "idChannel": { + "type": "string" }, - "businessName" : { - "type" : "string" + "businessName": { + "type": "string" }, - "serviceName" : { - "type" : "string" + "serviceName": { + "type": "string" } } }, - "Transfer" : { - "type" : "object", - "properties" : { - "idTransfer" : { - "type" : "string" + "Transfer": { + "type": "object", + "properties": { + "idTransfer": { + "type": "string" }, - "fiscalCodePA" : { - "type" : "string" + "fiscalCodePA": { + "type": "string" }, - "companyName" : { - "type" : "string" + "companyName": { + "type": "string" }, - "amount" : { - "type" : "string" + "amount": { + "type": "string" }, - "transferCategory" : { - "type" : "string" + "transferCategory": { + "type": "string" }, - "remittanceInformation" : { - "type" : "string" + "remittanceInformation": { + "type": "string" }, - "metadata" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/MapEntry" + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapEntry" } }, - "IBAN" : { - "type" : "string" + "IBAN": { + "type": "string" }, - "MBD" : { - "$ref" : "#/components/schemas/MBD" + "MBD": { + "$ref": "#/components/schemas/MBD" } } }, - "User" : { - "type" : "object", - "properties" : { - "fullName" : { - "type" : "string" - }, - "type" : { - "type" : "string", - "enum" : [ "F", "G", "GUEST" ] - }, - "fiscalCode" : { - "type" : "string" - }, - "notificationEmail" : { - "type" : "string" - }, - "userId" : { - "type" : "string" - }, - "userStatus" : { - "type" : "string" - }, - "userStatusDescription" : { - "type" : "string" + "User": { + "type": "object", + "properties": { + "fullName": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "F", + "G", + "GUEST" + ] + }, + "fiscalCode": { + "type": "string" + }, + "notificationEmail": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "userStatus": { + "type": "string" + }, + "userStatusDescription": { + "type": "string" } } }, - "WalletItem" : { - "type" : "object", - "properties" : { - "idWallet" : { - "type" : "string" - }, - "walletType" : { - "type" : "string", - "enum" : [ "CARD", "PAYPAL", "BANCOMATPAY" ] - }, - "enableableFunctions" : { - "type" : "array", - "items" : { - "type" : "string" + "WalletItem": { + "type": "object", + "properties": { + "idWallet": { + "type": "string" + }, + "walletType": { + "type": "string", + "enum": [ + "CARD", + "PAYPAL", + "BANCOMATPAY" + ] + }, + "enableableFunctions": { + "type": "array", + "items": { + "type": "string" } }, - "pagoPa" : { - "type" : "boolean" + "pagoPa": { + "type": "boolean" }, - "onboardingChannel" : { - "type" : "string" + "onboardingChannel": { + "type": "string" }, - "favourite" : { - "type" : "boolean" + "favourite": { + "type": "boolean" }, - "createDate" : { - "type" : "string" + "createDate": { + "type": "string" }, - "info" : { - "$ref" : "#/components/schemas/Info" + "info": { + "$ref": "#/components/schemas/Info" }, - "authRequest" : { - "$ref" : "#/components/schemas/AuthRequest" + "authRequest": { + "$ref": "#/components/schemas/AuthRequest" } } } }, - "securitySchemes" : { - "ApiKey" : { - "type" : "apiKey", - "description" : "The API key to access this function app.", - "name" : "Ocp-Apim-Subscription-Key", - "in" : "header" + "securitySchemes": { + "ApiKey": { + "type": "apiKey", + "description": "The API key to access this function app.", + "name": "Ocp-Apim-Subscription-Key", + "in": "header" } } } -} \ No newline at end of file +} diff --git a/openapi/openapi_io.json b/openapi/openapi_io.json index b596cd10..4b07046c 100644 --- a/openapi/openapi_io.json +++ b/openapi/openapi_io.json @@ -1,789 +1,852 @@ { - "openapi" : "3.0.1", - "info" : { - "title" : "Biz-Events Service", - "description" : "Microservice for exposing REST APIs about payment receipts.", - "termsOfService" : "https://www.pagopa.gov.it/", - "version" : "0.1.27" + "openapi": "3.0.1", + "info": { + "title": "Biz-Events Service", + "description": "Microservice for exposing REST APIs about payment receipts.", + "termsOfService": "https://www.pagopa.gov.it/", + "version": "0.1.28" }, - "servers" : [ { - "url" : "http://localhost", - "description" : "Generated server url" - } ], - "paths" : { - "/transactions/{transaction-id}/disable" : { - "post" : { - "tags" : [ "IO Transactions REST APIs" ], - "summary" : "Disable the transaction details given its id.", - "operationId" : "disableTransaction", - "parameters" : [ { - "name" : "x-fiscal-code", - "in" : "header", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "transaction-id", - "in" : "path", - "description" : "The id of the transaction.", - "required" : true, - "schema" : { - "type" : "string" + "servers": [ + { + "url": "http://localhost", + "description": "Generated server url" + } + ], + "paths": { + "/transactions/{transaction-id}/disable": { + "post": { + "tags": [ + "IO Transactions REST APIs" + ], + "summary": "Disable the transaction details given its id.", + "operationId": "disableTransaction", + "parameters": [ + { + "name": "x-fiscal-code", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "transaction-id", + "in": "path", + "description": "The id of the transaction.", + "required": true, + "schema": { + "type": "string" + } } - } ], - "responses" : { - "200" : { - "description" : "Disabled Transactions.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + ], + "responses": { + "200": { + "description": "Disabled Transactions.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { } + "content": { + "application/json": {} } }, - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "404" : { - "description" : "Not found the transaction.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the transaction.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/transactions" : { - "get" : { - "tags" : [ "IO Transactions REST APIs" ], - "summary" : "Retrieve the paged transaction list from biz events.", - "operationId" : "getTransactionList", - "parameters" : [ { - "name" : "x-fiscal-code", - "in" : "header", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "x-continuation-token", - "in" : "header", - "required" : false, - "schema" : { - "type" : "string" - } - }, { - "name" : "size", - "in" : "query", - "required" : false, - "schema" : { - "type" : "integer", - "format" : "int32", - "default" : 10 + "/transactions": { + "get": { + "tags": [ + "IO Transactions REST APIs" + ], + "summary": "Retrieve the paged transaction list from biz events.", + "operationId": "getTransactionList", + "parameters": [ + { + "name": "x-fiscal-code", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-continuation-token", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "size", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } } - } ], - "responses" : { - "200" : { - "description" : "Obtained transaction list.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + ], + "responses": { + "200": { + "description": "Obtained transaction list.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } }, - "x-continuation-token" : { - "description" : "continuation token for paginated query", - "style" : "simple", - "schema" : { - "type" : "string" + "x-continuation-token": { + "description": "continuation token for paginated query", + "style": "simple", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TransactionListWrapResponse" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionListWrapResponse" } } } }, - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "404" : { - "description" : "Not found the transaction.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the transaction.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/transactions/{transaction-id}" : { - "get" : { - "tags" : [ "IO Transactions REST APIs" ], - "summary" : "Retrieve the transaction details given its id.", - "operationId" : "getTransactionDetails", - "parameters" : [ { - "name" : "x-fiscal-code", - "in" : "header", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "transaction-id", - "in" : "path", - "description" : "The id of the transaction.", - "required" : true, - "schema" : { - "type" : "string" + "/transactions/{transaction-id}": { + "get": { + "tags": [ + "IO Transactions REST APIs" + ], + "summary": "Retrieve the transaction details given its id.", + "operationId": "getTransactionDetails", + "parameters": [ + { + "name": "x-fiscal-code", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "transaction-id", + "in": "path", + "description": "The id of the transaction.", + "required": true, + "schema": { + "type": "string" + } } - } ], - "responses" : { - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + ], + "responses": { + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "404" : { - "description" : "Not found the transaction.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the transaction.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "200" : { - "description" : "Obtained transaction details.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "200": { + "description": "Obtained transaction details.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TransactionDetailResponse" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionDetailResponse" } } } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/transactions/{event-id}/pdf" : { - "get" : { - "tags" : [ "IO Transactions REST APIs" ], - "summary" : "Retrieve the PDF receipt given event id.", - "operationId" : "getPDFReceipt", - "parameters" : [ { - "name" : "x-fiscal-code", - "in" : "header", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "event-id", - "in" : "path", - "description" : "The id of the event.", - "required" : true, - "schema" : { - "type" : "string" + "/transactions/{event-id}/pdf": { + "get": { + "tags": [ + "IO Transactions REST APIs" + ], + "summary": "Retrieve the PDF receipt given event id.", + "operationId": "getPDFReceipt", + "parameters": [ + { + "name": "x-fiscal-code", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "event-id", + "in": "path", + "description": "The id of the event.", + "required": true, + "schema": { + "type": "string" + } } - } ], - "responses" : { - "422" : { - "description" : "Unprocessable receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + ], + "responses": { + "422": { + "description": "Unprocessable receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "500" : { - "description" : "Service unavailable.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "404" : { - "description" : "Not found the receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "404": { + "description": "Not found the receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "200" : { - "description" : "Obtained the PDF receipt.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "200": { + "description": "Obtained the PDF receipt.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/pdf" : { } + "content": { + "application/pdf": {} } }, - "429" : { - "description" : "Too many requests.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "429": { + "description": "Too many requests.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "401" : { - "description" : "Wrong or missing function key.", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Wrong or missing function key.", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] }, - "/info" : { - "get" : { - "tags" : [ "Home" ], - "summary" : "health check", - "description" : "Return OK if application is started", - "operationId" : "healthCheck", - "responses" : { - "429" : { - "description" : "Too many requests", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "/info": { + "get": { + "tags": [ + "Home" + ], + "summary": "health check", + "description": "Return OK if application is started", + "operationId": "healthCheck", + "responses": { + "429": { + "description": "Too many requests", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "401" : { - "description" : "Unauthorized", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "401": { + "description": "Unauthorized", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "400" : { - "description" : "Bad Request", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "400": { + "description": "Bad Request", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "500" : { - "description" : "Service unavailable", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "500": { + "description": "Service unavailable", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemJson" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemJson" } } } }, - "403" : { - "description" : "Forbidden", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "403": { + "description": "Forbidden", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } } }, - "200" : { - "description" : "OK", - "headers" : { - "X-Request-Id" : { - "description" : "This header identifies the call", - "schema" : { - "type" : "string" + "200": { + "description": "OK", + "headers": { + "X-Request-Id": { + "description": "This header identifies the call", + "schema": { + "type": "string" } } }, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/AppInfo" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppInfo" } } } } }, - "security" : [ { - "ApiKey" : [ ] - } ] + "security": [ + { + "ApiKey": [] + } + ] }, - "parameters" : [ { - "name" : "X-Request-Id", - "in" : "header", - "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", - "schema" : { - "type" : "string" + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "description": "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.", + "schema": { + "type": "string" + } } - } ] + ] } }, - "components" : { - "schemas" : { - "ProblemJson" : { - "type" : "object", - "properties" : { - "title" : { - "type" : "string", - "description" : "A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized); example: Service Unavailable" - }, - "status" : { - "maximum" : 600, - "minimum" : 100, - "type" : "integer", - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.", - "format" : "int32", - "example" : 200 - }, - "detail" : { - "type" : "string", - "description" : "A human readable explanation specific to this occurrence of the problem.", - "example" : "There was an error processing the request" + "components": { + "schemas": { + "ProblemJson": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized); example: Service Unavailable" + }, + "status": { + "maximum": 600, + "minimum": 100, + "type": "integer", + "description": "The HTTP status code generated by the origin server for this occurrence of the problem.", + "format": "int32", + "example": 200 + }, + "detail": { + "type": "string", + "description": "A human readable explanation specific to this occurrence of the problem.", + "example": "There was an error processing the request" } } }, - "TransactionListItem" : { - "type" : "object", - "properties" : { - "transactionId" : { - "type" : "string" + "TransactionListItem": { + "type": "object", + "properties": { + "transactionId": { + "type": "string" }, - "payeeName" : { - "type" : "string" + "payeeName": { + "type": "string" }, - "payeeTaxCode" : { - "type" : "string" + "payeeTaxCode": { + "type": "string" }, - "amount" : { - "type" : "string" + "amount": { + "type": "string" }, - "transactionDate" : { - "type" : "string" + "transactionDate": { + "type": "string" }, - "isCart" : { - "type" : "boolean" + "isCart": { + "type": "boolean" }, - "isPayer" : { - "type" : "boolean" + "isPayer": { + "type": "boolean" }, - "isDebtor" : { - "type" : "boolean" + "isDebtor": { + "type": "boolean" } } }, - "TransactionListWrapResponse" : { - "type" : "object", - "properties" : { - "transactions" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/TransactionListItem" + "TransactionListWrapResponse": { + "type": "object", + "properties": { + "transactions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransactionListItem" } } } }, - "CartItem" : { - "type" : "object", - "properties" : { - "subject" : { - "type" : "string" + "CartItem": { + "type": "object", + "properties": { + "subject": { + "type": "string" }, - "amount" : { - "type" : "string" + "amount": { + "type": "string" }, - "payee" : { - "$ref" : "#/components/schemas/UserDetail" + "payee": { + "$ref": "#/components/schemas/UserDetail" }, - "debtor" : { - "$ref" : "#/components/schemas/UserDetail" + "debtor": { + "$ref": "#/components/schemas/UserDetail" }, - "refNumberValue" : { - "type" : "string" + "refNumberValue": { + "type": "string" }, - "refNumberType" : { - "type" : "string" + "refNumberType": { + "type": "string" } } }, - "InfoTransactionView" : { - "type" : "object", - "properties" : { - "transactionId" : { - "type" : "string" - }, - "authCode" : { - "type" : "string" - }, - "rrn" : { - "type" : "string" - }, - "transactionDate" : { - "type" : "string" - }, - "pspName" : { - "type" : "string" - }, - "walletInfo" : { - "$ref" : "#/components/schemas/WalletInfo" - }, - "paymentMethod" : { - "type" : "string", - "enum" : [ "BBT", "BP", "AD", "CP", "PO", "OBEP", "JIF", "MYBK", "PPAL", "UNKNOWN" ] - }, - "payer" : { - "$ref" : "#/components/schemas/UserDetail" - }, - "amount" : { - "type" : "string" - }, - "fee" : { - "type" : "string" - }, - "origin" : { - "type" : "string", - "enum" : [ "INTERNAL", "PM", "NDP001PROD", "NDP002PROD", "NDP003PROD", "UNKNOWN" ] + "InfoTransactionView": { + "type": "object", + "properties": { + "transactionId": { + "type": "string" + }, + "authCode": { + "type": "string" + }, + "rrn": { + "type": "string" + }, + "transactionDate": { + "type": "string" + }, + "pspName": { + "type": "string" + }, + "walletInfo": { + "$ref": "#/components/schemas/WalletInfo" + }, + "paymentMethod": { + "type": "string", + "enum": [ + "BBT", + "BP", + "AD", + "CP", + "PO", + "OBEP", + "JIF", + "MYBK", + "PPAL", + "UNKNOWN" + ] + }, + "payer": { + "$ref": "#/components/schemas/UserDetail" + }, + "amount": { + "type": "string" + }, + "fee": { + "type": "string" + }, + "origin": { + "type": "string", + "enum": [ + "INTERNAL", + "PM", + "NDP001PROD", + "NDP002PROD", + "NDP003PROD", + "UNKNOWN" + ] } } }, - "TransactionDetailResponse" : { - "type" : "object", - "properties" : { - "infoTransaction" : { - "$ref" : "#/components/schemas/InfoTransactionView" - }, - "carts" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/CartItem" + "TransactionDetailResponse": { + "type": "object", + "properties": { + "infoTransaction": { + "$ref": "#/components/schemas/InfoTransactionView" + }, + "carts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartItem" } } } }, - "UserDetail" : { - "type" : "object", - "properties" : { - "name" : { - "type" : "string" - }, - "taxCode" : { - "type" : "string" + "UserDetail": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "taxCode": { + "type": "string" } } }, - "WalletInfo" : { - "type" : "object", - "properties" : { - "accountHolder" : { - "type" : "string" + "WalletInfo": { + "type": "object", + "properties": { + "accountHolder": { + "type": "string" }, - "brand" : { - "type" : "string" + "brand": { + "type": "string" }, - "blurredNumber" : { - "type" : "string" + "blurredNumber": { + "type": "string" }, - "maskedEmail" : { - "type" : "string" + "maskedEmail": { + "type": "string" } } }, - "AppInfo" : { - "type" : "object", - "properties" : { - "name" : { - "type" : "string" + "AppInfo": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "version" : { - "type" : "string" + "version": { + "type": "string" }, - "environment" : { - "type" : "string" + "environment": { + "type": "string" } } } }, - "securitySchemes" : { - "ApiKey" : { - "type" : "apiKey", - "description" : "The API key to access this function app.", - "name" : "Ocp-Apim-Subscription-Key", - "in" : "header" + "securitySchemes": { + "ApiKey": { + "type": "apiKey", + "description": "The API key to access this function app.", + "name": "Ocp-Apim-Subscription-Key", + "in": "header" } } } -} \ No newline at end of file +} diff --git a/pom.xml b/pom.xml index 68c24dec..89b3b004 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ it.gov.pagopa bizeventsservice - 0.1.27 + 0.1.28 Biz-Events Service Microservice for exposing REST APIs about payment receipts. diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptGeneratePDFClient.java b/src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptGeneratePDFClient.java new file mode 100644 index 00000000..85ce94dc --- /dev/null +++ b/src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptGeneratePDFClient.java @@ -0,0 +1,24 @@ +package it.gov.pagopa.bizeventsservice.client; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.retry.annotation.Backoff; +import org.springframework.retry.annotation.Retryable; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.http.MediaType; + +import feign.FeignException; +import it.gov.pagopa.bizeventsservice.config.feign.PDFGenerateReceiptFeignConfig; + +@FeignClient(value = "generateReceiptPDF", url = "${service.generate.pdf.receipt.host}", configuration = PDFGenerateReceiptFeignConfig.class) +public interface IReceiptGeneratePDFClient { + + @Retryable( + exclude = FeignException.FeignClientException.class, + maxAttemptsExpression = "${generate.pdf.retry.maxAttempts}", + backoff = @Backoff(delayExpression = "${generate.pdf.retry.maxDelay}")) + @PostMapping(value = "${service.generate.pdf.receipt.path}", consumes = MediaType.APPLICATION_JSON_VALUE) + String generateReceipt(@PathVariable("event-id") String eventId, @RequestParam("isCart") String isCart, @RequestBody String body); +} diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptPDFClient.java b/src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptGetPDFClient.java similarity index 67% rename from src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptPDFClient.java rename to src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptGetPDFClient.java index 8f4b3c81..8a98a1f2 100644 --- a/src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptPDFClient.java +++ b/src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptGetPDFClient.java @@ -8,23 +8,23 @@ import org.springframework.web.bind.annotation.RequestHeader; import feign.FeignException; -import it.gov.pagopa.bizeventsservice.config.feign.PDFReceiptFeignConfig; +import it.gov.pagopa.bizeventsservice.config.feign.PDFGetReceiptFeignConfig; import it.gov.pagopa.bizeventsservice.model.response.AttachmentsDetailsResponse; -@FeignClient(value = "receiptPDF", url = "${service.pdf.receipt.host}", configuration = PDFReceiptFeignConfig.class) -public interface IReceiptPDFClient { +@FeignClient(value = "getReceiptPDF", url = "${service.get.pdf.receipt.host}", configuration = PDFGetReceiptFeignConfig.class) +public interface IReceiptGetPDFClient { @Retryable( exclude = FeignException.FeignClientException.class, - maxAttemptsExpression = "${retry.maxAttempts}", - backoff = @Backoff(delayExpression = "${retry.maxDelay}")) + maxAttemptsExpression = "${get.pdf.retry.maxAttempts}", + backoff = @Backoff(delayExpression = "${get.pdf.retry.maxDelay}")) @GetMapping(value = "/messages/{id}") AttachmentsDetailsResponse getAttachments(@RequestHeader("fiscal_code") String fiscalCode, @PathVariable("id") String id); @Retryable( exclude = FeignException.FeignClientException.class, - maxAttemptsExpression = "${retry.maxAttempts}", - backoff = @Backoff(delayExpression = "${retry.maxDelay}")) + maxAttemptsExpression = "${get.pdf.retry.maxAttempts}", + backoff = @Backoff(delayExpression = "${get.pdf.retry.maxDelay}")) @GetMapping(value = "/messages/{id}/{attachment_url}") byte[] getReceipt(@RequestHeader("fiscal_code") String fiscalCode, @PathVariable("id") String id, @PathVariable("attachment_url") String attachmentUrl); } diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/config/feign/PDFGenerateReceiptFeignConfig.java b/src/main/java/it/gov/pagopa/bizeventsservice/config/feign/PDFGenerateReceiptFeignConfig.java new file mode 100644 index 00000000..fef3b5bb --- /dev/null +++ b/src/main/java/it/gov/pagopa/bizeventsservice/config/feign/PDFGenerateReceiptFeignConfig.java @@ -0,0 +1,16 @@ +package it.gov.pagopa.bizeventsservice.config.feign; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +@Component +public class PDFGenerateReceiptFeignConfig extends AuthFeignConfig { + + private static final String RECEIPT_SUBKEY_PLACEHOLDER = "${pdf.generate.receipt.subscription-key}"; + + @Autowired + public PDFGenerateReceiptFeignConfig(@Value(RECEIPT_SUBKEY_PLACEHOLDER) String subscriptionKey) { + this.subscriptionKey = subscriptionKey; + } +} diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/config/feign/PDFReceiptFeignConfig.java b/src/main/java/it/gov/pagopa/bizeventsservice/config/feign/PDFGetReceiptFeignConfig.java similarity index 65% rename from src/main/java/it/gov/pagopa/bizeventsservice/config/feign/PDFReceiptFeignConfig.java rename to src/main/java/it/gov/pagopa/bizeventsservice/config/feign/PDFGetReceiptFeignConfig.java index 316faaca..48d24e37 100644 --- a/src/main/java/it/gov/pagopa/bizeventsservice/config/feign/PDFReceiptFeignConfig.java +++ b/src/main/java/it/gov/pagopa/bizeventsservice/config/feign/PDFGetReceiptFeignConfig.java @@ -5,12 +5,12 @@ import org.springframework.stereotype.Component; @Component -public class PDFReceiptFeignConfig extends AuthFeignConfig { +public class PDFGetReceiptFeignConfig extends AuthFeignConfig { - private static final String RECEIPT_SUBKEY_PLACEHOLDER = "${pdf.receipt.subscription-key}"; + private static final String RECEIPT_SUBKEY_PLACEHOLDER = "${pdf.get.receipt.subscription-key}"; @Autowired - public PDFReceiptFeignConfig(@Value(RECEIPT_SUBKEY_PLACEHOLDER) String subscriptionKey) { + public PDFGetReceiptFeignConfig(@Value(RECEIPT_SUBKEY_PLACEHOLDER) String subscriptionKey) { this.subscriptionKey = subscriptionKey; } } diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/controller/impl/TransactionController.java b/src/main/java/it/gov/pagopa/bizeventsservice/controller/impl/TransactionController.java index e8c41820..cfee0cda 100644 --- a/src/main/java/it/gov/pagopa/bizeventsservice/controller/impl/TransactionController.java +++ b/src/main/java/it/gov/pagopa/bizeventsservice/controller/impl/TransactionController.java @@ -1,6 +1,7 @@ package it.gov.pagopa.bizeventsservice.controller.impl; -import it.gov.pagopa.bizeventsservice.client.IReceiptPDFClient; +import it.gov.pagopa.bizeventsservice.client.IReceiptGeneratePDFClient; +import it.gov.pagopa.bizeventsservice.client.IReceiptGetPDFClient; import it.gov.pagopa.bizeventsservice.controller.ITransactionController; import it.gov.pagopa.bizeventsservice.exception.AppException; import it.gov.pagopa.bizeventsservice.model.response.AttachmentsDetailsResponse; @@ -28,13 +29,16 @@ public class TransactionController implements ITransactionController { private final ITransactionService transactionService; private final IBizEventsService bizEventsService; - private final IReceiptPDFClient receiptClient; + private final IReceiptGetPDFClient receiptClient; + private final IReceiptGeneratePDFClient generateReceiptClient; @Autowired - public TransactionController(ITransactionService transactionService, IBizEventsService bizEventsService, IReceiptPDFClient receiptClient) { + public TransactionController(ITransactionService transactionService, IBizEventsService bizEventsService, + IReceiptGetPDFClient receiptClient, IReceiptGeneratePDFClient generateReceiptClient) { this.transactionService = transactionService; this.bizEventsService = bizEventsService; this.receiptClient = receiptClient; + this.generateReceiptClient = generateReceiptClient; } @Override @@ -66,26 +70,40 @@ public ResponseEntity getPDFReceipt(@NotBlank String fiscalCode, @NotBla } private ResponseEntity acquirePDFReceipt(String fiscalCode, String eventId) { + // to check if is an OLD event present only on the PM --> the receipt is not available for events present exclusively on the PM + bizEventsService.getBizEvent(eventId); + String url; try { - // to check if is an OLD event present only on the PM --> the receipt is not available for events present exclusively on the PM - bizEventsService.getBizEvent(eventId); - - // call the receipt-pdf-service to retrieve the PDF receipt + // call the receipt-pdf-service to retrieve the PDF receipt details AttachmentsDetailsResponse response = receiptClient.getAttachments(fiscalCode, eventId); - String url = response.getAttachments().get(0).getUrl(); - - byte[] receiptFile = receiptClient.getReceipt(fiscalCode, eventId, url); + url = response.getAttachments().get(0).getUrl(); + } catch (FeignException.NotFound e) { + throw new AppException(HttpStatus.NOT_FOUND, "Receipt Not Found", e.getMessage()); + } + return this.getAttachment(fiscalCode, eventId, url); + } + private ResponseEntity getAttachment(String fiscalCode, String eventId, String url) { + byte[] receiptFile = {}; + try { + // call the receipt-pdf-service to retrieve the PDF receipt attachment + receiptFile = receiptClient.getReceipt(fiscalCode, eventId, url); return ResponseEntity .ok() .contentLength(receiptFile.length) .contentType(MediaType.APPLICATION_PDF) .header("content-disposition", "filename=receipt") .body(receiptFile); - } catch (FeignException.NotFound e) { - // TODO receipt generation - throw new AppException(HttpStatus.NOT_FOUND, "Receipt Not Found", "Something was wrong - " + e.getMessage()); + // re-generate the PDF receipt and return the generated file by getReceipt call + generateReceiptClient.generateReceipt(eventId, "false", "{}"); + receiptFile = receiptClient.getReceipt(fiscalCode, eventId, url); + return ResponseEntity + .ok() + .contentLength(receiptFile.length) + .contentType(MediaType.APPLICATION_PDF) + .header("content-disposition", "filename=receipt") + .body(receiptFile); } } } diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/mapper/ConvertViewsToTransactionDetailResponse.java b/src/main/java/it/gov/pagopa/bizeventsservice/mapper/ConvertViewsToTransactionDetailResponse.java index c87b8d40..5807fdec 100644 --- a/src/main/java/it/gov/pagopa/bizeventsservice/mapper/ConvertViewsToTransactionDetailResponse.java +++ b/src/main/java/it/gov/pagopa/bizeventsservice/mapper/ConvertViewsToTransactionDetailResponse.java @@ -58,7 +58,7 @@ public static TransactionDetailResponse convertTransactionDetails(String taxCode } // PAGOPA-1763: if the tax code refers to a debtor, do not show the sections relating to the payer - boolean isDebtor = !bizEventsViewGeneral.getPayer().getTaxCode().equals(taxCode); + boolean isDebtor = bizEventsViewGeneral.getPayer() == null || !bizEventsViewGeneral.getPayer().getTaxCode().equals(taxCode); return TransactionDetailResponse.builder() .infoTransaction( InfoTransactionView.builder() @@ -91,7 +91,7 @@ public static TransactionListItem convertTransactionListItem(BizEventsViewUser v .payeeName(listOfCartViews.size() > 1 ? payeeCartName : listOfCartViews.get(0).getPayee().getName()) .payeeTaxCode(listOfCartViews.size() > 1 ? "" : listOfCartViews.get(0).getPayee().getTaxCode()) // PAGOPA-1763: the amount value must be returned only if it is not a cart type transaction - .amount(listOfCartViews.size() > 1 ? null : currencyFormat(totalAmount.get().toString())) + .amount(listOfCartViews.size() > 1 && BooleanUtils.isTrue(viewUser.getIsDebtor()) ? null : currencyFormat(totalAmount.get().toString())) .transactionDate(dateFormatZoned(viewUser.getTransactionDate())) .isCart(listOfCartViews.size() > 1) .isPayer(BooleanUtils.isTrue(viewUser.getIsPayer())) diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index 570d0b1b..69cb62c9 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -12,13 +12,17 @@ azure.cosmos.biz-events-view-user-container-name=biz-events-view-user azure.cosmos.biz-events-view-general-container-name=biz-events-view-general azure.cosmos.biz-events-view-cart-container-name=biz-events-view-cart + # Logging logging.level.root=INFO logging.level.it.gov.pagopa=INFO # PDF Receipt Service -pdf.receipt.subscription-key=${SUBSCRIPTION_KEY} -service.pdf.receipt.host=https://api.dev.platform.pagopa.it/receipts/service/v1 +pdf.get.receipt.subscription-key=${SUBSCRIPTION_KEY} +pdf.generate.receipt.subscription-key=${SUBSCRIPTION_KEY} +service.get.pdf.receipt.host=https://api.dev.platform.pagopa.it/receipts/service/v1 +service.generate.pdf.receipt.host=https://api.dev.platform.pagopa.it/receipts/helpdesk/v1 +service.generate.pdf.receipt.path=/receipts/{event-id}/regenerate-receipt-pdf springdoc.group-configs[0].group=all springdoc.group-configs[0].displayName=Biz-Events All diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a045fe19..edcc11b0 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -39,16 +39,21 @@ transaction.payee.cartName=${PAYEE_CART_NAME:Pagamento Multiplo} # PDF Receipt Service -pdf.receipt.subscription-key=${PDF_RECEIPT_SUBSCRIPTION_KEY} -service.pdf.receipt.host=${PDF_RECEIPT_HOST} +pdf.get.receipt.subscription-key=${PDF_RECEIPT_SUBSCRIPTION_KEY} +pdf.generate.receipt.subscription-key=${PDF_GENERATE_RECEIPT_SUBSCRIPTION_KEY} +service.get.pdf.receipt.host=${PDF_RECEIPT_HOST} +service.generate.pdf.receipt.host=${PDF_GENERATE_RECEIPT_HOST} +service.generate.pdf.receipt.path=${PDF_GENERATE_RECEIPT_PATH:/receipts/{event-id}/regenerate-receipt-pdf} # timeout feign.client.config.default.connect-timeout=${CONNECTION_TIMEOUT:10000} feign.client.config.default.read-timeout=${CONNECTION_TIMEOUT:10000} # retry configuration -retry.maxAttempts=${RETRY_MAX_ATTEMPTS:3} -retry.maxDelay=${RETRY_MAX_DELAY:10000} +get.pdf.retry.maxAttempts=${GET_PDF_RETRY_MAX_ATTEMPTS:3} +get.pdf.retry.maxDelay=${GET_PDF_RETRY_MAX_DELAY:10000} +generate.pdf.retry.maxAttempts=${GENERATE_PDF_RETRY_MAX_ATTEMPTS:3} +generate.pdf.retry.maxDelay=${GENERATE_PDF_RETRY_MAX_DELAY:10000} # Openapi diff --git a/src/test/java/it/gov/pagopa/bizeventsservice/controller/TransactionControllerTest.java b/src/test/java/it/gov/pagopa/bizeventsservice/controller/TransactionControllerTest.java index 6704f266..542798f6 100644 --- a/src/test/java/it/gov/pagopa/bizeventsservice/controller/TransactionControllerTest.java +++ b/src/test/java/it/gov/pagopa/bizeventsservice/controller/TransactionControllerTest.java @@ -1,7 +1,8 @@ package it.gov.pagopa.bizeventsservice.controller; -import it.gov.pagopa.bizeventsservice.client.IReceiptPDFClient; +import it.gov.pagopa.bizeventsservice.client.IReceiptGeneratePDFClient; +import it.gov.pagopa.bizeventsservice.client.IReceiptGetPDFClient; import it.gov.pagopa.bizeventsservice.entity.BizEvent; import it.gov.pagopa.bizeventsservice.exception.AppError; import it.gov.pagopa.bizeventsservice.exception.AppException; @@ -66,7 +67,10 @@ public class TransactionControllerTest { private IBizEventsService bizEventsService; @MockBean - private IReceiptPDFClient receiptClient; + private IReceiptGetPDFClient receiptClient; + + @MockBean + private IReceiptGeneratePDFClient generateReceiptClient; private byte[] receipt = {69, 121, 101, 45, 62, 118, 101, 114, (byte) 196, (byte) 195, 61, 101, 98}; @@ -82,6 +86,7 @@ void setUp() throws IOException { AttachmentsDetailsResponse attachments = AttachmentsDetailsResponse.builder().attachments(Arrays.asList(attachmentDetail)).build(); when(receiptClient.getAttachments(anyString(), anyString())).thenReturn(attachments); when(receiptClient.getReceipt(anyString(), anyString(), any())).thenReturn(receipt); + when(generateReceiptClient.generateReceipt(anyString(), anyString(), any())).thenReturn("OK"); } @Test @@ -210,7 +215,7 @@ void getPDFReceiptForOldPMEvent_ShouldReturnNOTFOUND() throws Exception { .andReturn(); } - @Test // TODO This test will need to be modified when the receipt generation is introduced + @Test void getPDFReceiptForMissingEventId_ShouldReturnNOTFOUND() throws Exception { BizEvent bizEvent = mock (BizEvent.class); @@ -240,5 +245,22 @@ void getPDFReceiptForUnhandledException_ShouldReturnKO() throws Exception { .andExpect(content().contentType(MediaType.APPLICATION_JSON)) .andReturn(); } + + @Test + void getPDFReceiptForMissingPDFFile_ShouldReturnOK() throws Exception { + + BizEvent bizEvent = mock (BizEvent.class); + when (bizEventsService.getBizEvent(anyString())).thenReturn(bizEvent); + when(receiptClient.getReceipt(anyString(), eq("missing-pdf-file"), any())).thenThrow(FeignException.NotFound.class).thenReturn(receipt); + + MvcResult result = mvc.perform(get("/transactions/missing-pdf-file/pdf") + .header(FISCAL_CODE_HEADER_KEY, VALID_FISCAL_CODE) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andExpect(content().contentType(MediaType.APPLICATION_PDF)) + .andReturn(); + + assertEquals(receipt.length, result.getResponse().getContentAsByteArray().length); + } } diff --git a/src/test/java/it/gov/pagopa/bizeventsservice/service/TransactionServiceTest.java b/src/test/java/it/gov/pagopa/bizeventsservice/service/TransactionServiceTest.java index aa3c5cb5..455e4960 100644 --- a/src/test/java/it/gov/pagopa/bizeventsservice/service/TransactionServiceTest.java +++ b/src/test/java/it/gov/pagopa/bizeventsservice/service/TransactionServiceTest.java @@ -112,7 +112,8 @@ void taxCodeWithEventsAndMultipleCartItemsShouldReturnTransactionList() { for(TransactionListItem listItem : transactionListItems){ // PAGOPA-1763: the amount value must be returned only if it is not a cart type transaction - Assertions.assertTrue(listItem.getIsCart() ? listItem.getAmount()==null:listItem.getAmount().equals(ViewGenerator.FORMATTED_GRAND_TOTAL)); + Assertions.assertTrue(listItem.getIsCart() && Boolean.TRUE.equals(listItem.getIsDebtor()) ? + listItem.getAmount()==null:listItem.getAmount().equals(ViewGenerator.FORMATTED_GRAND_TOTAL)); Assertions.assertEquals(payeeCartName, listItem.getPayeeName()); Assertions.assertEquals("", listItem.getPayeeTaxCode()); } diff --git a/src/test/java/it/gov/pagopa/bizeventsservice/util/ViewGenerator.java b/src/test/java/it/gov/pagopa/bizeventsservice/util/ViewGenerator.java index e2de37c5..d93bfc7b 100644 --- a/src/test/java/it/gov/pagopa/bizeventsservice/util/ViewGenerator.java +++ b/src/test/java/it/gov/pagopa/bizeventsservice/util/ViewGenerator.java @@ -38,6 +38,7 @@ public static BizEventsViewUser generateBizEventsViewUser(){ .transactionDate(TRANSACTION_DATE) .hidden(false) .isPayer(Boolean.FALSE) + .isDebtor(Boolean.TRUE) .build(); } diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index 8b8b07d4..68061748 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -38,8 +38,11 @@ logging.level.it.gov.pagopa=${APP_LOGGING_LEVEL:INFO} transaction.payee.cartName=${PAYEE_CART_NAME:Pagamento Multiplo} # PDF Receipt Service -pdf.receipt.subscription-key=subkey -service.pdf.receipt.host=http://localhost:8080 +pdf.get.receipt.subscription-key=subkey +pdf.generate.receipt.subscription-key=subkey +service.get.pdf.receipt.host=http://localhost:8080/receipts/service/v1 +service.generate.pdf.receipt.host=http://localhost:8080/receipts/helpdesk/v1 +service.generate.pdf.receipt.path=/receipts/{event-id}/regenerate-receipt-pdf # Openapi springdoc.use-fqn=false