diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 5041cb0c..1e0bb599 100644 --- a/helm/values-dev.yaml +++ b/helm/values-dev.yaml @@ -78,6 +78,10 @@ microservice-chart: COSMOS_DB_VIEW_GENERAL_CONTAINER_NAME: 'biz-events-view-general' 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" + CONNECTION_TIMEOUT: "10000" OTEL_SERVICE_NAME: "pagopabizeventsservice" OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopareceiptspdfserviceotl,deployment.environment=dev" OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-collector.elastic-system.svc:4317" @@ -89,6 +93,7 @@ microservice-chart: envSecret: APPLICATIONINSIGHTS_CONNECTION_STRING: 'ai-d-connection-string' COSMOS_DB_PRIMARY_KEY: 'cosmos-d-biz-key' + PDF_RECEIPT_SUBSCRIPTION_KEY: "bizevent-d-receiptpdfservice-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 a0c311ae..483679ae 100644 --- a/helm/values-prod.yaml +++ b/helm/values-prod.yaml @@ -78,6 +78,10 @@ microservice-chart: COSMOS_DB_VIEW_GENERAL_CONTAINER_NAME: 'biz-events-view-general' 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" + CONNECTION_TIMEOUT: "10000" OTEL_SERVICE_NAME: "pagopabizeventsservice" OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopareceiptspdfserviceotl,deployment.environment=prod" OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-collector.elastic-system.svc:4317" @@ -89,6 +93,7 @@ microservice-chart: envSecret: APPLICATIONINSIGHTS_CONNECTION_STRING: 'ai-p-connection-string' COSMOS_DB_PRIMARY_KEY: 'cosmos-p-biz-key' + PDF_RECEIPT_SUBSCRIPTION_KEY: "bizevent-p-receiptpdfservice-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 f1b93312..f02574fb 100644 --- a/helm/values-uat.yaml +++ b/helm/values-uat.yaml @@ -78,6 +78,10 @@ microservice-chart: COSMOS_DB_VIEW_GENERAL_CONTAINER_NAME: 'biz-events-view-general' 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" + CONNECTION_TIMEOUT: "10000" OTEL_SERVICE_NAME: "pagopabizeventsservice" OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopareceiptspdfserviceotl,deployment.environment=uat" OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-collector.elastic-system.svc:4317" @@ -89,6 +93,7 @@ microservice-chart: envSecret: APPLICATIONINSIGHTS_CONNECTION_STRING: 'ai-u-connection-string' COSMOS_DB_PRIMARY_KEY: 'cosmos-u-biz-key' + PDF_RECEIPT_SUBSCRIPTION_KEY: "bizevent-u-receiptpdfservice-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 061213ad..456c89ee 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -1,1929 +1,1959 @@ { - "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.26" + "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.26" }, - "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" - } + "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" } - ], - "responses": { - "200": { - "description": "Obtained biz-event.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "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" - } + "/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" + } ], + "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" - } + "/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" + } ], + "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" - } + "/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" } - ], - "responses": { - "200": { - "description": "Obtained receipt.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "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 - } + "/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": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TransactionListItem" + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TransactionListItem" } } } } }, - "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/{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/{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 transaction details.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "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/json": { - "schema": { - "$ref": "#/components/schemas/TransactionDetailResponse" + "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" + } + } + }, + "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" + "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}/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" + "/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" + } + } } }, - { - "name": "transaction-id", - "in": "path", - "description": "The id of the transaction.", - "required": true, - "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" + } + } + }, + "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" + } + } + } + }, + "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" + } + } } } - ], - "responses": { - "200": { - "description": "Disabled Transactions.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + }, + "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" + } + } ] + }, + "/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" } } }, - "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" } } }, - "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" } } }, - "TransactionDetailResponse": { - "type": "object", - "properties": { - "infoTransaction": { - "$ref": "#/components/schemas/InfoTransaction" - }, - "carts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartItem" + "TransactionDetailResponse" : { + "type" : "object", + "properties" : { + "infoTransaction" : { + "$ref" : "#/components/schemas/InfoTransaction" + }, + "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" } } }, - "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" + }, + "timestamp" : { + "type" : "integer", + "format" : "int64" + }, + "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" } } }, - "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" } } }, - "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" + "User" : { + "type" : "object", + "properties" : { + "fullName" : { + "type" : "string" }, - "type": { - "type": "string", - "enum": [ - "F", - "G" - ] + "type" : { + "type" : "string", + "enum" : [ "F", "G", "GUEST" ] }, - "fiscalCode": { - "type": "string" + "fiscalCode" : { + "type" : "string" }, - "notificationEmail": { - "type": "string" + "notificationEmail" : { + "type" : "string" }, - "userId": { - "type": "string" + "userId" : { + "type" : "string" }, - "userStatus": { - "type": "string" + "userStatus" : { + "type" : "string" }, - "userStatusDescription": { - "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 f33a6783..eb4a6fe7 100644 --- a/openapi/openapi_ec.json +++ b/openapi/openapi_ec.json @@ -1,721 +1,658 @@ { - "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.26" + "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.26" }, - "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" } - ], - "responses": { - "200": { - "description": "Obtained receipt.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "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" : { + "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/CtReceiptModelResponse" + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemJson" } } } }, - "401": { - "description": "Wrong or missing function key.", - "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" } } } }, - "404": { - "description": "Not found the receipt.", - "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" } } } }, - "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" } } } }, - "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" + "401" : { + "description" : "Wrong or missing function key.", + "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" + "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" } } } } }, - "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": { - "200": { - "description": "Obtained receipt.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + } ], + "responses" : { + "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/CtReceiptModelResponse" + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemJson" } } } }, - "401": { - "description": "Wrong or missing function key.", - "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" } } } }, - "404": { - "description": "Not found the receipt.", - "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" } } } }, - "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" } } } }, - "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" + "401" : { + "description" : "Wrong or missing function key.", + "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" + "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" } } } } }, - "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" : { + "400" : { + "description" : "Bad Request", + "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/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" } } } }, - "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" } } } }, - "400": { - "description": "Bad Request", - "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/ProblemJson" + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppInfo" } } } }, - "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" } } } } }, - "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": { - "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" + "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" } }, - "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" } } } }, - "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" } } } }, - "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 55025e8d..53f75b43 100644 --- a/openapi/openapi_helpdesk.json +++ b/openapi/openapi_helpdesk.json @@ -1,1037 +1,1007 @@ { - "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.26" + "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.26" }, - "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": { - "200": { - "description": "OK", - "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" : { + "400" : { + "description" : "Bad Request", + "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/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" } } } }, - "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" } } } }, - "400": { - "description": "Bad Request", - "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/ProblemJson" + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppInfo" } } } }, - "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" } } } } }, - "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" + "429" : { + "description" : "Too many requests.", + "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" + "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" } } } }, - "500": { - "description": "Service unavailable.", - "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" } } } }, - "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" + "401" : { + "description" : "Wrong or missing function key.", + "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" + "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" } } } } }, - "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": { - "200": { - "description": "Obtained biz-event.", - "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" : { + "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" + "429" : { + "description" : "Too many requests.", + "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" + "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" } } } }, - "500": { - "description": "Service unavailable.", - "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" } } } }, - "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" + "401" : { + "description" : "Wrong or missing function key.", + "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" + "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" } } } } }, - "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": { - "AppInfo": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - }, - "environment": { - "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" } } }, - "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" + }, + "version" : { + "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" + }, + "timestamp" : { + "type" : "integer", + "format" : "int64" + }, + "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" } } }, - "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" + "User" : { + "type" : "object", + "properties" : { + "fullName" : { + "type" : "string" }, - "type": { - "type": "string", - "enum": [ - "F", - "G" - ] + "type" : { + "type" : "string", + "enum" : [ "F", "G", "GUEST" ] }, - "fiscalCode": { - "type": "string" + "fiscalCode" : { + "type" : "string" }, - "notificationEmail": { - "type": "string" + "notificationEmail" : { + "type" : "string" }, - "userId": { - "type": "string" + "userId" : { + "type" : "string" }, - "userStatus": { - "type": "string" + "userStatus" : { + "type" : "string" }, - "userStatusDescription": { - "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 2b9d6cd3..369dced0 100644 --- a/openapi/openapi_io.json +++ b/openapi/openapi_io.json @@ -1,700 +1,775 @@ { - "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.26" + "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.26" }, - "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": { - "401": { - "description": "Wrong or missing function key.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + } ], + "responses" : { + "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" } } } }, - "200": { - "description": "Disabled Transactions.", - "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" } } - }, - "content": { - "application/json": {} } }, - "404": { - "description": "Not found the transaction.", - "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" } } } }, - "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" + "401" : { + "description" : "Wrong or missing function key.", + "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" + "200" : { + "description" : "Disabled Transactions.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } + }, + "content" : { + "application/json" : { } } } }, - "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" + "/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" : { + "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" + } + } } }, - { - "name": "x-continuation-token", - "in": "header", - "required": false, - "schema": { - "type": "string" + "429" : { + "description" : "Too many requests.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" + } + } } }, - { - "name": "size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 10 + "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" + } + } } - } - ], - "responses": { - "401": { - "description": "Wrong or missing function key.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + }, + "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" + } + } + }, + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TransactionListItem" + } } } } }, - "404": { - "description": "Not found the transaction.", - "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" : [ ] + } ] + }, + "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" : { + "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" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemJson" } } } }, - "500": { - "description": "Service unavailable.", - "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/ProblemJson" + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TransactionDetailResponse" } } } }, - "200": { - "description": "Obtained transaction list.", - "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" } - }, - "x-continuation-token": { - "description": "continuation token for paginated query", - "style": "simple", - "schema": { - "type": "string" + } + } + }, + "500" : { + "description" : "Service unavailable.", + "headers" : { + "X-Request-Id" : { + "description" : "This header identifies the call", + "schema" : { + "type" : "string" } } }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TransactionListItem" - } + "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" + "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/{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": { - "401": { - "description": "Wrong or missing function key.", - "headers": { - "X-Request-Id": { - "description": "This header identifies the call", - "schema": { - "type": "string" + } ], + "responses" : { + "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" } } } }, - "404": { - "description": "Not found the transaction.", - "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" } } - }, - "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" } } + }, + "content" : { + "application/pdf" : { } } }, - "500": { - "description": "Service unavailable.", - "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" } } } }, - "200": { - "description": "Obtained transaction details.", - "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/TransactionDetailResponse" + "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" + "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": { - "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" : { + "400" : { + "description" : "Bad Request", + "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/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" } } } }, - "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" } } } }, - "400": { - "description": "Bad Request", - "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/ProblemJson" + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppInfo" } } } }, - "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" } } } } }, - "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" } } }, - "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" } } }, - "InfoTransaction": { - "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" - ] + "InfoTransaction" : { + "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/InfoTransaction" - }, - "carts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartItem" + "TransactionDetailResponse" : { + "type" : "object", + "properties" : { + "infoTransaction" : { + "$ref" : "#/components/schemas/InfoTransaction" + }, + "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" } } }, - "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 20bcefee..b96ee2eb 100644 --- a/pom.xml +++ b/pom.xml @@ -21,6 +21,7 @@ 3.1.0 3.29.1 1.5.0 + 2021.0.9 @@ -39,6 +40,16 @@ azure-spring-data-cosmos ${cosmos-data-version} + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + org.springframework.retry + spring-retry + @@ -99,6 +110,18 @@ test + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/Application.java b/src/main/java/it/gov/pagopa/bizeventsservice/Application.java index 42c9cf77..baa09e38 100644 --- a/src/main/java/it/gov/pagopa/bizeventsservice/Application.java +++ b/src/main/java/it/gov/pagopa/bizeventsservice/Application.java @@ -2,10 +2,14 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.DependsOn; +import org.springframework.retry.annotation.EnableRetry; @SpringBootApplication @DependsOn("expressionResolver") +@EnableFeignClients +@EnableRetry public class Application { public static void main(String[] args) { diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptPDFClient.java b/src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptPDFClient.java new file mode 100644 index 00000000..8f4b3c81 --- /dev/null +++ b/src/main/java/it/gov/pagopa/bizeventsservice/client/IReceiptPDFClient.java @@ -0,0 +1,30 @@ +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.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestHeader; + +import feign.FeignException; +import it.gov.pagopa.bizeventsservice.config.feign.PDFReceiptFeignConfig; +import it.gov.pagopa.bizeventsservice.model.response.AttachmentsDetailsResponse; + +@FeignClient(value = "receiptPDF", url = "${service.pdf.receipt.host}", configuration = PDFReceiptFeignConfig.class) +public interface IReceiptPDFClient { + + @Retryable( + exclude = FeignException.FeignClientException.class, + maxAttemptsExpression = "${retry.maxAttempts}", + backoff = @Backoff(delayExpression = "${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}")) + @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/AuthFeignConfig.java b/src/main/java/it/gov/pagopa/bizeventsservice/config/feign/AuthFeignConfig.java new file mode 100644 index 00000000..db524869 --- /dev/null +++ b/src/main/java/it/gov/pagopa/bizeventsservice/config/feign/AuthFeignConfig.java @@ -0,0 +1,22 @@ +package it.gov.pagopa.bizeventsservice.config.feign; + +import feign.RequestInterceptor; +import org.slf4j.MDC; +import org.springframework.context.annotation.Bean; + +public abstract class AuthFeignConfig { + + protected String subscriptionKey; + + static final String HEADER_REQUEST_ID = "X-Request-Id"; + + static final String HEADER_SUBSCRIBTION_KEY = "Ocp-Apim-Subscription-Key"; + + @Bean + public RequestInterceptor requestIdInterceptor() { + return requestTemplate -> + requestTemplate + .header(HEADER_REQUEST_ID, MDC.get("requestId")) + .header(HEADER_SUBSCRIBTION_KEY, 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/PDFReceiptFeignConfig.java new file mode 100644 index 00000000..316faaca --- /dev/null +++ b/src/main/java/it/gov/pagopa/bizeventsservice/config/feign/PDFReceiptFeignConfig.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 PDFReceiptFeignConfig extends AuthFeignConfig { + + private static final String RECEIPT_SUBKEY_PLACEHOLDER = "${pdf.receipt.subscription-key}"; + + @Autowired + public PDFReceiptFeignConfig(@Value(RECEIPT_SUBKEY_PLACEHOLDER) String subscriptionKey) { + this.subscriptionKey = subscriptionKey; + } +} diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/controller/ITransactionController.java b/src/main/java/it/gov/pagopa/bizeventsservice/controller/ITransactionController.java index afee04c7..eab328b0 100644 --- a/src/main/java/it/gov/pagopa/bizeventsservice/controller/ITransactionController.java +++ b/src/main/java/it/gov/pagopa/bizeventsservice/controller/ITransactionController.java @@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.RequestParam; import javax.validation.constraints.NotBlank; + import java.util.List; @Tag(name = "IO Transactions REST APIs") @@ -88,5 +89,19 @@ ResponseEntity getTransactionDetails( ResponseEntity disableTransaction( @RequestHeader("x-fiscal-code") @NotBlank String fiscalCode, @Parameter(description = "The id of the transaction.", required = true) @NotBlank @PathVariable("transaction-id") String transactionId); + + @Operation(summary = "Retrieve the PDF receipt given event id.", security = { + @SecurityRequirement(name = "ApiKey")}, operationId = "getPDFReceipt") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Obtained the PDF receipt.", content = @Content(mediaType = MediaType.APPLICATION_PDF_VALUE)), + @ApiResponse(responseCode = "401", description = "Wrong or missing function key.", content = @Content(schema = @Schema())), + @ApiResponse(responseCode = "404", description = "Not found the receipt.", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = ProblemJson.class))), + @ApiResponse(responseCode = "422", description = "Unprocessable receipt.", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = ProblemJson.class))), + @ApiResponse(responseCode = "429", description = "Too many requests.", content = @Content(schema = @Schema())), + @ApiResponse(responseCode = "500", description = "Service unavailable.", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = ProblemJson.class)))}) + @GetMapping(value = "/{event-id}/pdf") + ResponseEntity getPDFReceipt( + @RequestHeader("x-fiscal-code") @NotBlank String fiscalCode, + @Parameter(description = "The id of the event.", required = true) @NotBlank @PathVariable("event-id") String eventId); } 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 32c98b06..2de3a2b8 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,17 +1,26 @@ package it.gov.pagopa.bizeventsservice.controller.impl; +import it.gov.pagopa.bizeventsservice.client.IReceiptPDFClient; import it.gov.pagopa.bizeventsservice.controller.ITransactionController; +import it.gov.pagopa.bizeventsservice.exception.AppException; import it.gov.pagopa.bizeventsservice.model.response.transaction.TransactionListItem; +import it.gov.pagopa.bizeventsservice.model.response.AttachmentsDetailsResponse; import it.gov.pagopa.bizeventsservice.model.response.transaction.TransactionDetailResponse; import it.gov.pagopa.bizeventsservice.model.response.transaction.TransactionListResponse; +import it.gov.pagopa.bizeventsservice.service.IBizEventsService; import it.gov.pagopa.bizeventsservice.service.ITransactionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; +import feign.FeignException; + import java.util.List; +import javax.validation.constraints.NotBlank; + /** * Implementation of {@link ITransactionController} that contains the Rest Controller * for transaction services @@ -20,10 +29,14 @@ public class TransactionController implements ITransactionController { private final ITransactionService transactionService; + private final IBizEventsService bizEventsService; + private final IReceiptPDFClient receiptClient; @Autowired - public TransactionController(ITransactionService transactionService) { + public TransactionController(ITransactionService transactionService, IBizEventsService bizEventsService, IReceiptPDFClient receiptClient) { this.transactionService = transactionService; + this.bizEventsService = bizEventsService; + this.receiptClient = receiptClient; } @Override @@ -48,4 +61,33 @@ public ResponseEntity disableTransaction(String fiscalCode, String transac transactionService.disableTransaction(fiscalCode, transactionId); return new ResponseEntity<>(HttpStatus.OK); } + + @Override + public ResponseEntity getPDFReceipt(@NotBlank String fiscalCode, @NotBlank String eventId) { + return acquirePDFReceipt(fiscalCode, eventId); + } + + private ResponseEntity acquirePDFReceipt(String fiscalCode, String eventId) { + 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 + AttachmentsDetailsResponse response = receiptClient.getAttachments(fiscalCode, eventId); + String url = response.getAttachments().get(0).getUrl(); + + byte[] 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()); + } + } } 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 08f86707..31b88171 100644 --- a/src/main/java/it/gov/pagopa/bizeventsservice/mapper/ConvertViewsToTransactionDetailResponse.java +++ b/src/main/java/it/gov/pagopa/bizeventsservice/mapper/ConvertViewsToTransactionDetailResponse.java @@ -89,6 +89,7 @@ public static TransactionListItem convertTransactionListItem(BizEventsViewUser v .amount(currencyFormat(totalAmount.get().toString())) .transactionDate(dateFormatZoned(viewUser.getTransactionDate())) .isCart(listOfCartViews.size() > 1) + .isPayer(viewUser.getIsPayer()) .build(); } diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/model/response/Attachment.java b/src/main/java/it/gov/pagopa/bizeventsservice/model/response/Attachment.java new file mode 100644 index 00000000..1673b692 --- /dev/null +++ b/src/main/java/it/gov/pagopa/bizeventsservice/model/response/Attachment.java @@ -0,0 +1,18 @@ +package it.gov.pagopa.bizeventsservice.model.response; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Getter; +import lombok.extern.jackson.Jacksonized; + +@Getter +@Builder +@Jacksonized +public class Attachment { + + private String id; + @JsonProperty("content_type") + private String contentType; + private String name; + private String url; +} diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/model/response/AttachmentsDetailsResponse.java b/src/main/java/it/gov/pagopa/bizeventsservice/model/response/AttachmentsDetailsResponse.java new file mode 100644 index 00000000..7bd0e399 --- /dev/null +++ b/src/main/java/it/gov/pagopa/bizeventsservice/model/response/AttachmentsDetailsResponse.java @@ -0,0 +1,18 @@ +package it.gov.pagopa.bizeventsservice.model.response; + +import lombok.Builder; +import lombok.Getter; +import lombok.extern.jackson.Jacksonized; + +import java.util.List; + +/** + * Model class for the attachment details response + */ +@Getter +@Builder +@Jacksonized +public class AttachmentsDetailsResponse { + + private List attachments; +} diff --git a/src/main/java/it/gov/pagopa/bizeventsservice/model/response/transaction/TransactionListItem.java b/src/main/java/it/gov/pagopa/bizeventsservice/model/response/transaction/TransactionListItem.java index 7a1c4741..a46c6bd1 100644 --- a/src/main/java/it/gov/pagopa/bizeventsservice/model/response/transaction/TransactionListItem.java +++ b/src/main/java/it/gov/pagopa/bizeventsservice/model/response/transaction/TransactionListItem.java @@ -15,10 +15,15 @@ @NoArgsConstructor @Builder public class TransactionListItem implements Serializable { - private String transactionId; + /** + * + */ + private static final long serialVersionUID = 8763325343304031081L; + private String transactionId; private String payeeName; private String payeeTaxCode; private String amount; private String transactionDate; private Boolean isCart; + private Boolean isPayer; } diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index bb0a96cb..570d0b1b 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -16,6 +16,10 @@ azure.cosmos.biz-events-view-cart-container-name=biz-events-view-cart 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 + springdoc.group-configs[0].group=all springdoc.group-configs[0].displayName=Biz-Events All springdoc.group-configs[0].paths-to-match=/** diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index c36b7098..a045fe19 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -37,6 +37,20 @@ logging.level.it.gov.pagopa=${APP_LOGGING_LEVEL:INFO} # Transaction Placeholder 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} + +# 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} + + # Openapi springdoc.use-fqn=false springdoc.writer-with-order-by-keys=false 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 422142f6..6704f266 100644 --- a/src/test/java/it/gov/pagopa/bizeventsservice/controller/TransactionControllerTest.java +++ b/src/test/java/it/gov/pagopa/bizeventsservice/controller/TransactionControllerTest.java @@ -1,27 +1,36 @@ package it.gov.pagopa.bizeventsservice.controller; +import it.gov.pagopa.bizeventsservice.client.IReceiptPDFClient; +import it.gov.pagopa.bizeventsservice.entity.BizEvent; import it.gov.pagopa.bizeventsservice.exception.AppError; import it.gov.pagopa.bizeventsservice.exception.AppException; +import it.gov.pagopa.bizeventsservice.model.response.Attachment; +import it.gov.pagopa.bizeventsservice.model.response.AttachmentsDetailsResponse; import it.gov.pagopa.bizeventsservice.model.response.transaction.TransactionDetailResponse; import it.gov.pagopa.bizeventsservice.model.response.transaction.TransactionListItem; import it.gov.pagopa.bizeventsservice.model.response.transaction.TransactionListResponse; +import it.gov.pagopa.bizeventsservice.service.IBizEventsService; import it.gov.pagopa.bizeventsservice.service.ITransactionService; import it.gov.pagopa.bizeventsservice.util.TestUtil; -import it.gov.pagopa.bizeventsservice.util.ViewGenerator; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; +import feign.FeignException; + import java.io.IOException; +import java.util.Arrays; import java.util.List; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.*; @@ -45,12 +54,21 @@ public class TransactionControllerTest { public static final String SIZE_HEADER_KEY = "size"; public static final String SIZE = "10"; public static final String TRANSACTION_DISABLE_PATH = "/transactions/transaction-id/disable"; + public static final String TRANSACTION_RECEIPT_PATH = "/transactions/event-id/pdf"; @Autowired private MockMvc mvc; @MockBean private ITransactionService transactionService; + + @MockBean + private IBizEventsService bizEventsService; + + @MockBean + private IReceiptPDFClient receiptClient; + + private byte[] receipt = {69, 121, 101, 45, 62, 118, 101, 114, (byte) 196, (byte) 195, 61, 101, 98}; @BeforeEach void setUp() throws IOException { @@ -60,6 +78,10 @@ void setUp() throws IOException { TransactionDetailResponse transactionDetailResponse = TestUtil.readModelFromFile("biz-events/transactionDetails.json", TransactionDetailResponse.class); when(transactionService.getTransactionList(eq(VALID_FISCAL_CODE), anyString(), anyInt())).thenReturn(transactionListResponse); when(transactionService.getTransactionDetails(anyString(), anyString())).thenReturn(transactionDetailResponse); + Attachment attachmentDetail = mock (Attachment.class); + AttachmentsDetailsResponse attachments = AttachmentsDetailsResponse.builder().attachments(Arrays.asList(attachmentDetail)).build(); + when(receiptClient.getAttachments(anyString(), anyString())).thenReturn(attachments); + when(receiptClient.getReceipt(anyString(), anyString(), any())).thenReturn(receipt); } @Test @@ -158,5 +180,65 @@ void getTransactionDisableithInvalidFiscalCodeShouldReturnError() throws Excepti .andExpect(status().isBadRequest()) .andReturn(); } + + @Test + void getPDFReceipt_ShouldReturnOK() throws Exception { + + BizEvent bizEvent = mock (BizEvent.class); + when (bizEventsService.getBizEvent(anyString())).thenReturn(bizEvent); + + MvcResult result = mvc.perform(get(TRANSACTION_RECEIPT_PATH) + .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); + } + + @Test + void getPDFReceiptForOldPMEvent_ShouldReturnNOTFOUND() throws Exception { + AppException ex = new AppException(HttpStatus.NOT_FOUND, "mock", "mock"); + when (bizEventsService.getBizEvent(anyString())).thenThrow(ex); + + mvc.perform(get(TRANSACTION_RECEIPT_PATH) + .header(FISCAL_CODE_HEADER_KEY, VALID_FISCAL_CODE) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isNotFound()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON)) + .andReturn(); + } + + @Test // TODO This test will need to be modified when the receipt generation is introduced + void getPDFReceiptForMissingEventId_ShouldReturnNOTFOUND() throws Exception { + + BizEvent bizEvent = mock (BizEvent.class); + when (bizEventsService.getBizEvent(anyString())).thenReturn(bizEvent); + when(receiptClient.getAttachments(anyString(), eq("missing-id"))).thenThrow(FeignException.NotFound.class); + + mvc.perform(get("/transactions/missing-id/pdf") + .header(FISCAL_CODE_HEADER_KEY, VALID_FISCAL_CODE) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isNotFound()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON)) + .andReturn(); + } + + @Test + void getPDFReceiptForUnhandledException_ShouldReturnKO() throws Exception { + + BizEvent bizEvent = mock (BizEvent.class); + when (bizEventsService.getBizEvent(anyString())).thenReturn(bizEvent); + // Override @BeforeEach condition + when(receiptClient.getAttachments(anyString(), eq("event-id"))).thenThrow(FeignException.BadRequest.class); + + mvc.perform(get(TRANSACTION_RECEIPT_PATH) + .header(FISCAL_CODE_HEADER_KEY, INVALID_FISCAL_CODE) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isInternalServerError()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON)) + .andReturn(); + } } diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index d16d9cba..8b8b07d4 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -37,6 +37,10 @@ logging.level.it.gov.pagopa=${APP_LOGGING_LEVEL:INFO} # Transaction Placeholder transaction.payee.cartName=${PAYEE_CART_NAME:Pagamento Multiplo} +# PDF Receipt Service +pdf.receipt.subscription-key=subkey +service.pdf.receipt.host=http://localhost:8080 + # Openapi springdoc.use-fqn=false springdoc.writer-with-order-by-keys=false