Articles on: Automation & API's

How to integrate my POS system via the API?

How to integrate my POS system via the API?



General overview;



Each coupon or voucher has a unique ID:

Example: https://digicpn.com/p/abcdef/abcdefghijklmn

Summary:
abcdef = campaign_id
abcdefghijklmn = session_id

The platform is able to display the unique session_id as a barcode in any format.
Read here to see all our available barcode formats.


How to develop the integration on the POS side:



1) the cashier will scan the barcode or enters the session_id manually.
In our example here the session_id, barcode value equals kkfiznr8Yp8630h82es8d

2) the pos will lookup the session_id with the API:
https://docs.coupontools.com/api/coupon#get-session

Response:
{

	"status": {
		"status": "OK"
	},
	"campaign": "cam_12345",
	"action": "retrieve_all_session_data",
	"session": "kkfiznr8Yp8630h82es8d,"
	"session_url": "https://digicpn.com/p/v6n7gn/kkfiznr8Yp8630h82es8d",
	"sequenceid": "19878460",
	"customid": "",
	"data": {
		"status": {
			"created_date_utc": "2019-03-25 10:43:50",
			"opened": "0",
			"open_date_utc": "",
			"played": "0",
			"played_date_utc": "",
			"claimed": "1",
			"claim_date_utc": "2019-03-25 10:44:05",
			"claimtype": "",
			"saved_to_passbook": "0",
			"saved_to_passbook_date_utc": "",
			"saved_to_androidpay": "0",
			"saved_to_androidpay_date_utc": "",
			"validated": "0",
			"validation_date_utc": "",
			"own_validation_code": "ding_COdHepKvqNrNC8OU",
			"validation_value": "",
			"redeem_location_ID": "",
			"voided": "0",
			"unvoided_date_utc": "2019-03-25 10:44:05",
			"locked": "0",
			"unlocked_date_utc": "",
			"value": "",
			"customid": "",
			"expiration_date": "2019-03-02 02:00:00",
			"utm_campaign": null,
			"utm_source": null,
			"utm_medium": null,
			"utm_term": null,
			"utm_content": null,
			"redeem_location_company_name": "Show",
			"redeem_location_street": "street",
			"redeem_location_zip": "",
			"redeem_location_city": "Foo",
			"redeem_location_province": "Bar",
			"redeem_location_country": "Baz",
			"redeem_location_phone": "",
			"redeem_location_website": "https://www.coupontools.com",
			"redeem_location_pincode": "aSQbSs"
		},
		"user": {
			"gender": "Male",
			"first_name": "John",
			"last_name": "Johnson",
			"address": "Wallstreet 1",
			"zip": "10000",
			"city": "New York",
			"birthday": "1970-01-01",
			"email": "info@mymailbox.com",
			"phone": "1234567890",
			"answer": "yes",
			"custom1": "A",
			"custom2": "B",
			"custom3": "C",
			"custom4": "D",
			"custom5": "E",
			"custom6": "F",
			"custom7": "G",
			"customid": "1A2B",
			"checkbox1": "1",
			"checkbox2": "0",
			"checkbox3": "1",
			"checkbox4": "0",
			"device": "Windows",
			"profile_picture": "",
			"ip_lat": "",
			"ip_long": ""
		},
		"campaign": {
			"ID": "cam_1010951",
			"code": "v6n7gn",
			"url": "https://digicpn.com/p/v6n7gn",
			"status": "test",
			"coupon_tags": ""
		}
	}
}


Possible errors
200: Missing parameter: couponsession
300: Invalid character in parameter: couponsession
513: Coupon session not found

In case the coupon session was found the POS knows the status:

"validated": "0"


In case the session was already used (validated=1) the POS can give an notification in the POS "The coupon or voucher $$sessionid was already used at $$validation_date_utc"
In case the session was not used the POS knows the discount value. This can be saved in either value field or in the custom fields.

OPTIONAL STEP: temporary LOCK a coupon/voucher



With the UPDATE session endpoint the POS can set the coupon as LOCKED during check-out before validation.
https://docs.coupontools.com/api/coupon#update-session
If you use the locked step you need to verify the locked status also in the first lookup step.

FINAL STEP: validation of the coupon/voucher



With the UPDATE session endpoint the POS can mark the coupon as used by sending the "validate" command.
https://docs.coupontools.com/api/coupon#update-session

Note:
There is an optional fields to use at validation:

money_spent
Money spent (Format: 0.000)

It allows the POS to store the total money spent value at checkout for reporting in Coupontools.

Updated on: 21/02/2024

Was this article helpful?

Share your feedback

Cancel

Thank you!