POS Integration
1. Introduction
2. Real-Time POS Payments
Creates invoice in status "Under Issuance" with payment method “7” .
Calls SOFTONE IMPACT (/PosTransactions/signpos).
2. SOFTONE IMPACT
Return Response message (Response includes Provider Signature & input).
3. ERP
Receives & store Provider Signature
Call NSP (See NSP's documentation for further information).
4. NSP/POS
POS communicates with NSP & Acquirer.
Response message with information about succeed or failed transaction.
In case of Successful Transaction, NSP provides the transactionid.
5. ERP
Receives transactionid from NSP/POS (See NSP's documentation for further information).
Already holds Provider Signature & Input. (2.SOFTONE IMPACT)
6. ERP
Issues the invoice.
Calls SOFTONE IMPACT's API (/invoice/json), including all invoice's information, like invoice number, payment methods, transactionid, provider signature, input etc.
7. SOFTONE IMPACT
Sends invoice to I.A.P.R.
Returns Response with I.A.P.R. info (MARK, UID, Auth.Code) & Signature
(Signature is needed for the creation of QR Code URL)
8. ERP
Stores invoice and runs other potential processes (if necessary).
Stores SOFTONE IMPACT's Response.
Parameters
Name | Description | Type | Location |
---|---|---|---|
APIKey | API Access Key | string | Header |
Authorization | Authorization Request | string | Header (Optional) |
Request JSON Body
{
"nspCode": "CommonWeb",
"issuerTin": "string",
"issueDate": "2024-03-23T19:49:29.201",
"branchCode": 0,
"invoiceTypeCode": "string",
"series": "string",
"identifier": "string",
"mark": null,
"paymentAmount": 0,
"totalNetAmount": 0,
"totalVatAmount": 0,
"totalAmount": 0,
"terminalId": "string",
"signatureDurationType": "H_24"
}
Data types of previous JSON model
Name | Type | Importance | Description |
---|---|---|---|
nspCode | string | Optional | Unique value for specific *NSP Provider |
issuerTin | string | Mandatory | Tin Issuer |
issuerDate | string | Mandatory | Date & Time |
branchCode | integer | Mandatory | Branch code regarding IAPR |
invoiceTypeCode | string | Mandatory | Invoice type code based on IAPR Documentation |
series | string | Mandatory | Series of invoice |
indentifier | string | Mandatory | Internal document ID or other unique ID |
mark | long number | Optional | Mark, in this field the value “null” should be added when there is no value in the field |
paymentAmount | number | Mandatory | Payment amount may be different from total amount in case of different payment methods |
totalNetAmount | number | Mandatory | |
totalVatAmount | number | Mandatory | |
totalAmount | number | Mandatory | Sum of Net & Vat amounts |
terminalid | string | Mandatory | Code of POS Terminal |
signatureDurationType | string "H_24, H_2" | Mandatory | Time expiration of provider signature, H_24 default value, H_2 for fnb |
Definitions
NSP Provider
1.
2.
3.
Amount Fields
SignatureDuration Time
Provider id
Responses
Code | Name | Media Type | Description |
---|---|---|---|
200 | Success | application/json | Returns the signatures |
400 | Bad Request | application/json | Message describing the status of the request |
401 | Unauthorized | application/json | Message describing unauthorized request |
{
"input":"1686345696C2FCC2B51FBA922E502A84C7021BBA;0;20240717103906;800;104;904;904;08104148",
"signature": "MEUCIQCeZ9pqqk8JQojdI26UH7+3biB5Nl6wgyE/21089FlXhAIgWLQBb34YauOXtqcnHo230/89Tqus6NRJTNSA0DlE40s=«
}
{
"success": true,
"message": "Message describing the status of the request"
}
11.1 JSON Sample
"Currency": "Euro",
"CurrencyCode": "EUR",
"InvoiceType": " ΑΠΟΔΕΙΞΗ ΛΙΑΝΙΚΗΣ ΠΩΛΗΣΗΣ",
"InvoiceTypeCode": "11.1",
"DocumentTypeCode": "INVOICE",
"IsDeliveryNote": false,
"Series": "ΑΛΠ",
"number": "3262789",
"dateIssued": "2025-01-15T13:33:43.845",
"OrderCode": "101",
"issuer": {
"registeredName": "Ταβέρνα Γ.",
"vat": "EL222222222",
"taxOffice": "ΔΟΥ ΣΤ ΑΘΗΝΩΝ",
"GeneralCommercialRegistryNumber": "2154697391",
"activities": [
"Ταβέρνα"
],
"address": {
"countryCode": "GR",
"city": "Αθήνα",
"street": "Αθήνας",
"number": "32",
"postal": "15342"
},
"phones": [
2109929299
],
"branchCode": 0,
"branch": "Κεντρικό κατάστημα"
},
"CounterParty": {
"RegisteredName": "ΠΕΛΑΤΗΣ ΛΙΑΝΙΚΗΣ",
"Vat": "",
"Address": {
"CountryCode": "GR",
"Municipality": "ΑΘΗΝΑ",
"City": "ΑΘΗΝΑ",
"Street": "Κηφισού",
"number": "32",
"Postal": "11000"
}
},
"AllowancesCharges": [],
"DistributionDetails": {
"InternalDocumentId": "internal12354665243"
},
"PaymentDetails": {
"PaymentMethods": [
{
"PaymentMethodType": "Credit Card",
"PaymentMethodTypeCode": 7,
"Amount": 124,
"tipAmount": 0,
"transactionId": "123ABCxyz456",
"providersSignature": "MEUCIAlZ5uyFejSUEiu1ENEAEgK7qEny/5bBNijYWkl8ki1Ajw9zR+Uopy3vcfHEEX7GTiHSac41KL3bQ91iW0=",
"posInput": "209E13AFE4E1DC02BEDA4BBEE08B6C5AEA4D9D94;;20240725162624;12400;10000;2400;12400;1258746",
"terminalId": "POS_1"
}
]
},
"AdditionalDetails": {
"AccountingDepartmentEmails": [
""
],
"TransmissionMethod": "A",
"AvoidEmailGrouping": false
},
"Details": [
{
"LineNo": 1,
"Descriptions": [
"Product"
],
"MeasurementUnitCode": 1,
"Quantity": 100,
"UnitPrice": 1.09,
"NetTotal": 109.73,
"VatCategory": "13",
"VatCategoryCode": 2,
"VATTotal": 14.27,
"Total": 124,
"IsInformative": false,
"IsHidden": false,
"RecordTypeCode": 0,
"IncomeClassification": {
"ClassificationTypeCode": "E3_561_003",
"ClassificationCategoryCode": "category1_1"
}
}
],
"Summaries": {
"TotalNetAmount": 109.73,
"TotalVATAmount": 14.27,
"TotalGrossValue": 124
},
"VatAnalysis": [
{
"Percentage": 13.0,
"VatAmount": 14.27,
"UnderlyingValue": 109.73
}
],
"IsDelayedCode": 0
}
DATA types of previous JSON Model
Name | Type | Importance | Description |
---|---|---|---|
paymentMethodTypeCode | object | Mandatory | Τhe details of the counterparty are entered in this object. It is NOT mandatory for these types of invoices |
PaymentMethodType | string | Mandatory | Payment Method description |
TransactionId | string | Mandatory | Unique payment Id (provided by *NSP) |
Contactless | boolean | Optional | Indicates if the payment is contactless |
PosInput | string | Mandatory | Unique payment Id (provided by Impact) |
TipAmount | number | Optional | Tip amount for the service |
providersSignature | string | Mandatory | Unique provider signature (provided by Impact) |
InternalDocumentId | string | Mandatory | It is a unique mandatory document number in the issuer’s system |
terminalId | string | Mandatory | Code of POS terminal |
3. Prepaid POS Payment 8.4 & 8.5
Creates invoice in status "Under Issuance" with payment method “7”
Calls SOFTONE IMPACT (/PosTransactions/signpos)
2. SOFTONE IMPACT
Return Response message (Response includes Provider Signature & input).
3. ERP
Receives & store Provider Signature
Call NSP (See NSP's documentation for further information).
4. NSP/POS
POS communicates with NSP & Acquirer.
Response message with information about succeed or failed transaction.
In case of Successful Transaction, NSP provides the transactionid.
In case of failure transaction, the flow starts from the beginning (1. ERP).
5. ERP
Receives transactionid from NSP/POS (See NSP's documentation for further information).
Already holds Provider Signature & Input. (2.SOFTONE IMPACT)
6. ERP
Issues the receipt (8.4 or 8.5).
Calls SOFTONE IMPACT's API (/invoice/json), including all invoice's information, like invoice number, payment methods, transactionid, provider signature, input etc.
7. SOFTONE IMPACT
Sends receipt to I.A.P.R.
Receives Response with IAPR info (MARK, UID, Auth. Code) & Signature (Signature is needed for the creation of Qr Code URL).
8. ERP
Stores document and SOFTONE IMPACT's response.
Issue debit/credit invoice and correlate the Receipt of POS Payment.
Create a Receipt of POS (8.4) or Create a POS Return Receipt (8.5)
8.4 JSON Sample
"currencyCode": "EUR",
"series": "AEPOS",
"number": "21",
"dateIssued": "2024-03-29T14:21:54.057",
"invoiceType": "Αποδειξη Είσπραξης POS",
"invoiceTypeCode": "8.4",
"documentTypeCode": "INVOICE",
"thirdPartyCollection": false,
"multipleConnectedMarks":[400001930202839],
"totalAmount": 124.00,
"issuer": {
"registeredName": "BEST SHOPPING A.E.",
"vat": "EL157448994",
"taxOffice": "ΔΟΥ ΣΤ ΑΘΗΝΩΝ",
"activities": [
"Πωλήσεις Οικιακών Συσκευών"],
"address": { "countryCode": "GR",
"city": "Athens",
"street": "Ομήρου 9",
"postal": "15342"},
"branchCode": 0,
"branch": "Κεντρικό κατάστημα",
"Bank": {
"bicCode": "PIRBGRAA",
"name": "Bank etc",
"vat": "158804022",
"branchCode": "PIRBGRAAXXX",
"branch": "Stadiou 20",
"account": "0025102580340",
"iban": "GR0800500256900025102580340",
"contactDetails": "Dimopoulos Costas",
"vatinid": "string",
"vatin": "string",
"swift": "string" }},
"counterParty": {
"registeredName": "ΕΠΙΧΕΙΡΙΣΗ",
"vat": "EL045794116",
"taxOffice": "ΔΟΥ ΣΤ ΑΘΗΝΩΝ",
"address": {
"countryCode": "GR",
"city": "Athens",
"street": "Ομήρου 9",
"postal": "15342" } },
"cardlines": [
{"lineNo": 1,
"amount": 124,
"tipAmount": 10,
"transactionId": null,
"providersSignature": null,
"posInput": null,
"terminalId": "POS_1",
"remarks": "some remarks",
"isInformative": false,
"isHidden": false,
"rrn": "30900820735",
"cardNumber": "**** *** **** *** 1234" }],
"AdditionalDetails": {
"AccountingDepartmentEmails": [],
"TransmissionMethod": "A",
"AvoidEmailGrouping": false },
"internalDocumentId": "InternalIdReceipt99",
"miscellaneousData": {
"moreInformation1": "string",
"moreInformation2": "string",
"moreInformation3": "string",
"comments1": "string",
"comments2": "string"},
"isDelayedCode": 0}
8.5 JSON Sample
{
"currency": "Euro",
"currencyCode": "EUR",
"series": "AEPOS",
"number": "76",
"dateIssued": "2024-03-29T14:21:54.057",
"invoiceType": "Αποδειξη Επιστροφής POS",
"invoiceTypeCode": "8.5",
"documentTypeCode": "INVOICE",
"totalAmount": 124.00,
"multipleConnectedMarks": [400001930202839
],
"thirdPartyCollection": false,
"issuer": {
"registeredName": "BEST SHOPPING A.E.",
"vat": "EL157448994",
"taxOffice": "ΔΟΥ ΣΤ ΑΘΗΝΩΝ",
"activities": [
"Πωλήσεις Οικιακών Συσκευών"
],
"address": {
"countryCode": "GR",
"city": "Athens",
"street": "Ομήρου 9",
"postal": "15342"
},
"branchCode": 0,
"branch": "Κεντρικό κατάστημα",
"Bank": {
"bicCode": "PIRBGRAA",
"name": "Bank etc",
"vat": "158804022",
"branchCode": "PIRBGRAAXXX",
"branch": "Stadiou 20",
"account": "0025102580340",
"iban": "GR0800500256900025102580340",
"contactDetails": "Dimopoulos Costas",
"vatinid": "string",
"vatin": "string",
"swift": "string"
}
},
"counterParty": {
"registeredName": "ΕΠΙΧΕΙΡΙΣΗ",
"vat": "EL045794116",
"taxOffice": "ΔΟΥ ΣΤ ΑΘΗΝΩΝ",
"address": {
"countryCode": "GR",
"city": "Athens",
"street": "Ομήρου 9",
"postal": "15342"
}
},
"cardlines": [
{
"lineNo": 1,
"amount": 124,
"tipAmount": 10,
"transactionId": null,
"providersSignature": null,
"posInput": null,
"terminalId": "POS_1",
"remarks": "some remarks",
"isInformative": false,
"isHidden": false,
"rrn": "30900820735",
"cardNumber": "**** *** **** *** 1234"
}
],
"AdditionalDetails": {
"AccountingDepartmentEmails": [],
"TransmissionMethod": "A",
"AvoidEmailGrouping": false
},
"internalDocumentId": "InternalIdReceipt56",
"miscellaneousData": {
"moreInformation1": "string",
"moreInformation2": "string",
"moreInformation3": "string",
"comments1": "string",
"comments2": "string"
},
"isDelayedCode": 0
}
11.1 JSON Sample correlated with Receipt
"Currency": "EURO",
"CurrencyCode": "EUR",
"InvoiceType": "ΑΠΟΔΕΙΞΗ ΛΙΑΝΙΚΗΣ ΠΩΛΗΣΗΣ",
"InvoiceTypeCode": "11.1",
"DocumentTypeCode": "INVOICE",
"Series": "ALPC",
"Number": "1111111",
"DateIssued": "2023-03-07T21:20:34",
"RelativeDocuments": [],
"multipleConnectedMarks": [
400001930202839
],
"Issuer": {
"RegisteredName": "FOOD COMPANY",
"Vat": "EL123456789",
"TaxOffice": "ΦΑΕ ΑΘΗΝΩΝ",
"Activities": [
"ΥΠΗΡΕΣΙΕΣ ΛΟΓΙΣΜΙΚΟΥ"
],
"GeneralCommercialRegistryNumber": "111111111",
"Address": {
"CountryCode": "GR",
"City": "ΑΘΗΝΑ",
"Street": "ΟΔΟΣ ΑΡΙΘΜΟΣ",
"Postal": "15124"
},
"Phones": [
"210 0000000"
],
"Url": "myurl.gr"
},
"CounterParty": {
"RegisteredName": "ΠΕΛΑΤΗΣ-ΛΙΑΝΙΚΗΣ",
"Phones": [
"6999999999"
],
"Address": {
"CountryCode": "GR",
"Municipality": "ΔΗΜΟΣ ΑΘΗΝΑΙΩΝ",
"City": "ΠΟΛΗ",
"Street": "ΟΔΟΣ ΑΡΙΘΜΟΣ",
"Postal": "11146"
},
"Code": "000000"
},
"DistributionDetails": {
"InternalDocumentId": "222222",
"totalQuantity": 1
},
"PaymentDetails": {
"PaymentMethods": [
{
"PaymentMethodType": "Credit",
"PaymentMethodTypeCode": 5,
"amount": 100.81
}
],
"PaymentDate": "2022-03-07T00:00:00",
"ExchangeCurrency": "EUR"
},
"additionalDetails": {
"accountingDepartmentEmails": [
"test@example.com"
],
"transmissionMethod": "E",
"documentTemplate": ""
},
"Details": [
{
"LineNo": 1,
"Code": "",
"Descriptions": [
"MILK"
],
"MeasurementUnit": "TMX",
"MeasurementUnitCode": 1,
"Quantity": 1.00,
"UnitPrice": 125.00,
"NetTotal": 100.81,
"Total": 125.00,
"AllowancesTotal": 0.00,
"VATTotal": 24.19,
"VatCategory": "24",
"VatCategoryCode": 1,
"IsInformative": false,
"IsHidden": false,
"RecordTypeCode": 0,
"IncomeClassification": {
"ClassificationTypeCode": "E3_561_003",
"ClassificationCategoryCode": "category1_2"
}
}
],
"Summaries": { //Συνοπτικά ποσά
"TotalNetAmount": 100.81,
"TotalVATAmount": 24.19,
"TotalGrossValue": 125.00,
"TotalCharges": 0.00,
"TotalPayableAmount": 125.00,
"AllowancesTotal": 0.00
},
"VatAnalysis": [ //Ανάλυση ΦΠΑ
{
"Percentage": 24.00,
"VatAmount": 67.74,
"UnderlyingValue": 282.26
}
],
"miscellaneousData": {
"moreInformation1": "Προαιρετικό πεδίο για σχόλια"
},
"IsDelayedCode": 0
}
DATA types of previous JSON Model
Name | Type | Importance | Description |
---|---|---|---|
CounterParty | object | Optional | Τhe details of the counterparty are entered in this object. It is NOT mandatory for these types of invoices |
Cardlines | object | Mandatory | Mandatory for POS Receipts, case of document 8.4, 8.5 - POS Receipt, POS Return Receipt |
TransactionId | string | Mandatory | Unique payment Id (provided by *NSP) |
Contactless | boolean | Optional | Indicates if the payment is contactless |
PosInput | string | Mandatory | Unique payment Id (provided by Impact) |
TipAmount | number | Optional | Tip amount for the service |
providersSignature | string | Mandatory | Unique provider signature (provided by Impact) |
InternalDocumentId | string | Mandatory | It is a unique mandatory document number in the issuer’s system |
terminalId | string | Mandatory | Code of POS terminal |
Bank | object | Optional | Contains information about issuer bank |
ThirdPartyCollection | boolean | Optional | Determines whether the business utilizing Payment Means as a Payment Service User collects on behalf of third parties |
4. Q&A
Real-Time Payment
All calls are recorded, and you can view them in the signatures section on the Portal. The same applies to the attempts to make a payment (e.g., the credit card has no balance, the credit card has expired). Every signpos call is logged.
In case the NSP does not support offline payment, payment via POS cannot be made, and the payment method must be changed.
Prepaid Payment
Modified at 2025-03-11 11:53:45