1.Provider supported
On the Italian market, we support additional payment methods and alternative payment methods. Here is the supported list:
| Payment Provider | StoredValueAccountID.ownerName | AmountsReq.StoredValueId |
|---|---|---|
| CIR | ARGENTEA_VOUCHER | 102 |
| SODEXO | ARGENTEA_VOUCHER | 103 |
| PELLEGRINI | ARGENTEA_VOUCHER | 104 |
| DAY | ARGENTEA_VOUCHER | 105 |
| EP | ARGENTEA_VOUCHER | 106 |
| EDENRED | ARGENTEA_VOUCHER | 107 |
| REPAS | ARGENTEA_VOUCHER | 108 |
| YES!TICKET | ARGENTEA_VOUCHER | 109 |
| MIG | ARGENTEA_VOUCHER | 110 |
| EATSREADY | ARGENTEA_VOUCHER | 111 |
| TODUBA | ARGENTEA_VOUCHER | 112 |
| GUDOL | ARGENTEA_VOUCHER | 113 |
| MONNI | ARGENTEA_VOUCHER | 114 |
| BITCOIN | ARGENTEA_ALTPAYMENT | 0003 |
| SATISPAY QR CODE | ARGENTEA_ALTPAYMENT | 0004 |
| CONAD PAY | ARGENTEA_ALTPAYMENT | 0005 |
| TINABA | ARGENTEA_ALTPAYMENT | 0006 |
| ALIPAY | ARGENTEA_ALTPAYMENT | 0007 |
| ARGENTEA_ALTPAYMENT | 0008 | |
| POSTEPAY | ARGENTEA_ALTPAYMENT | 0009 |
| FIERAPAY | ARGENTEA_ALTPAYMENT | 0010 |
| SCALAPAY | ARGENTEA_ALTPAYMENT | 0011 |
| BANCOMATPAY | ARGENTEA_ALTPAYMENT | 0012 |
| CIPAY | ARGENTEA_ALTPAYMENT | 0013 |
2. Payment
A. Payment Request
Payment Request for Italian specific payment methods are similar to a standard payment request, to which we have to add extra "PaymentData" element in the Request Body
Header
The standard SaleToPOIRequest.MessageHeader object, with MessageClass set to Service and MessageCategory set to Payment.
Body
To successfully initiate a PaymentRequest for italian payment methods, the body must contain the standard data expected for a PaymentRequest. In addition, you have to fulfill dedicated object: PaymentData.PaymentInstrumentData
| Component Object | Required | Type | Description |
|---|---|---|---|
PaymentInstrumentType |
Yes | String | Static data to set to "StoredValue". |
StoredValueAccountID.EntryMode |
Yes | String | static data to set to "Manual" |
StoredValueAccountID.IdentificationType |
No | String | static data to set to "AccountNumber" |
StoredValueAccountID.ownerName |
No | Enum | refer to the provider table below |
StoredValueAccountID.StoredValueAccountType |
No | String | static data to set to "Other" |
StoredValueAccountID.StoredValueId |
No | Object | for Buono Pasto, set to "null" |
Card Acquisition Request example JSON
{
"MessageHeader": {
"MessageCategory": "Payment",
"MessageClass": "Service",
"MessageType": "Request",
"POIID": "POI_01",
"ProtocolVersion": "3.1",
"SaleID": "POS_01",
"ServiceID": "823"
},
"PaymentRequest": {
"PaymentData": {
"PaymentInstrumentData": [
{
"PaymentInstrumentType": "StoredValue",
"StoredValueAccountID": {
"EntryMode": "Manual",
"IdentificationType": "AccountNumber",
"ownerName": "ARGENTEA_VOUCHER",
"StoredValueAccountType": "Other",
"StoredValueId": "null"
}
}
]
},
"PaymentTransaction": {
"AmountsReq": {
"Currency": "EUR",
"RequestedAmount": "11.99"
}
},
"SaleData": {
"OperatorID": "Cashier_01",
"SaleTransactionID": {
"TimeStamp": "2025-11-28T14:12:59.6+01:00",
"TransactionID": "9991"
}
}
}
}
Review the full schema on the API specification page for required fields.
Payment Request with extra data example XML
<SaleToPOIRequest>
<MessageHeader MessageCategory="Payment" MessageClass="Service" MessageType="Request" POIID="321" SaleID="123" ServiceID="858"></MessageHeader>
<PaymentRequest>
<SaleData OperatorID="666">
<SaleTransactionID TimeStamp="2024-08-09T07:38:40Z" TransactionID="123"></SaleTransactionID>
</SaleData>
<PaymentTransaction>
<AmountsReq Currency="EUR" RequestedAmount="12.34"></AmountsReq>
</PaymentTransaction>
<PaymentData>
<PaymentInstrumentData PaymentInstrumentType="StoredValue">
<StoredValueAccountID EntryMode="Manual"
StoredValueAccountType="Other"
OwnerName="ARGENTEA_VOUCHER"
IdentificationType="Provider">"ProviderCode"</StoredValueAccountID>
</PaymentInstrumentData>
</PaymentData>
</PaymentRequest>
</SaleToPOIRequest>
Review the full schema on the API specification page for required fields.
B. Intermediate Status
A payment request is running asynchronously, the Payment Terminal (POI) uses Display Request messages to inform the Point of Sale (POS) about the customer's required interaction or the current terminal state. The POS can interpret this information to update the customer display or cashier interface and then continue waiting for the final result. Refer to the Standard POS integration flow to manage it
C. Payment Response
The MessageHeader you receive in the response echoes the values you provided in the request. The only exception is the MessageType, which is Response.
As part of the response, we receive standard information related to a payment and additional data related to italian payment method used. Refer to the Standard POS integration flow to manage it.
| Component Object | Description |
|---|---|
StoredValueAccountID.ownerName |
name of the payment provider |
AmountsReq.StoredValueId |
code of the payment provider |
Payment Response example JSON
Example of a response using a Buono Pasto card
{
"MessageHeader": {
"MessageCategory": "Payment",
"MessageClass": "Service",
"MessageType": "Response",
"POIID": "POS01",
"ProtocolVersion": "3.0",
"SaleID": "POS001",
"ServiceID": "823"
},
"PaymentResponse": {
"PaymentReceipt": [
{
"DocumentQualifier": "Voucher",
"OutputContent": {
"OutputFormat": "Text",
"OutputText": [
{
"Text": "PAGAMENTO BUONO PASTO"
},
{
"Text": ""
},
{
"Text": "ARGENTEA BPE"
},
{
"Text": "BPE ARGENTEA"
},
{
"Text": "VIA TRENTO 15"
},
{
"Text": ""
},
{
"Text": "Data: 11/03/202409:29"
},
{
"Text": "TML: 10777364"
},
{
"Text": "RUPP: E016899310777364"
},
{
"Text": "AuthCode: 3750"
},
{
"Text": "CARD: 00001031"
},
{
"Text": "EDENRED"
},
{
"Text": ""
},
{
"Text": "N.Buoni usati: 000"
},
{
"Text": "001x 6,00 EUR"
},
{
"Text": "002 x 8,00 EUR"
},
{
"Text": ""
},
{
"Text": "IMPORTO EUR 22,00"
},
{
"Text": ""
},
{
"Text": "Disponibilita:"
},
{
"Text": ""
},
{
"Text": "************************"
},
{
"Text": "OPERAZIONE ESEGUITA"
},
{
"Text": "************************"
},
{
"Text": ""
},
{
"Text": ""
}
]
}
}
],
"PaymentResult": {
"PaymentInstrumentData": {
"PaymentInstrumentType": "StoredValue",
"StoredValueAccountID": {
"EntryMode": "Manual",
"IdentificationType": "AccountNumber",
"ownerName": "ARGENTEA_VOUCHER",
"StoredValueAccountType": "Other",
"StoredValueId": "107",
"storedValueProvider": "EDENRED"
}
}
},
"POIData": {
"POITransactionID": {
"TimeStamp": "2025-11-28T14:12:59.6+01:00",
"TransactionID": "9991"
}
},
"Response": {
"AdditionalResponse": "OPERAZIONE ESEGUITA",
"Result": "Success"
},
"SaleData": {
"SaleTransactionID": {
"TimeStamp": "2025-11-28T14:12:59.6+01:00",
"TransactionID": "9991"
}
}
}
}
Review the full schema on the API specification page for required fields.
3. Reversal
A. Reversal Request
Payment Request for Italian specific payment methods are similar to a standard payment request, to which we have to add extra "PaymentData" element in the Request Body
Header
The standard SaleToPOIRequest.MessageHeader object, with MessageClass set to Service and MessageCategory set to Reversal.
Body
To successfully initiate a ReversalRequest for italian payment methods, the body must contain the standard data expected for a ReversalRequest. In addition, you have to fulfill dedicated object: MarketpayPaymentExtensions.PaymentInstrumentData
| Component Object | Required | Type | Description |
|---|---|---|---|
PaymentInstrumentType |
Yes | String | Static data to set to "StoredValue". |
StoredValueAccountID.EntryMode |
Yes | String | static data to set to "Manual" |
StoredValueAccountID.IdentificationType |
No | String | static data to set to "AccountNumber" |
StoredValueAccountID.ownerName |
No | Enum | refer to the provider table below |
StoredValueAccountID.StoredValueAccountType |
No | String | static data to set to "Other" |
StoredValueAccountID.StoredValueId |
No | Object | for Buono Pasto, set to "null" |
Reversal Acquisition Request example JSON
{
"MessageHeader": {
"MessageCategory": "Reversal",
"MessageClass": "Service",
"MessageType": "Request",
"POIID": "PayOnSite",
"ProtocolVersion": "3.1",
"SaleID": "POS01",
"ServiceID": "0"
},
"ReversalRequest": {
"Currency": "EUR",
"MarketpayPaymentExtensions": {
"PaymentInstrumentData": {
"PaymentInstrumentType": "StoredValue",
"StoredValueAccountID": {
"EntryMode": "Manual",
"IdentificationType": "AccountNumber",
"ownerName": "ARGENTEA_VOUCHER",
"StoredValueAccountType": "Other",
"StoredValueId": "null"
}
},
"PaymentInstrumentType": "StoredValue"
},
"OriginalPOITransaction": {
"POITransactionID": {
"TimeStamp": "1970-01-01T00:00:00Z",
"TransactionID": "POI_TRN_ID"
}
},
"ReversalReason": "MerchantCancel",
"ReversedAmount": 3,
"SaleData": {
"OperatorID": "OPERATOR_ID_IN_REVERSAL",
"SaleTransactionID": {
"TimeStamp": "1970-01-01T00:00:00Z",
"TransactionID": "POS_TRN_ID"
}
}
}
}
Review the full schema on the API specification page for required fields.
B. Reversal Response
The MessageHeader you receive in the response echoes the values you provided in the request. The only exception is the MessageType, which is Response.
As part of the response, we receive standard information related to a reversal and additional data related to italian payment method used. Refer to the Standard POS integration flow to manage it.
| Component Object | Description |
|---|---|
StoredValueAccountID.ownerName |
name of the payment provider |
AmountsReq.StoredValueId |
code of the payment provider |
Reversal Response example JSON
Example of a response using a Buono Pasto card
{
"MessageHeader": {
"MessageCategory": "Reversal",
"MessageClass": "Service",
"MessageType": "Response",
"POIID": "POI_01",
"ProtocolVersion": "3.1",
"SaleID": "POS01",
"ServiceID": "823"
},
"ReversalResponse": {
"POIData": {
"POITransactionID": {
"TimeStamp": "2025-11-28T14:12:59.6+01:00",
"TransactionID": "9991"
}
},
"Response": {
"ErrorCondition": "UnavailableDevice",
"Result": "Failure"
},
"SaleData": {
"SaleTransactionID": {
"TimeStamp": "2025-11-28T14:12:59.6+01:00",
"TransactionID": "9991\""
}
}
}
}
Review the full schema on the API specification page for required fields.