openapi: 3.2.0
info:
title: Pagopa Transaction API
version: '1.0'
description: 'Operations tagged transaction across 2 of this provider''s published API definitions: pari-merchants-ecommerce.yml, pagopa-pari-ecommerce-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
security:
- Bearer: []
tags:
- name: Transaction
description: Operazioni relative alle transazioni
paths:
/transactions/bar-code/{trxCode}/capture:
put:
tags:
- Transaction
summary: Cattura la transazione
operationId: capturePaymentBonusElettrodomestici
deprecated: true
parameters:
- name: trxCode
in: path
description: Codice della transazione
required: true
schema:
type: string
maxLength: 24
pattern: ^[a-zA-Z0-9]+$
responses:
'200':
description: Ok
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionBarCodeResponse'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with transactionCode [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
Retry-After:
$ref: '#/components/headers/Retry-After'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests
'500':
description: Generic error
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: Application error
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/initiatives/{initiativeId}/transactions/bar-code/{trxCode}/capture:
parameters:
- name: initiativeId
in: path
description: 'ENG: The initiative''s id - IT: Id dell''iniziativa'
required: true
schema:
type: string
maxLength: 24
pattern: ^[A-Za-z0-9_-]+$
put:
tags:
- Transaction
summary: Cattura la transazione
operationId: capturePayment
parameters:
- name: trxCode
in: path
description: Codice della transazione
required: true
schema:
type: string
maxLength: 24
pattern: ^[a-zA-Z0-9]+$
responses:
'200':
description: Ok
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionBarCodeResponse'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with transactionCode [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
Retry-After:
$ref: '#/components/headers/Retry-After'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests
'500':
description: Generic error
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: Application error
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/transactions/bar-code/{trxCode}/preview:
put:
tags:
- Transaction
summary: Anteprima pagamento
description: 'Anteprima pagamento con payload V2.
- schema request: `PreviewPaymentRequestV2DTO`
- schema response: `PreviewPaymentResponseV2DTO`'
operationId: previewPaymentBonusElettrodomestici
deprecated: true
parameters:
- name: trxCode
in: path
description: Codice della transazione
required: true
schema:
type: string
maxLength: 24
pattern: ^[a-zA-Z0-9]+$
requestBody:
description: Request anteprima pagamento (V2)
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewPaymentRequestV2DTO'
examples:
v2:
summary: Anteprima pagamento V2
value:
amountCents: 123400
additionalProperties:
customField: customValue
responses:
'200':
description: Risposta anteprima pagamento (V2)
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewPaymentResponseV2DTO'
examples:
v2:
summary: Risposta anteprima pagamento V2
value:
trxCode: cmhszi7u
trxDate: '2025-10-24T12:36:00.725+00:00'
status: AUTHORIZED
originalAmountCents: 133400
rewardCents: 10000
residualAmountCents: 123400
userId: RSSMRA85M01H501U
additionalProperties:
customField: validatedCustomValue
extendedAuthorization: true
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_AMOUNT_NOT_VALID
message: Cannot preview transaction with invalid amount [%s]
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_ALLOWED_FOR_TRX_STATUS
message: Transaction with trxCode [%s] is not allowed for this operation
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with trxCode [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests on the ms reward calculator
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: A generic error occurred
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/initiatives/{initiativeId}/transactions/bar-code/{trxCode}/preview:
parameters:
- name: initiativeId
in: path
description: 'ENG: The initiative''s id - IT: Id dell''iniziativa'
required: true
schema:
type: string
maxLength: 24
pattern: ^[A-Za-z0-9_-]+$
put:
tags:
- Transaction
summary: Anteprima pagamento
description: 'Anteprima pagamento con payload V2.
- schema request: `PreviewPaymentRequestV2DTO`
- schema response: `PreviewPaymentResponseV2DTO`'
operationId: previewPayment
parameters:
- name: trxCode
in: path
description: Codice della transazione
required: true
schema:
type: string
maxLength: 24
pattern: ^[a-zA-Z0-9]+$
requestBody:
description: Request anteprima pagamento (V2)
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewPaymentRequestV2DTO'
examples:
v2:
summary: Anteprima pagamento V2
value:
amountCents: 123400
additionalProperties:
customField: customValue
responses:
'200':
description: Risposta anteprima pagamento (V2)
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewPaymentResponseV2DTO'
examples:
v2:
summary: Risposta anteprima pagamento V2
value:
trxCode: cmhszi7u
trxDate: '2025-10-24T12:36:00.725+00:00'
status: AUTHORIZED
originalAmountCents: 133400
rewardCents: 10000
residualAmountCents: 123400
userId: RSSMRA85M01H501U
additionalProperties:
customField: validatedCustomValue
extendedAuthorization: true
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_AMOUNT_NOT_VALID
message: Cannot preview transaction with invalid amount [%s]
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_ALLOWED_FOR_TRX_STATUS
message: Transaction with trxCode [%s] is not allowed for this operation
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with trxCode [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests on the ms reward calculator
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: A generic error occurred
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/transactions/bar-code/{trxCode}/authorize:
put:
tags:
- Transaction
summary: Autorizzazione pagamento
operationId: authPaymentBarCodeBonusElettrodomestici
deprecated: true
parameters:
- name: trxCode
in: path
description: Codice della transazione
required: true
schema:
type: string
maxLength: 255
pattern: ^[a-zA-Z0-9]+$
example: cmhszi7u
requestBody:
description: Request about auth bar-code trx
content:
application/json:
schema:
$ref: '#/components/schemas/AuthBarCodePaymentDTO'
responses:
'200':
description: Ok
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/AuthPaymentResponseDTO'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
examples:
invalidAmount:
summary: Amount not valid
value:
code: PAYMENT_AMOUNT_NOT_VALID
message: Cannot authorize transaction with invalid amount [%s]
missingAdditionalProperties:
summary: Additional properties not exist
value:
code: TRX_ADDITIONAL_PROPERTIES_NOT_EXIST
message: Cannot authorize transaction with invalid AdditionalProperties
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_ALREADY_AUTHORIZED
message: Transaction with trxCode [trxCode] is already authorized
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
examples:
transactionNotFound:
summary: Transaction not found
value:
code: PAYMENT_NOT_FOUND_EXPIRED
message: Cannot find transaction with trxCode [trxCode]
productNotFound:
summary: Product not found
value:
code: PRODUCT_NOT_FOUND
message: The product with gtin [gtin] is not found or not approved
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many request on the ms reward calculator
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: A generic error occured
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/initiatives/{initiativeId}/transactions/bar-code/{trxCode}/authorize:
parameters:
- name: initiativeId
in: path
description: 'ENG: The initiative''s id - IT: Id dell''iniziativa'
required: true
schema:
type: string
maxLength: 24
pattern: ^[A-Za-z0-9_-]+$
put:
tags:
- Transaction
summary: Autorizzazione pagamento
operationId: authPaymentBarCode
parameters:
- name: trxCode
in: path
description: Codice della transazione
required: true
schema:
type: string
maxLength: 255
pattern: ^[a-zA-Z0-9]+$
example: cmhszi7u
requestBody:
description: Request about auth bar-code trx
content:
application/json:
schema:
$ref: '#/components/schemas/AuthBarCodePaymentDTO'
responses:
'200':
description: Ok
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/AuthPaymentResponseDTO'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
examples:
invalidAmount:
summary: Amount not valid
value:
code: PAYMENT_AMOUNT_NOT_VALID
message: Cannot authorize transaction with invalid amount [%s]
missingAdditionalProperties:
summary: Additional properties not exist
value:
code: TRX_ADDITIONAL_PROPERTIES_NOT_EXIST
message: Cannot authorize transaction with invalid AdditionalProperties
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_ALREADY_AUTHORIZED
message: Transaction with trxCode [trxCode] is already authorized
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
examples:
transactionNotFound:
summary: Transaction not found
value:
code: PAYMENT_NOT_FOUND_EXPIRED
message: Cannot find transaction with trxCode [trxCode]
productNotFound:
summary: Product not found
value:
code: PRODUCT_NOT_FOUND
message: The product with gtin [gtin] is not found or not approved
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many request on the ms reward calculator
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: A generic error occured
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/transactions/processed:
get:
tags:
- Transaction
summary: Ritorna la lista delle transazioni processate associate ad un punto vendita
operationId: getPointOfSaleTransactionsProcessedBonusElettrodomestici
deprecated: true
parameters:
- $ref: '#/components/parameters/page_query'
- $ref: '#/components/parameters/size_query'
- $ref: '#/components/parameters/sort_trx_processed_query'
- $ref: '#/components/parameters/fiscalCode_query'
- $ref: '#/components/parameters/status_trx_processed_query'
- $ref: '#/components/parameters/productGtin_query'
responses:
'200':
$ref: '#/components/responses/GET_transactions_processed_200_Response'
'400':
$ref: '#/components/responses/GET_transactions_processed_400_Response'
'401':
$ref: '#/components/responses/GET_transactions_processed_401_Response'
'404':
$ref: '#/components/responses/GET_transactions_processed_404_Response'
'429':
$ref: '#/components/responses/GET_transactions_processed_429_Response'
'500':
$ref: '#/components/responses/GET_transactions_processed_500_Response'
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/initiatives/{initiativeId}/transactions/processed:
parameters:
- name: initiativeId
in: path
description: 'ENG: The initiative''s id - IT: Id dell''iniziativa'
required: true
schema:
type: string
maxLength: 24
pattern: ^[A-Za-z0-9_-]+$
get:
tags:
- Transaction
summary: Ritorna la lista delle transazioni processate associate ad un punto vendita
operationId: getPointOfSaleTransactionsProcessed
parameters:
- $ref: '#/components/parameters/page_query'
- $ref: '#/components/parameters/size_query'
- $ref: '#/components/parameters/sort_trx_processed_query'
- $ref: '#/components/parameters/fiscalCode_query'
- $ref: '#/components/parameters/status_trx_processed_query'
- $ref: '#/components/parameters/productGtin_query'
responses:
'200':
$ref: '#/components/responses/GET_transactions_processed_200_Response'
'400':
$ref: '#/components/responses/GET_transactions_processed_400_Response'
'401':
$ref: '#/components/responses/GET_transactions_processed_401_Response'
'404':
$ref: '#/components/responses/GET_transactions_processed_404_Response'
'429':
$ref: '#/components/responses/GET_transactions_processed_429_Response'
'500':
$ref: '#/components/responses/GET_transactions_processed_500_Response'
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/transactions:
get:
tags:
- Transaction
summary: Ritorna la lista delle transazioni in corso associate ad un punto vendita
operationId: getPointOfSaleTransactionsBonusElettrodomestici
deprecated: true
parameters:
- $ref: '#/components/parameters/page_query'
- $ref: '#/components/parameters/size_query'
- $ref: '#/components/parameters/sort_trx_in_progress_query'
- $ref: '#/components/parameters/fiscalCode_query'
- $ref: '#/components/parameters/status_trx_in_progress_query'
- $ref: '#/components/parameters/productGtin_query'
responses:
'200':
$ref: '#/components/responses/GET_transactions_in_progress_200_Response'
'400':
$ref: '#/components/responses/GET_transactions_in_progress_400_Response'
'401':
$ref: '#/components/responses/GET_transactions_in_progress_401_Response'
'404':
$ref: '#/components/responses/GET_transactions_in_progress_404_Response'
'429':
$ref: '#/components/responses/GET_transactions_in_progress_429_Response'
'500':
$ref: '#/components/responses/GET_transactions_in_progress_500_Response'
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/initiatives/{initiativeId}/transactions:
parameters:
- name: initiativeId
in: path
description: 'ENG: The initiative''s id - IT: Id dell''iniziativa'
required: true
schema:
type: string
maxLength: 24
pattern: ^[A-Za-z0-9_-]+$
get:
tags:
- Transaction
summary: Ritorna la lista delle transazioni in corso associate ad un punto vendita
operationId: getPointOfSaleTransactions
parameters:
- $ref: '#/components/parameters/page_query'
- $ref: '#/components/parameters/size_query'
- $ref: '#/components/parameters/sort_trx_in_progress_query'
- $ref: '#/components/parameters/fiscalCode_query'
- $ref: '#/components/parameters/status_trx_in_progress_query'
- $ref: '#/components/parameters/productGtin_query'
responses:
'200':
$ref: '#/components/responses/GET_transactions_in_progress_200_Response'
'400':
$ref: '#/components/responses/GET_transactions_in_progress_400_Response'
'401':
$ref: '#/components/responses/GET_transactions_in_progress_401_Response'
'404':
$ref: '#/components/responses/GET_transactions_in_progress_404_Response'
'429':
$ref: '#/components/responses/GET_transactions_in_progress_429_Response'
'500':
$ref: '#/components/responses/GET_transactions_in_progress_500_Response'
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/transactions/{transactionId}/download:
get:
tags:
- Transaction
summary: Scarica il file della fattura della transazione
operationId: downloadInvoiceFileBonusElettrodomestici
deprecated: true
parameters:
- $ref: '#/components/parameters/transactionId_path'
responses:
'200':
$ref: '#/components/responses/GET_download_invoice_file_200_Response'
'400':
$ref: '#/components/responses/GET_download_invoice_file_400_Response'
'401':
$ref: '#/components/responses/GET_download_invoice_file_401_Response'
'429':
$ref: '#/components/responses/GET_download_invoice_file_429_Response'
'500':
$ref: '#/components/responses/GET_download_invoice_file_500_Response'
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/initiatives/{initiativeId}/transactions/{transactionId}/download:
parameters:
- name: initiativeId
in: path
description: 'ENG: The initiative''s id - IT: Id dell''iniziativa'
required: true
schema:
type: string
maxLength: 24
pattern: ^[A-Za-z0-9_-]+$
get:
tags:
- Transaction
summary: Scarica il file della fattura della transazione
operationId: downloadInvoiceFile
parameters:
- $ref: '#/components/parameters/transactionId_path'
responses:
'200':
$ref: '#/components/responses/GET_download_invoice_file_200_Response'
'400':
$ref: '#/components/responses/GET_download_invoice_file_400_Response'
'401':
$ref: '#/components/responses/GET_download_invoice_file_401_Response'
'429':
$ref: '#/components/responses/GET_download_invoice_file_429_Response'
'500':
$ref: '#/components/responses/GET_download_invoice_file_500_Response'
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/transactions/{transactionId}:
delete:
tags:
- Transaction
summary: Elimina una transazione associata ad un punto vendita
operationId: deleteTransactionBonusElettrodomestici
deprecated: true
parameters:
- name: transactionId
in: path
description: ID della transazione
required: true
schema:
type: string
maxLength: 255
pattern: ^[a-zA-Z0-9\-\_]+$
example: e1f9503e-f87c-4abb-a1cb-bbb1905ae1fd_BARCODE_1761309360725
responses:
'200':
description: Ok
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_ALLOWED_MISMATCHED_MERCHANT
message: The merchant with id [%s] associated to the transaction is not equal to the merchant with id [%s]
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with transactionId [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: Application error
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/initiatives/{initiativeId}/transactions/{transactionId}:
parameters:
- name: initiativeId
in: path
description: 'ENG: The initiative''s id - IT: Id dell''iniziativa'
required: true
schema:
type: string
maxLength: 24
pattern: ^[A-Za-z0-9_-]+$
delete:
tags:
- Transaction
summary: Elimina una transazione associata ad un punto vendita
operationId: deleteTransaction
parameters:
- name: transactionId
in: path
description: ID della transazione
required: true
schema:
type: string
maxLength: 255
pattern: ^[a-zA-Z0-9\-\_]+$
example: e1f9503e-f87c-4abb-a1cb-bbb1905ae1fd_BARCODE_1761309360725
responses:
'200':
description: Ok
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_ALLOWED_MISMATCHED_MERCHANT
message: The merchant with id [%s] associated to the transaction is not equal to the merchant with id [%s]
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with transactionId [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: Application error
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/transactions/{transactionId}/reversal:
post:
tags:
- Transaction
summary: Storno di una transazione da parte di un Punto Vendita
operationId: reversalTransactionBonusElettrodomestici
deprecated: true
parameters:
- name: transactionId
in: path
description: ID della transazione
required: true
schema:
type: string
maxLength: 255
pattern: ^[a-zA-Z0-9\-\_]+$
example: e1f9503e-f87c-4abb-a1cb-bbb1905ae1fd_BARCODE_1761309360725
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/ReversalInvoiceDTO'
responses:
'204':
description: Ok - no content
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_ALLOWED_MISMATCHED_MERCHANT
message: The merchant with id [%s] associated to the transaction is not equal to the merchant with id [%s]
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with transactionId [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: Application error
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/initiatives/{initiativeId}/transactions/{transactionId}/reversal:
parameters:
- name: initiativeId
in: path
description: 'ENG: The initiative''s id - IT: Id dell''iniziativa'
required: true
schema:
type: string
maxLength: 24
pattern: ^[A-Za-z0-9_-]+$
post:
tags:
- Transaction
summary: Storno di una transazione da parte di un Punto Vendita
operationId: reversalTransaction
parameters:
- name: transactionId
in: path
description: ID della transazione
required: true
schema:
type: string
maxLength: 255
pattern: ^[a-zA-Z0-9\-\_]+$
example: e1f9503e-f87c-4abb-a1cb-bbb1905ae1fd_BARCODE_1761309360725
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/ReversalInvoiceDTO'
responses:
'204':
description: Ok - no content
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_ALLOWED_MISMATCHED_MERCHANT
message: The merchant with id [%s] associated to the transaction is not equal to the merchant with id [%s]
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with transactionId [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: Application error
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/transactions/{transactionId}/reversal-invoiced:
post:
tags:
- Transaction
summary: Reverse an invoiced transaction
description: Allows the merchant to refound a transaction from a batch.
operationId: reversalTransactionInvoicedBonusElettrodomestici
deprecated: true
parameters:
- name: transactionId
in: path
required: true
schema:
type: string
maxLength: 50
pattern: ^[A-Za-z0-9\-]+$
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- file
properties:
file:
type: string
format: binary
maxLength: 2147483647
description: Reversal file
docNumber:
type:
- string
- 'null'
maxLength: 50
pattern: ^[A-Za-z0-9\-]*$
description: Optional document number linked to the reversal
responses:
'204':
description: Ok - no content
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/initiatives/{initiativeId}/transactions/{transactionId}/reversal-invoiced:
parameters:
- name: initiativeId
in: path
description: 'ENG: The initiative''s id - IT: Id dell''iniziativa'
required: true
schema:
type: string
maxLength: 24
pattern: ^[A-Za-z0-9_-]+$
post:
tags:
- Transaction
summary: Reverse an invoiced transaction
description: Allows the merchant to refound a transaction from a batch.
operationId: reversalTransactionInvoiced
parameters:
- name: transactionId
in: path
required: true
schema:
type: string
maxLength: 50
pattern: ^[A-Za-z0-9\-]+$
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- file
properties:
file:
type: string
format: binary
maxLength: 2147483647
description: Reversal file
docNumber:
type:
- string
- 'null'
maxLength: 50
pattern: ^[A-Za-z0-9\-]*$
description: Optional document number linked to the reversal
responses:
'204':
description: Ok - no content
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/transactions/{transactionId}/invoice:
post:
tags:
- Transaction
summary: Inserimento della fattura in una transazione, da parte di un Punto Vendita
operationId: invoiceTransactionBonusElettrodomestici
deprecated: true
parameters:
- name: transactionId
in: path
description: ID della transazione
required: true
schema:
type: string
maxLength: 255
pattern: ^[a-zA-Z0-9\-\_]+$
example: e1f9503e-f87c-4abb-a1cb-bbb1905ae1fd_BARCODE_1761309360725
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/InvoiceDTO'
responses:
'204':
description: Ok - no content
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_ALLOWED_MISMATCHED_MERCHANT
message: The merchant with id [%s] associated to the transaction is not equal to the merchant with id [%s]
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with transactionId [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: Application error
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/initiatives/{initiativeId}/transactions/{transactionId}/invoice:
parameters:
- name: initiativeId
in: path
description: 'ENG: The initiative''s id - IT: Id dell''iniziativa'
required: true
schema:
type: string
maxLength: 24
pattern: ^[A-Za-z0-9_-]+$
post:
tags:
- Transaction
summary: Inserimento della fattura in una transazione, da parte di un Punto Vendita
operationId: invoiceTransaction
parameters:
- name: transactionId
in: path
description: ID della transazione
required: true
schema:
type: string
maxLength: 255
pattern: ^[a-zA-Z0-9\-\_]+$
example: e1f9503e-f87c-4abb-a1cb-bbb1905ae1fd_BARCODE_1761309360725
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/InvoiceDTO'
responses:
'204':
description: Ok - no content
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_ALLOWED_MISMATCHED_MERCHANT
message: The merchant with id [%s] associated to the transaction is not equal to the merchant with id [%s]
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with transactionId [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: Application error
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/transactions/{transactionId}/invoice/update:
put:
tags:
- Transaction
summary: Point of sales update invoice transaction
description: Aggiornamento del file e del numero fattura per una transazione da parte di un Punto Vendita
operationId: updateInvoiceTransactionBonusElettrodomestici
deprecated: true
parameters:
- name: transactionId
in: path
description: ID della transazione
required: true
schema:
type: string
maxLength: 255
pattern: ^[a-zA-Z0-9]+$
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/InvoiceDTO'
responses:
'204':
description: Ok - no content
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_ALLOWED_MISMATCHED_MERCHANT
message: The merchant with id [%s] associated to the transaction is not equal to the merchant with id [%s]
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with transactionId [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: Application error
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
/initiatives/{initiativeId}/transactions/{transactionId}/invoice/update:
parameters:
- name: initiativeId
in: path
description: 'ENG: The initiative''s id - IT: Id dell''iniziativa'
required: true
schema:
type: string
maxLength: 24
pattern: ^[A-Za-z0-9_-]+$
put:
tags:
- Transaction
summary: Point of sales update invoice transaction
description: Aggiornamento del file e del numero fattura per una transazione da parte di un Punto Vendita
operationId: updateInvoiceTransaction
parameters:
- name: transactionId
in: path
description: ID della transazione
required: true
schema:
type: string
maxLength: 255
pattern: ^[a-zA-Z0-9]+$
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/InvoiceDTO'
responses:
'204':
description: Ok - no content
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'400':
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling the request
'401':
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_ALLOWED_MISMATCHED_MERCHANT
message: The merchant with id [%s] associated to the transaction is not equal to the merchant with id [%s]
'404':
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_NOT_FOUND_OR_EXPIRED
message: Cannot find transaction with transactionId [%s]
'429':
description: Too many requests
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests
'500':
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: Application error
servers:
- description: Test di Sviluppo
url: https://api-io.dev.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
- description: Test di Accettazione dell'Utente
url: https://api-io.uat.cstar.pagopa.it/idpay-itn/merchant-ecommerce
x-internal: true
components:
responses:
GET_download_invoice_file_400_Response:
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_INVALID_REQUEST
message: Something went wrong handling request
GET_transactions_in_progress_400_Response:
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
GET_download_invoice_file_429_Response:
description: Too many Request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
Retry-After:
$ref: '#/components/headers/Retry-After'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_TOO_MANY_REQUESTS
message: Too many requests
GET_transactions_in_progress_429_Response:
description: Too many Request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
Retry-After:
$ref: '#/components/headers/Retry-After'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
GET_download_invoice_file_200_Response:
description: Ok
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/DownloadInvoiceResponseDTO'
GET_transactions_processed_400_Response:
description: Bad request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
GET_transactions_in_progress_500_Response:
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
GET_transactions_in_progress_401_Response:
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
GET_download_invoice_file_500_Response:
description: Server ERROR
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
example:
code: PAYMENT_GENERIC_ERROR
message: An error occurred during file reading
GET_transactions_processed_500_Response:
description: Generic error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
GET_transactions_processed_401_Response:
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
GET_transactions_processed_404_Response:
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
GET_transactions_processed_200_Response:
description: Ok
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/PointOfSaleTransactionsProcessedListDTO'
GET_download_invoice_file_401_Response:
description: Authentication failed
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionErrorDTO'
GET_transactions_in_progress_200_Response:
description: Ok
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/PointOfSaleTransactionsListDTO'
GET_transactions_processed_429_Response:
description: Too many Request
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
Retry-After:
$ref: '#/components/headers/Retry-After'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
GET_transactions_in_progress_404_Response:
description: The requested resource was not found
headers:
Access-Control-Allow-Origin:
$ref: '#/components/headers/Access-Control-Allow-Origin'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDTO'
schemas:
TransactionBarCodeResponse:
type: object
required:
- id
- trxCode
- initiativeId
- initiativeName
- trxDate
- status
- trxExpirationSeconds
- residualBudgetCents
properties:
id:
type: string
description: ID della transazione
maxLength: 64
pattern: .*
trxCode:
type: string
description: Codice della transazione (codice sconto)
maxLength: 24
pattern: ^[a-zA-Z0-9]+$
example: cmhszi7u
initiativeId:
type: string
description: Identificativo dell'iniziativa
maxLength: 100
pattern: ^[A-Za-z0-9_-]+$
example: 68dd003ccce8c534d1da22bc
initiativeName:
type: string
description: Nome della iniziativa
maxLength: 1000
pattern: .*
example: Bonus Elettrodomestici
trxDate:
type: string
format: date-time
description: Data della transazione
maxLength: 255
example: '2025-10-24T12:36:00.725+00:00'
status:
type: string
enum:
- CREATED
- IDENTIFIED
- AUTHORIZED
- CAPTURED
- REWARDED
- REJECTED
example: CREATED
trxExpirationSeconds:
type: number
description: Scadenza della transazione, in secondi
minimum: 0
example: 300
residualBudgetCents:
type: number
description: Budget residuo
minimum: 0
example: 1000
PreviewPaymentResponseV2DTO:
type: object
properties:
trxCode:
type: string
description: Codice della transazione (codice sconto)
maxLength: 24
pattern: ^[a-zA-Z0-9]+$
example: cmhszi7u
trxDate:
type: string
format: date-time
description: Data della transazione
maxLength: 255
example: '2025-10-24T12:36:00.725+00:00'
status:
type: string
enum:
- CREATED
- IDENTIFIED
- AUTHORIZATION_REQUESTED
- AUTHORIZED
example: AUTHORIZED
description: 'Stato del pagamento [CREATED: Creato, IDENTIFIED: Utente associato, AUTHORIZATION_REQUESTED: autorizzazione richiesta, AUTHORIZED: autorizzato]'
originalAmountCents:
type: integer
format: int64
description: Importo originale da pagare in centesimi
minimum: 0
maximum: 1000000000
example: 133400
rewardCents:
type: integer
format: int64
description: Sconto generato
minimum: 0
maximum: 1000000000
example: 10000
residualAmountCents:
type: integer
format: int64
description: Importo residuo da pagare dopo lo sconto
minimum: 0
maximum: 1000000000
example: 123400
userId:
type: string
description: Codice fiscale utente
maxLength: 16
pattern: .*
example: RSSMRA85M01H501U
additionalProperties:
type: object
description: Campi aggiuntivi restituiti dalla preview del prodotto
additionalProperties:
type: string
maxLength: 255
pattern: .*
example: validatedCustomValue
extendedAuthorization:
type: boolean
description: True, se l'autorizzazione è estesa
example: true
AuthBarCodePaymentDTO:
type: object
additionalProperties: false
required:
- amountCents
- idTrxAcquirer
- additionalProperties
properties:
amountCents:
type: integer
format: int64
minimum: 0
maximum: 1000000
description: Importo della transazione
example: 12345
idTrxAcquirer:
type: string
description: Identificativo della transazione rispetto all'acquirer
maxLength: 100
format: uuid
example: 550e8400-e29b-41d4-a716-446655440000
additionalProperties:
type: object
additionalProperties:
type: string
maxLength: 255
pattern: .*
example: productGtin
ErrorDTO:
type: object
required:
- code
- message
properties:
code:
type: string
maxLength: 255
pattern: .*
example: PAYMENT_INVALID_REQUEST
message:
type: string
maxLength: 255
pattern: .*
example: Something went wrong handling the request
PointOfSaleTransactionsProcessedListDTO:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/PointOfSaleTransactionProcessedDTO'
maxItems: 1000
pageNo:
type: integer
format: int32
description: Numero della pagina
minimum: 0
maximum: 1000000
example: 1
pageSize:
type: integer
format: int32
description: Numero di elementi per pagina
minimum: 0
maximum: 1000000
example: 20
totalElements:
type: integer
format: int32
description: Numero totale degli elementi
minimum: 0
maximum: 1000000
example: 200
totalPages:
type: integer
format: int32
description: Numero totale delle pagine
minimum: 0
maximum: 1000000
example: 10
ReversalInvoiceDTO:
type: object
required:
- file
properties:
file:
type: string
format: binary
maxLength: 255
docNumber:
type: string
maxLength: 255
PreviewPaymentRequestV2DTO:
type: object
properties:
amountCents:
type: integer
format: int64
minimum: 0
maximum: 1000000000
description: Importo totale della spesa in centesimi
example: 123400
additionalProperties:
type: object
description: Campi aggiuntivi usati per la preview del prodotto
additionalProperties:
type: string
maxLength: 255
pattern: .*
example: customValue
required:
- amountCents
TransactionErrorDTO:
type: object
required:
- code
- message
properties:
code:
type: string
enum:
- PAYMENT_NOT_FOUND_EXPIRED
- PAYMENT_NOT_FOUND_OR_EXPIRED
- PAYMENT_TRANSACTION_EXPIRED
- PAYMENT_INITIATIVE_NOT_FOUND
- PAYMENT_INITIATIVE_INVALID_DATE
- PAYMENT_INITIATIVE_NOT_DISCOUNT
- PAYMENT_ALREADY_AUTHORIZED
- PAYMENT_ALREADY_CANCELLED
- PAYMENT_BUDGET_EXHAUSTED
- PAYMENT_GENERIC_REJECTED
- PAYMENT_TOO_MANY_REQUESTS
- PAYMENT_GENERIC_ERROR
- PAYMENT_USER_SUSPENDED
- PAYMENT_USER_NOT_ONBOARDED
- PAYMENT_USER_UNSUBSCRIBED
- PAYMENT_ALREADY_ASSIGNED
- PAYMENT_NOT_ALLOWED_FOR_TRX_STATUS
- PAYMENT_NOT_ALLOWED_MISMATCHED_MERCHANT
- PAYMENT_USER_NOT_ASSOCIATED
- PAYMENT_DELETE_NOT_ALLOWED_FOR_TRX_STATUS
- PAYMENT_UNRELATE_NOT_ALLOWED_FOR_TRX_STATUS
- PAYMENT_AMOUNT_NOT_VALID
- TRX_ADDITIONAL_PROPERTIES_NOT_EXIST
- PAYMENT_MERCHANT_NOT_ONBOARDED
- PAYMENT_INVALID_REQUEST
- PAYMENT_STATUS_NOT_VALID
- PAYMENT_TOO_RECENT
- PAYMENT_TRANSACTION_VERSION_PENDING
- PRODUCT_NOT_FOUND
example: PAYMENT_NOT_FOUND_OR_EXPIRED
description: '"Codice di errore
PAYMENT_NOT_FOUND_OR_EXPIRED: transazione non trovata oppure scaduta
PAYMENT_TRANSACTION_EXPIRED: transazione scaduta
PAYMENT_INITIATIVE_NOT_FOUND: iniziativa non trovata
PAYMENT_INITIATIVE_INVALID_DATE: iniziativa con data invalida
PAYMENT_INITIATIVE_NOT_DISCOUNT: iniziativa non è di tipo a sconto
PAYMENT_ALREADY_AUTHORIZED: transazione già autorizzata
PAYMENT_ALREADY_CANCELLED: transazione già cancellata
PAYMENT_BUDGET_EXHAUSTED: budget esaurito
PAYMENT_GENERIC_REJECTED: errore generico, transazione rigettata
PAYMENT_TOO_MANY_REQUESTS: troppe richieste, riprovare
PAYMENT_GENERIC_ERROR: errore generico (errore nella connessione ad un microservizio)
PAYMENT_USER_SUSPENDED: l''utente è stato sospeso dall''iniziativa
PAYMENT_USER_NOT_ONBOARDED: utente non onboardato all''iniziativa
PAYMENT_USER_UNSUBSCRIBED: utente disiscritto dall''iniziativa
PAYMENT_ALREADY_ASSIGNED: transazione già assegnata
PAYMENT_NOT_ALLOWED_FOR_TRX_STATUS: transazione non consentita a causa dello stato della transazione
PAYMENT_NOT_ALLOWED_MISMATCHED_MERCHANT: transazione non consentita a causa della mancata corrispondenza del merchant
PAYMENT_USER_NOT_ASSOCIATED: utente non associato alla transazione
PAYMENT_DELETE_NOT_ALLOWED_FOR_TRX_STATUS: annullamento della transazione non consentito a causa dello stato della transazione
PAYMENT_UNRELATE_NOT_ALLOWED_FOR_TRX_STATUS: disassociazione non consentita a causa dello stato della transazione
PAYMENT_AMOUNT_NOT_VALID: importo nella transazione non valido
PAYMENT_MERCHANT_NOT_ONBOARDED: il merchant non è onboardato
PAYMENT_INVALID_REQUEST: errore di validazione della richiesta
PAYMENT_STATUS_NOT_VALID: stato della transazione non valido"
PAYMENT_TRANSACTION_VERSION_PENDING: La versione del contatore è attualmente bloccata
PRODUCT_NOT_FOUND: Prodotto non trovato o non approvato '
message:
type: string
description: Messaggio di errore
maxLength: 1000
pattern: .*
example: The transaction has expired
InvoiceFileDTO:
type: object
properties:
filename:
type: string
description: Nome del file della fattura
maxLength: 255
example: invoice_12345.pdf
docNumber:
type: string
maxLength: 255
InvoiceDTO:
type: object
required:
- file
properties:
file:
type: string
format: binary
maxLength: 255
docNumber:
type: string
maxLength: 255
DownloadInvoiceResponseDTO:
type: object
properties:
invoiceUrl:
type: string
description: Url per scaricare il file della fattura
maxLength: 255
example: https://invoices.example.com/invoice_12345.pdf
required:
- invoiceUrl
PointOfSaleTransactionProcessedDTO:
type: object
additionalProperties: false
properties:
id:
type: string
description: ID della transazione
maxLength: 64
pattern: .*
example: e1f9503e-f87c-4abb-a1cb-bbb1905ae1fd_BARCODE_1761309360725
fiscalCode:
type: string
description: Codice fiscale del cittadino
minLength: 16
maxLength: 16
pattern: ^[A-Z0-9]+$
example: RSSMRA85M01H501U
effectiveAmountCents:
type: integer
format: int64
description: Importo della transazione in centesimi
minimum: 0
maximum: 1000000000
example: 123400
rewardAmountCents:
type: integer
format: int64
description: Premio generato in centesimi
minimum: 0
maximum: 1000000000
example: 10000
authorizedAmountCents:
type: integer
format: int64
description: Importo autorizzato in centesimi
minimum: 0
maximum: 1000000000
example: 123400
trxDate:
type: string
format: date-time
description: Data della transazione
maxLength: 255
example: '2025-10-24T12:36:00.725+00:00'
trxChargeDate:
type: string
format: date-time
description: La data di autorizzazione del pagamento
maxLength: 255
example: '2025-10-24T12:36:00.725+00:00'
updateDate:
type: string
format: date-time
description: Data di aggiornamento della transazione
maxLength: 255
example: '2025-10-24T13:00:00.725+00:00'
status:
type: string
description: Stato della transazione
enum:
- REWARDED
- CANCELLED
- REFUNDED
- INVOICED
example: REWARDED
channel:
type: string
description: Canale da cui avviene la transazione
maxLength: 24
enum:
- BARCODE
- QRCODE
- IDPAYCODE
example: BARCODE
additionalProperties:
type: object
additionalProperties:
type: string
maxLength: 255
pattern: .*
example: productGtin
invoiceFile:
$ref: '#/components/schemas/InvoiceFileDTO'
PointOfSaleTransactionDTO:
type: object
additionalProperties: false
properties:
id:
type: string
description: ID della transazione
maxLength: 64
pattern: .*
example: e1f9503e-f87c-4abb-a1cb-bbb1905ae1fd_BARCODE_1761309360725
trxCode:
type: string
description: Codice della transazione
maxLength: 100
pattern: ^[a-zA-Z0-9]+$
example: cmhszi7u
fiscalCode:
type: string
description: Codice fiscale del cittadino
minLength: 16
maxLength: 16
pattern: ^[A-Z0-9]+$
example: RSSMRA85M01H501U
effectiveAmountCents:
type: integer
format: int64
description: Importo della transazione in centesimi
minimum: 0
maximum: 1000000000
example: 123400
rewardAmountCents:
type: integer
format: int64
description: Premio generato in centesimi
minimum: 0
maximum: 1000000000
example: 10000
trxDate:
type: string
format: date-time
description: Data della transazione
maxLength: 255
example: '2025-10-24T12:36:00.725+00:00'
trxChargeDate:
type: string
format: date-time
description: La data di autorizzazione del pagamento
maxLength: 255
example: '2025-10-24T12:36:00.725+00:00'
trxExpirationSeconds:
type: number
description: Scadenza della transazione in secondi
minimum: 0
example: 300
updateDate:
type: string
format: date-time
description: Data di aggiornamento della transazione
maxLength: 255
example: '2025-10-24T13:00:00.725+00:00'
status:
type: string
description: Stato della transazione
enum:
- AUTHORIZED
- CAPTURED
example: AUTHORIZED
splitPayment:
type: boolean
description: TRUE, se la somma autorizzata è inferiore alla somma richiesta o FALSE, se la somma autorizzata è uguale alla somma richiesta.
example: true
residualAmountCents:
type: integer
format: int64
description: Importo restante da pagare nel caso in cui la somma autorizzata sia inferiore alla somma richiesta.
minimum: 0
maximum: 1000000000
example: 122400
channel:
type: string
description: Canale da cui avviene la transazione
maxLength: 24
enum:
- BARCODE
- QRCODE
- IDPAYCODE
example: BARCODE
qrcodePngUrl:
type: string
format: uri
maxLength: 2048
description: Url all'immagine del QR code
qrcodeTxtUrl:
type: string
format: uri
maxLength: 2048
description: Url del QR code
additionalProperties:
type: object
additionalProperties:
type: string
maxLength: 255
pattern: .*
example: productGtin
AuthPaymentResponseDTO:
type: object
required:
- id
- trxCode
- initiativeId
- status
- amountCents
properties:
id:
type: string
description: Identificativo del pagamento
maxLength: 100
format: uuid
example: 3a602b17-ac1c-3029-9e78-0a4bbb8693d4
trxCode:
type: string
description: Codice della transazione
maxLength: 100
pattern: ^[a-zA-Z0-9]+$
example: cmhszi7u
trxDate:
type: string
format: date-time
description: Data della transazione
maxLength: 255
example: '2025-10-24T12:36:00.725+00:00'
initiativeId:
type: string
description: Identificativo dell'iniziativa
maxLength: 100
pattern: ^[A-Za-z0-9_-]+$
example: 68dd003ccce8c534d1da22bc
initiativeName:
type: string
description: Nome della iniziativa
maxLength: 1000
pattern: .*
example: Bonus Elettrodomestici
businessName:
type: string
description: Nome dell'esercente
maxLength: 1000
pattern: .*
example: Negozio di Esempio SRL
status:
type: string
enum:
- CREATED
- IDENTIFIED
- AUTHORIZATION_REQUESTED
- AUTHORIZED
example: AUTHORIZED
description: 'Stato del pagamento [CREATED: Creato, IDENTIFIED: Utente associato, AUTHORIZATION_REQUESTED: autorizzazione richiesta, AUTHORIZED: autorizzato]'
rewardCents:
type: integer
format: int64
minimum: 0
maximum: 1000000
description: Premio generato
example: 10000
amountCents:
type: integer
format: int64
minimum: 0
maximum: 1000000
description: Importo in centesimi
example: 123400
residualBudgetCents:
type: integer
format: int64
minimum: 0
maximum: 1000000
description: Budget residuo
example: 0
splitPayment:
type: boolean
description: TRUE, se la somma autorizzata è inferiore alla somma richiesta o FALSE, se la somma autorizzata è uguale alla somma richiesta.
example: false
residualAmountCents:
type: integer
format: int64
minimum: 0
maximum: 1000000
example: 122400
description: Importo restante da pagare nel caso in cui la somma autorizzata sia inferiore alla somma richiesta.
PointOfSaleTransactionsListDTO:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/PointOfSaleTransactionDTO'
maxItems: 1000
pageNo:
type: integer
format: int32
description: Numero della pagina
minimum: 0
maximum: 1000000
example: 1
pageSize:
type: integer
format: int32
description: Numero di elementi per pagina
minimum: 0
maximum: 1000000
example: 20
totalElements:
type: integer
format: int32
description: Numero totale degli elementi
minimum: 0
maximum: 1000000
example: 200
totalPages:
type: integer
format: int32
description: Numero totale delle pagine
minimum: 0
maximum: 1000000
example: 10
parameters:
fiscalCode_query:
name: fiscalCode
in: query
required: false
schema:
type: string
minLength: 16
maxLength: 16
pattern: ^[A-Z0-9]+$
example: RSSMRA85M01H501U
sort_trx_in_progress_query:
name: sort
in: query
required: false
schema:
type: string
enum:
- trxChargeDate, desc
- status, desc
- productName, desc
- trxChargeDate, asc
- status, asc
- productName, asc
example: trxChargeDate, desc
productGtin_query:
name: productGtin
in: query
required: false
schema:
type: string
maxLength: 14
pattern: ^[a-zA-Z0-9]{1,14}$
example: OVENS09
transactionId_path:
name: transactionId
in: path
description: ID della transazione
required: true
schema:
type: string
maxLength: 255
pattern: .*
example: e1f9503e-f87c-4abb-a1cb-bbb1905ae1fd_BARCODE_1761309360725
status_trx_processed_query:
name: status
in: query
description: Stato della transazione processata
required: false
schema:
type: string
enum:
- REWARDED
- CANCELLED
- REFUNDED
- INVOICED
example: REWARDED
page_query:
name: page
in: query
required: false
schema:
type: integer
format: int32
minimum: 0
maximum: 10000
example: 1
sort_trx_processed_query:
name: sort
in: query
required: false
schema:
type: string
enum:
- trxChargeDate, desc
- status, desc
- productName, desc
- trxChargeDate, asc
- status, asc
- productName, asc
example: trxChargeDate, desc
status_trx_in_progress_query:
name: status
in: query
description: Stato della transazione attualmente in corso
required: false
schema:
type: string
enum:
- AUTHORIZED
- CAPTURED
example: AUTHORIZED
size_query:
name: size
in: query
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
example: 20
headers:
Access-Control-Allow-Origin:
description: Intestazione CORS per consentire richieste cross-origin
schema:
type: string
maxLength: 255
pattern: .*
X-RateLimit-Reset:
description: L'ora in cui il limite di velocità viene reimpostato (in secondi dell'epoca UTC)
schema:
type: integer
format: int64
minimum: 0
maximum: 9999999999
Retry-After:
description: Indica per quanto tempo l'agente deve attendere prima di effettuare una richiesta di follow-up
schema:
type: integer
format: int64
minimum: 0
maximum: 86400
X-RateLimit-Limit:
description: Numero massimo di richieste consentite nel periodo corrente
schema:
type: integer
format: int64
minimum: 0
maximum: 1000000
X-RateLimit-Remaining:
description: Il numero di richieste rimanenti nel periodo corrente
schema:
type: integer
format: int64
minimum: 0
maximum: 1000000
securitySchemes:
Bearer:
description: A bearer token in the format of a JWS and conforms to the specifications included in RFC8725.
type: oauth2
flows:
clientCredentials:
tokenUrl: https://api-mcshared.cstar.pagopa.it/auth-itn/realms/merchant-operator/protocol/openid-connect/token
refreshUrl: https://api-mcshared.cstar.pagopa.it/auth-itn/realms/merchant-operator/protocol/openid-connect/token
scopes: {}
x-refined-from:
- pari-merchants-ecommerce.yml
- pagopa-pari-ecommerce-openapi.yml