A TRANSACTION of type CORRECTION is used to record any return process.
This operation differs from a CANCELLATION, which is used to invalidate an existing RECEIPT. Not sure which one to use? Check out our article: When should CANCELLATION be used?
Steps to follow
-
operation.record.id→ ID of the originalRECEIPTtransaction -
entries[].type→RETURN -
entries[].details.number→ Entry number of the original receipt line for which the return is issued -
entries[].data.text→ Must exactly match the description of the original entry - Specify the actual quantity returned and update all related values accordingly. Only positive values are allowed. For additional details, refer to Value calculations and decimal rounding.
Note: The following payloads reflect the structure changes introduced with API version 2026-06-01. If you're integrating against a legacy version: replace totals.vat field (at operation level) with the old total_vat (at document level), remove the breakdown field, and use the flat unit.price string format (inclusive only, e.g. "price": "50.00") instead of the { inclusive, exclusive } object shown here.
Example
Original TRANSACTION of type RECEIPT: sale of 1 Jacket and 2 T-shirts
{
"content": {
"type": "TRANSACTION",
"record": {
"id": "{{intentionId}}"
},
"operation": {
"type": "RECEIPT",
"document": {
"number": "INV-12345"
},
"entries": [
{
"type": "SALE",
"details": {
"concept": "GOOD"
},
"data": {
"type": "ITEM",
"text": "Jacket",
"unit": {
"quantity": "1",
"price": {
"inclusive": "50.00",
"exclusive": "40.98360656"
}
},
"value": {
"base": "40.98360656"
},
"vat": {
"type": "VAT_RATE",
"code": "STANDARD",
"percentage": "22.00",
"exclusive": "40.98360656",
"inclusive": "50.00",
"amount": "9.01639344"
}
}
},
{
"type": "SALE",
"details": {
"concept": "GOOD"
},
"data": {
"type": "ITEM",
"text": "T-shirt",
"unit": {
"quantity": "2",
"price": {
"inclusive": "25.00",
"exclusive": "20.49180328"
}
},
"value": {
"base": "40.98360655",
"discount": "0.00"
},
"vat": {
"type": "VAT_RATE",
"code": "STANDARD",
"percentage": "22.00",
"exclusive": "40.98360655",
"inclusive": "50.00",
"amount": "9.01639344"
}
}
}
],
"breakdown": [
{
"type": "VAT_RATE",
"code": "STANDARD",
"percentage": "22.00",
"exclusive": "81.96721311",
"inclusive": "100.00",
"amount": "18.03278688"
}
],
"totals": {
"vat": {
"amount": "18.03278688",
"exclusive": "81.96721311",
"inclusive": "100.00"
}
},
"customer": {
"type": "EXTERNAL"
},
"payments": [
{
"type": "CASH",
"details": {
"amount": "100.00"
}
}
]
}
}
}1. Return of goods with refund of the paid price
-
Partial Refund Scenario
TRANSACTIONof typeCORRECTION: return of 1 T-shirt
{
"content": {
"type": "TRANSACTION",
"record": {
"id": "{{recordIntentionIdC1}}"
},
"operation": {
"type": "CORRECTION",
"record": {
"id": "{{recordTransactionIdC0}}"
},
"data": {
"type": "RECEIPT",
"document": {
"number": "INV-16789",
"series": "C"
},
"entries": [
{
"type": "RETURN",
"details": {
"concept": "GOOD",
"number": "2"
},
"data": {
"type": "ITEM",
"text": "T-shirt",
"unit": {
"quantity": "1",
"price": {
"inclusive": "25.00",
"exclusive": "20.49180327"
}
},
"value": {
"base": "20.49180327"
},
"vat": {
"type": "VAT_RATE",
"code": "STANDARD",
"percentage": "22.00",
"exclusive": "20.49180327",
"inclusive": "25.00",
"amount": "4.50819672"
}
}
}
],
"breakdown": [
{
"type": "VAT_RATE",
"code": "STANDARD",
"percentage": "22.00",
"exclusive": "20.49180327",
"inclusive": "25.00",
"amount": "4.50819672"
}
],
"totals": {
"vat": {
"amount": "4.50819672",
"exclusive": "20.49180327",
"inclusive": "25.00"
}
},
"customer": {
"type": "EXTERNAL"
},
"payments": [
{
"type": "CASH",
"details": {
"amount": "25.00"
}
}
]
}
}
}
}-
Full Refund Scenario in one single document
For a full refund of the entire receipt, all entries from the original receipt must be listed with their corresponding values.
2. Exchange Scenario: Returning Item A and Purchasing Item B
A "Documento Commerciale" cannot contain both SALE and RETURN entries. From a technical standpoint, the correct approach is as follows:
- Issue a
CORRECTIONtransaction to certify the return of Item A - Issue a
RECEIPTtransaction to certify the sale of Item B
3. Scenario: Returning Item A and Issuing a Purchase Voucher
From a technical standpoint, the correct approach is as follows:
- Issue a
CORRECTIONtransaction to certify the return of Item A - Issue a
RECEIPTtransaction for the sale of a voucher (single-purpose or multi-purpose, depending on the applicable tax treatment)
fiskaly is not allowed to provide tax advice. For tax-related questions, contact your tax advisor, tax auditor, or lawyer.