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.
Type: string
Required: Y
Samples below:
password
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.
Value type: decimal
Currency type: string
Required: N
Sample below:
itemEAN
Product EAN.
Type: string
Required: N
Sample value: 0076232342123
itemQuantity
Should be 1 or more.
Type: decimal
Required: Y
Sample value: 2
itemSKU
Product SKU.
Type: string
Required: N
Sample value: 12345-A
itemTaxRate
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.
Value type: decimal
Currency type: string
Required: Y
Sample below:
itemUnit
Use the type of unit based on ISO-20022.
Type: string
Required: N
Sample value: kg
itemUnitPrice
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.
Value type: decimal
Currency type: string
Required: N
Sample below:
Receipt data
Used to receipt information after payment.
Receipt
Fields
Description
terminalId
The name of the registered terminal.
Type: string
Sample value: my_terminal
paymentDate
The date of the payment.
Type: dateTime
Sample value: 2015-10-29T10:18:48.663+01:00
invoiceReference
The SEQR service reference to the registered invoice.
Type: string
Sample value: 20151029186719114
paymentReference
The SEQR service reference to the registered payment.
Type: string
Sample value: 2015102910184861801032678
payerTerminalId
The id of the terminal registered in SEQR system.
Type: string
Sample value: d613c5b8428d17248751bc101
receiverName
The name of the receiver.
Type: string
invoice
Invoice data which contains the amount and other invoice information. See invoice description.
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.
Description type: string
Id type: string
Value type: string
Status type: integer
Required: N
Sample below (zero or more repetitions):
sendInvoice SOAP response fields
sendInvoice response
Fields
Description
resultCode
Response result code.
Type: integer
Max-length: 2
Sample value: 0
invoiceQRCode
SEQR generated QR Code (used for webshops; not relevant for points of sale).
Type: string
Sample value: HTTP://SEQR.SE/R1397240460668
resultDescription
A textual description of the resultCode.
Type: string
Sample value: SUCCESS
invoiceReference
The SEQR service reference to the registered invoice. This is the invoice reference
a merchant should use within getPaymentStatus.
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.
Invoice data which contains the amount and other invoice information. See invoice description.
refundPayment SOAP response fields
refundPayment 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
Reference to the payment that is refunded.
refundPayment SOAP request example
refundPayment SOAP response example
creditUser
creditUser SOAP request field
Parameter name
Required
Description
userId
Y
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.
You can find it (value) in getPaymentStatusResponse for payment of specific user
2.Description
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.
Type: string
Sample value: 87e791f9e24148a6892c52aa85bb0331
registerTerminal SOAP request example
registerTerminal SOAP response example
unregisterTerminal
unregisterTerminal SOAP request fields
unregisterTerminal request
Fields
Description
context
Request context information. See context description. Contains terminalId of the terminal to deregister.
unregisterTerminal SOAP response fields
unregisterTerminal 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.
unregisterTerminal SOAP request example
unregisterTerminal SOAP response example
assingSeqrId
assignSeqrId SOAP request fields
assignSeqrId request
Fields
Description
context
Request context information. See context description. The terminalId within is the terminal to which assign seqrId.
seqrId
An alphanumeric code to assign to a terminal (POS). It is used to generate a static QR code.
The identifier of the report that should be executed/produced.
Type: string
Required: Y
Sample value: SOME_REPORT
language
The report language (null if the default language is to be used).
Type: string
parameters
An optional key-value parameter map that can be used in processing the request.
Sample value: see markTransactionPeriod request per terminal reconciliation example above.
executeReport SOAP response fields
executeReport 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
report
The executed/produced report, in binary and plain text form, if available. Consists of: content, contentString, mimeType, title.
Content type: base64Binary
ContentString type: string
MimeType type: string
Title type: string
Sample: see response example below.
executeReport SOAP request example
executeReport SOAP response example
Result codes
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