Os exemplos JSON seguintes ilustram o caso de negócio de um depósito ou recarga de um cartão de cliente («vale multifunções») e o subsequente resgate deste crédito durante uma venda.
1. Carregamento do cartão do cliente
O primeiro recibo mostra o carregamento do vale multifuncional. O montante é pago em dinheiro e registado na caixa registadora como receita, sem Vat. Com este carregamento, ainda não ocorre qualquer transação tributável, uma vez que ainda não está determinado como o crédito será utilizado.
{
"ModelVersion": "1.4.0",
"UniqueClientId": "2a296a14-f644-4f3f-9ea2-d3f00a3b587c",
"fiscalDocumentNumber": "8",
"fiscalDocumentStartTime": 1743161079,
"fiscalDocumentRevision": 1,
"AdditionalFields": {},
"AutomaticVatCalculation": 0,
"DocumentGuid": "a5f35b65-b5fc-45c8-9b8f-10543c19fa68",
"DocumentId": "946398c5-d72c-450d-9cdd-8f4d49c5643d",
"CreateDate": "2025-03-28T12:26:28.4312186+01:00",
"BookDate": "2025-03-28T12:26:28.4322612+01:00",
"DocumentType": "[0] = Receipt",
"User": {
"Id": "123",
"Caption": "TestUser",
"firstName": "Test",
"lastName": "Test",
"dateOfEntry": "2020-01-01T08:00:00+01:00"
},
"Positions": [
{
"Type": "[0] = Item",
"ItemId": "MPV-0001",
"ItemCaption": "Deposit via Loyalty Card (MultiPurposeVoucher)",
"BusinessTransactionType": "[4] = MultiPurposeVoucher",
"Quantity": 1,
"VatIdentification": 5,
"VatPercent": 0.0,
"NetValue": 100.0,
"GrossValue": 100.00,
"TaxValue": 0.00,
"PositionNumber": 0,
"AdditionalFields": {
"VoucherId": "MPV-0001"
},
"ExternalIdentifier": []
}
],
"Payments": [
{
"Amount": 100.00,
"CurrencyIsoCode": "EUR",
"UniqueReadablePaymentIdentifier": "CASH",
"caption": "Cash+Euro",
"AdditionalFields": {},
"PaymentType": 0,
"ExternalIdentifier": []
}
],
"FiscalAdditionalFields": {}
}
Neste exemplo, a rubrica «Depósito através do Cartão de Fidelidade» é assinalada como um vale multifuncional. O pagamento é efetuado em dinheiro (100 EUR) e não é aplicada qualquer taxa de Vat.
Os seguintes elementos são cruciais:
| Elemento JSON | Significado |
| «BusinessTransactionType»: «[4] = MultiPurposeVoucher» |
Identifica a transação comercial como a venda de um vale multifuncional |
| "AdditionalFields": { "VoucherId": "MPV-0001" } | Estabelece a ligação técnica ao processo de carregamento original |
2. Resgate através do Cartão de Cliente
O segundo recibo indica a venda de bens (por exemplo, flores), que são agora pagos em parte com o crédito carregado anteriormente e em parte em dinheiro.
{
"UniqueClientId": "2a296a14-f644-4f3f-9ea2-d3f00a3b587c",
"AdditionalFields": {},
"DocumentGuid": "4dc6f469-4481-4ae3-9b7e-f9b729901698",
"DocumentId": "4dc6f469-4481-4ae3-9b7e-f9b729901698",
"CreateDate": "2025-03-28T12:32:28.4312186+01:00",
"BookDate": "2025-03-28T12:32:28.4322612+01:00",
"DocumentNumber": "001",
"DocumentType": "[0] = Receipt",
"User": {
"Id": "123",
"Caption": "TestUser"
},
"fiscalDocumentNumber": "9",
"fiscalDocumentStartTime": 1743161104,
"fiscalDocumentRevision": 1,
"Positions": [
{
"ItemCaption": "Flower green",
"ItemShortCaption": null,
"Discounts": [],
"Type": 0,
"UseSubItemVatCalculation": true,
"SubItems": null,
"InHouse": false,
"Quantity": 9.0,
"QuantityUnit": null,
"ItemId": "000714",
"BaseNetValue": 32.52,
"BaseGrossValue": 38.70,
"BaseTaxValue": 6.18,
"GTIN": null,
"BusinessTransactionType": 0,
"VatIdentification": 1,
"VatPercent": 19.0,
"NetValue": 32.52,
"GrossValue": 38.70,
"TaxValue": 6.18,
"AccountingIdentifier": null,
"PositionNumber": 0,
"PositionReference": null,
"CancellationPosition": false
},
{
"ItemCaption": "Wedding bouquet",
"ItemShortCaption": null,
"Discounts": [],
"Type": 0,
"UseSubItemVatCalculation": true,
"SubItems": null,
"InHouse": false,
"Quantity": 3.0,
"QuantityUnit": null,
"ItemId": "001180",
"BaseNetValue": 57.48,
"BaseGrossValue": 68.40,
"BaseTaxValue": 10.92,
"GTIN": "8718274490558",
"BusinessTransactionType": 0,
"VatIdentification": a1,
"VatPercent": 19.0,
"NetValue": 57.48,
"GrossValue": 68.40,
"TaxValue": 10.92,
"AccountingIdentifier": null,
"PositionNumber": 1,
"PositionReference": null,
"CancellationPosition": false
}
],
"Payments": [
{
"Amount": 100.00,
"PaymentType": "MultiPurposeVoucher",
"CurrencyIsoCode": "EUR",
"Caption": "Loyalty Card",
"UniqueReadablePaymentIdentifier": "MPV-0001",
"VatIdentification": 5,
"TaxValue": 0.0,
"VatPercent": 0.0,
"AdditionalFields": {
"VoucherId": "MPV-0001"
}
},
{
"Amount": 7.10,
"PaymentType": "cash",
"CurrencyIsoCode": "EUR",
"Caption": "Cash+Euro",
"UniqueReadablePaymentIdentifier": "CASH",
"ForeignAmount": 0.0,
"ForeignAmountExchangeRate": 0.0
}
]
}
Só neste momento, ao efetuar o resgate através da compra de bens, é que ocorre a transação tributável e o Vat se torna exigível. O pagamento é efetuado parcialmente através do vale multifuncional (cartão de cliente) e parcialmente em dinheiro. Neste cenário, o montante carregado anteriormente (primeiro exemplo) é agora efetivamente utilizado, o que se torna relevante para efeitos de Vat no momento do resgate.
Os seguintes elementos são cruciais:
| Elemento JSON | Significado |
| «PaymentType»: «[4] = “MultiPurposeVoucher”» | Identifica o pagamento como resgate de um vale multifuncional (por exemplo, cartão de cliente) |
| "UniqueReadablePaymentIdentifier": "MPV-0001" | Identificador único do método de pagamento, que, neste caso, identifica o vale multifuncional |
| "VatIdentification": 5 & "VatPercent": 0,0 | Indica que não se aplica Vat ao resgate do vale em si |
| "AdditionalFields": { "VoucherId": "MPV-0001" } | Estabelece a ligação ao processo de carregamento original |
Notas importantes sobre a implementação
Ao implementar vouchers multifuncionais ou pagamentos com cartões de cliente no sistema POS, devem ser tidos em conta os seguintes pontos:
- Para carregar o cartão do cliente:
- A transação comercial deve ser marcada como um vale multifuncional (BusinessTransactionType = 4)
- O ID do vale deve ser armazenado no campo «AdditionalFields» com a chave «VoucherId»
- Para resgatar o crédito:
- Deve ser utilizado o mesmo ID do vale no pagamento, em «UniqueReadablePaymentIdentifier» e em «AdditionalFields»
- A taxa de Vat é aplicada aos bens vendidos
- O resgate é marcado como PaymentType: «[4] = MultiPurposeVoucher»
Este artigo foi traduzido automaticamente.
Comentários
0 comentários
iniciar sessão para comentar.