This is a description of SEQR SOAP-WS-API v2.6.0 for merchants.
Our test environment WSDL is available at: https://extdev.seqr.com/soap/merchant/cashregister-2?wsdl
Obtains status of a previously submitted invoice. When fetching the payment status, SEQR may communicate a set of customer tokens to the merchant that are applicable for the payment. The merchant must then decide which tokens are applied (such as for loyalty) and send them back with the updateInvoice request.
A principal is the main actor in each request to the SEQR service and represents either a seller or a buyer. Each request has at least an initiator principal.
The client Context structure is used in all requests to identify, authenticate and authorize the client initiating the transaction. For authentication the credentials of the initiator principal are used. As all transactions take place over a secure channel (typically HTTPS) the ClientContext is sent in clear text.
If no max-length is specified it is unlimited for strings.
ClientContext
Fields
Description
channel
The channel used to send a request. Always use ClientWS or
WS.
Type: string
Required: Y
Max-Length: 40
Sample value: ClientWS
clientComment
Client comment included within the request.
Type: string
Required: N
Max-Length: 80
Sample value: My comment
clientId
Client ID identifies the software which the SEQR service is
communicating with.
Type: string
Required: Y
Sample value: My POS Version 1.2.3
clientReference
The client reference for the transaction. Recommendation: the
clientReference should be unique at least for the specific clientId.
Note: SEQR service does not check this field. The field is mandatory
for troubleshooting purposes.
Type: string
Required: Y
Max-Length: 32
Sample value: my_invoice_1234567890
clientRequestTimeout
The client side timeout for the request. If the response is
not received before the timeout the client will attempt to abort the
request. Must be set to 0, so there will not be any client forced
timeouts in the SEQR service.
Type: long
Required: Y
Recommended value: 0
initiatorPrincipalId
Used for authentication of the principal. Contains subfields id, type and optional userId. Use RESELLERUSER type when
you register a new terminal with id provided from SEQR and userId with fixed value, otherwise use TERMINALID type with id provided from SEQR.
The password used to authenticate the initiator principal.
Type: string
Required: Y
Sample value: my_password
Invoice data
Invoice is used in sending, updating and receiving status on a payment. What you need to set is:
Invoice
Fields
Description
paymentMode
The mode of payment. For standard payments use IMMEDIATE_DEBIT. Modes RESERVATION_DESIRED / RESERVATION_REQUIRED / RESERVATION_REQUIRED_PRELIMINARY_AMOUNT are used in non-standard payments.
Type: string
Required: Y
Sample value: IMMEDIATE_DEBIT
acknowledgmentMode
Needs to be set to NO_ACKNOWLEDGMENT unless you provide loyalty flow.
Type: string
Required: Y
Sample value: NO_ACKNOWLEDGMENT
issueDate
The date of invoice submit.
Type: dateTime
Required: Y
Sample value: 2015-12-25T12:34:56
title
Title displayed on bill and receipt.
Type: string
Required: Y
Sample value: My Sample Store
clientInvoiceId
This invoice id refers to the identification number from the merchant's shop.
Time (in seconds) while merchant can make a commit of preliminary payment.
Type: long
Required: N
Sample value: 3600
InvoiceRow data
Used to present the payment in the app.
InvoiceRow
Fields
Description
itemDescription
Description of the item that was sold.
Type: string
Required: N
Sample value: Coca-Cola
itemDiscount
Total discount for listed products. Consists of a value (in pattern #.##) and a currency field. Use ISO standard currency signature of the country you are in.
Use the tax rate of your country (in integer format: ##).
Type: integer
Required: N
Sample value: 24
itemTotalAmount
Total value for listed products. Consists of a value (in format #.##) and a currency field. Use ISO standard currency signature of the country you are in.
Unit price for listed products. Consists of a value (in format #.##) and a currency field. Use ISO standard currency signature of the country you are in.
Invoice data which contains the amount and other invoice information. See invoice description.
tokens
The customer tokens applied to this invoice. Can be used for loyalty membership, coupons, etc.
Consists of following fields: description (that will be presented to a customer after scaning QR code),
id, value (such as card value, coupon code, etc.), status (0 - pending, 1 - used when updated by
merchant, 90 - blocked or 99 - invalid, unknown).
Note! The new token (e.g. name of loyalty card) must be added to SEQR system in advance.
Invoice data which contains the amount and other invoice information. See invoice description.
invoiceReference
The SEQR service reference of the registered invoice.
Type: string
Sample value: 1397240460668
tokens
The customer tokens applied to this invoice. Can be used for loyalty membership, coupons, etc.
Contains of: description (that will be presented to a customer after scaning QR code), id, value
(such as card value, coupon code, etc.), status (0 - pending, 1 - used when updated by merchant,
90 - blocked or 99 - invalid, unknown).
Note! The new token (e.g. name of loyalty card) must be added to SEQR system in advance.
Invoice data which contains the amount and other invoice information. See invoice description.
invoiceReference
The SEQR service reference of the registered invoice.
Type: string
Sample value: 1397240460668
invoiceVersion
Version of the invoice. The first time that it uses
getPaymentStatus method the client sets the invoiceVersion to zero.
The SEQR service increments the invoiceVersion in response message
when: the state of the payment status changes or a new buyer token is
provided to be considered in the invoice. In subsequent uses of the
getPaymentStatus method, the client must use the latest value of
invoiceVersion as an acknowledgement that it has received the latest
change.
Type: integer
Required: Y
Sample value: 0
getPaymentStatus SOAP response fields
getPaymentStatus response
Fields
Description
ersReference
The unique reference generated by the SEQR service once the invoice has been paid (null for all other invoiceStatus than PAID).
resultCode
Response result code.
Type: integer
Max-length: 2
Sample value: 0
resultDescription
A textual description of resultCode.
Type: string
Sample value: SUCCESS
status
Status of the invoice.
0 - pending usage (when sent from SEQR)
ISSUED - invoice is issued and waiting for payment
PAID - invoice is paid
PARTIALLY_PAID - invoice is partially paid
PENDING_ISSUER_ACKNOWLEDGE - payment is updated and waiting for issuer acknowledgement
CANCELED - invoice is canceled
FAILED - invoice payment has failed
RESERVED - invoice amount is reserved
Note! If getPaymentStatus is not queried within 20 seconds after a successful payment, SEQR will assume that
cash register is not notified of the successful payment and will reverse the transaction.
This method confirms that the payment has been acknowledged and adds a receipt from the point of sale as html. This receipt won’t appear in the app automatically.
Please contact us if you are interested in using a customized receipt in the app.
Reference of the payment for which the receipt is applicable.
Type: string
Sample value: 1397240460668
receiptDocument
Receipt document, containing the full details of the receipt (mimeType, receiptData, receiptType - all mandatory). Preferably in ARTS Receipt XML/HTML format.
Unique identifier of Glase user on partner’s (iGaming) platform. That Id has no meaning in any other contexts.Alphanumeric string up to 36 digits
description
N
optional string that will be visible on user’s receipt. If not specified we will apply default one i.e “Credit from Merchant” / “Withdrawal from iGaming”. It may be specific for given partner. Alphanumeric, dot and comma allowed - up to 160 characters.
Not always merchant’s have context of user’s country / language. We have such information so we can provide default description which is displayed in our clients language.
3. Currency
If currency will be different from currency of Glase user account we will make conversion.
The identifier of the terminal in the client system.
Type: string
Required: Y
Sample value: Store 111/Till 4
password
Password of the registered terminal for future communications with the SEQR service.
Type: string
Required: Y
Sample value: my_terminal_pass
name
The name to appear on the buyer’s mobile device.
Type: string
Required: Y
Sample value: My restaurant, cash register 2
registerTerminal SOAP response fields
registerTerminal response
Fields
Description
resultCode
Response result code.
Type: integer
Max-length: 2
Sample value: 0
resultDescription
A textual description of resultCode.
Type: string
Sample value: SUCCESS
ersReference
Not used, will be null.
terminalId
The newly generated unique identifier in SEQR system for this terminal. This identifier should be used in future communications of this terminal towards the SEQR service.
Note that this list points out the responses that are relevant, with the API request(s) that may issue the response. The other response codes are unrelevant but could occur in some cases.
Code
Description
Detailed description
Request that may issue this response
0
SUCCESS
Given operation ended successfully
All requests
20
AUTHENTICATION_FAILED
Wrong password
All requests
21
ACCESS_DENIED
Password assigned to terminalId is less than 4 characters
unregisterTerminal, sendInvoice, getPaymentStatus
23
INVALID_ERS_REFERENCE
Given ERS reference number cannot be found
refundPayment
29
INVALID_INITIATOR_ PRINCIPAL_ID
Given id for TERMINALID in initiatorPrincipalId cannot be found
All requests
37
INITIATOR_PRINCIPAL_ NOT_FOUND
Given id or userId for RESELLERUSER in initiatorPrincipalId section not found in Glase
All requests
49
INVALID_INVOICE_ DATA
For example wrong currency
sendInvoice, updateInvoice
50
CANNOT_CANCEL_PAID_ INVOICE
Invoice with given reference number has already been paid
cancelInvoice
51
CANNOT_CANCEL_INVOICE_ IN_PROGRESS
cancelInvoice
53
INVALID_SEQR_ID
Not alphanumeric string has been used or given glaseID has already been assigned to other terminal. Tip: use your own unique prefix for glaseID. Example mymerchantname31231231
assignSeqrId
54
INVALID_INVOICE_ REFERENCE
Invoice with given reference number can’t be found for given terminal id
getPaymentStatus
64
INVALID_NOTIFICATION_ URL
Not valid notificationUrl (e.g not starting with http://)
sendInvoice, updateInvoice, refundPayment
90
SYSTEM_ERROR
Unclassified errors
All requests
91
UNSUPPORTED_OPERATION
The method is not supported by the service
All requests
94
SERVICE_UNAVAILABLE
External backend system unavailable (e.g. Bank system)
All requests
95
INVOICE_ALREADY_CANCELED
Invoice with given reference number is already canceled through cancelInvoice call
cancelInvoice
96
INVOICE_STATE_NOT_RESERVED
The invoice state is not reserved for doing final or actual transaction