In our example we will:
- update the basket (
basket/products
); - add a secucard (
idents
); - add a customer reference (
merchantRef
); - add an order ID (
transactionRef
).
You can change the Smart Transaction as long as the payment has not been executed. The endpoint for doing this is PUT /api/v2/Smart/Transactions/{id}
.
You need to send the full Smart Transaction with your modifications.
PUT /api/v2/Smart/Transactions/STX_KJXJDUN542NR3WMRHRVU5WWM6ZQEA2 HTTP/1.1
Host: connect-testing.secuconnect.com
Authenticate: Bearer qb56tjj1bcvo9n2nj4u38k84lo
Content-Type: application/json
Accept: application/json
{
"idents"
: [
{
"type"
:
"card"
,
"value"
:
"9276004429942845"
}
],
"basket"
: {
"products"
: [
{
"id"
: 1,
"parent"
:
null
,
"articleNumber"
: 30037,
"ean"
:
null
,
"desc"
:
"Sandwich Romano"
,
"quantity"
: 1,
"priceOne"
: 349,
"tax"
: 7
},
{
"id"
: 2,
"parent"
:
null
,
"articleNumber"
: 30200,
"ean"
:
null
,
"desc"
:
"Fruit salad, small bowl"
,
"quantity"
: 1,
"priceOne"
: 249,
"tax"
: 7
},
{
"id"
: 3,
"parent"
:
null
,
"articleNumber"
: 51,
"ean"
:
"4999012345678"
,
"desc"
:
"Water, mildly sprinkling, 0.25 ltr."
,
"quantity"
: 2,
"priceOne"
: 99,
"tax"
: 19
}
]
},
"basket_info"
: {
"sum"
: 796,
"currency"
:
"EUR"
},
"merchantRef"
:
"customer nr. 123"
,
"transactionRef"
:
"order nr. 123"
}
This creates a Smart Transaction about €7.96. The gross unit prices of the articles in the basket are €3.49, €2.49 and €0.99.
Monetary amounts are expressed in the smallest currency unit (e. g. Euro Cent). The same applies to the card details in the response.
Successful response:
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"object"
:
"smart.transactions"
,
"id"
:
"STX_KJXJDUN542NR3WMRHRVU5WWM6ZQEA2"
,
"merchant"
: {
"object"
:
"general.merchants"
,
"id"
:
"MRC_35SZ3R5GGQQP4T0U2T5GFAN9P6C4PG"
,
"companyname"
:
"John's Bakery"
},
"created"
:
"2020-09-17T09:18:14+02:00"
,
"status"
:
"created"
,
// ...
"merchantRef"
:
"customer nr. 123"
,
"transactionRef"
:
"order nr. 123"
,
"basket"
: {
"products"
: [
{
"id"
: 1,
"parent"
:
null
,
"articleNumber"
: 30037,
"ean"
:
null
,
"desc"
:
"Sandwich Romano"
,
"quantity"
: 1,
"priceOne"
: 349,
"tax"
: 7,
// ...
},
{
"id"
: 2,
"parent"
:
null
,
"articleNumber"
: 30200,
"ean"
:
null
,
"desc"
:
"Fruit salad, small bowl"
,
"quantity"
: 1,
"priceOne"
: 249,
"tax"
: 7,
// ...
}
{
"id"
: 3,
"parent"
:
null
,
"articleNumber"
: 51,
"ean"
:
"4999012345678"
,
"desc"
:
"Water, mildly sprinkling, 0.25 ltr."
,
"quantity"
: 2,
"priceOne"
: 99,
"tax"
: 19,
// ...
}
],
// ...
},
"basket_info"
: {
"sum"
: 796,
"currency"
:
"EUR"
,
// ...
},
"idents"
: [
{
"object"
:
"smart.idents"
,
"id"
:
"smi_1"
,
"prefix"
:
"9276"
,
"name"
:
"secucard Kundenkarte"
,
"type"
:
"card"
,
"value"
:
"9276004429942845"
,
"valid"
:
true
,
"merchantcard"
: {
"object"
:
"loyalty.merchantcards"
,
"id"
:
"MCD_2RXTNXPRM2YG9922UMBHHAEWEGN6AJ"
,
"merchant"
: {
"object"
:
"general.merchants"
,
"id"
:
"MRC_35SZ3R5GGQQP4T0U2T5GFAN9P6C4PG"
},
"created_for_merchant"
: {
"object"
:
"general.merchants"
,
"id"
:
"MRC_35SZ3R5GGQQP4T0U2T5GFAN9P6C4PG"
},
"card"
: {
"object"
:
"loyalty.cards"
,
"id"
:
"CRD_2U7MTNAMM3PMBPAB50C9G2AEHA9GPJ"
,
"cardnumber"
:
"9276004429942845"
,
"created"
:
"2015-09-28T16:01:20+02:00"
},
"cardgroup"
: {
"object"
:
"loyalty.cardgroups"
,
"id"
:
"CRG_2BESGJNETJJRZVVYS8R7JWGVWK4PRZ"
,
"display_name"
:
"Geschenkgutschein"
,
"display_name_raw"
:
"Geschenkgutschein"
,
"stock_warn_limit"
: 0,
"picture"
:
"https://connect.secucard.com/ds_g/8e79737df1e2513db48908b342c3cc436edf501a"
},
"created_for_store"
: {
"object"
:
"general.stores"
,
"id"
:
"STO_2ZCZRU9V6U8QA7B49K94667UP6C4PJ"
},
"customer"
: {
"object"
:
"loyalty.customers"
,
"id"
:
"CUS_2YBREKK0A2MNAXJ752TSDD9DH3PKAJ"
,
"contact"
: {
"name"
:
"Max Mustermann"
,
"forename"
:
"Max"
,
"surname"
:
"Mustermann"
,
"dob"
:
"1981-02-14T00:00:00+00:00"
},
"created"
:
"2018-05-03T10:14:06+02:00"
,
"consent_for_communication"
:
true
},
"is_base_card"
:
true
,
"points"
: 0,
"cash_balance"
: 500,
"bonus_balance"
: 0,
"balance"
: 500,
"last_usage"
:
"2020-03-17T07:22:36+01:00"
,
"last_charge"
:
"2019-12-10T12:56:08+01:00"
,
"stock_status"
:
"active"
,
"lock_status"
:
"unlocked"
,
"passcode"
: 0,
"expiry_date"
:
null
},
"customer"
: {
"object"
:
"loyalty.customers"
,
"id"
:
"CUS_2YBREKK0A2MNAXJ752TSDD9DH3PKAJ"
,
"contact"
: {
"name"
:
"Max Mustermann"
,
"forename"
:
"Max"
,
"surname"
:
"Mustermann"
,
"dob"
:
"2018-02-14T00:00:00+00:00"
},
"created"
:
"2018-05-03T10:14:06+02:00"
,
"consent_for_communication"
:
true
}
}
],
"is_demo"
:
true
,
// ...
}
As you see, the secucard is recognized.
Here a subsection taken from the Merchant Card details:
{
// ...
"points"
: 12,
"cash_balance"
: 500,
"bonus_balance"
: 0,
"balance"
: 500,
"last_usage"
:
"2020-03-17T07:22:36+01:00"
,
"last_charge"
:
"2019-12-10T12:56:08+01:00"
,
"stock_status"
:
"active"
,
"lock_status"
:
"unlocked"
,
"passcode"
: 0
}
And here the explanation:
Field | Description |
---|---|
| Money credit reveived for payment |
| Money credit received as bonus for a former buy |
| Total money credit (cash and bonus balance can be spent the same time) |
| Life cycle of the card:
|
|
|
| Whether you have to check the passcode before the card is used:
|
All money amounts are expressed in the smallest currency unit (e. g. Euro Cent).
This means, applied to our example:
- There is €5.00 of money balance received for a payment.
- There is no money balance received as a bonus for a former buy.
- The buyer can pay €5.00 using this card.
- There are also a few bonus points.
- The card can be used. It is active, and there are no locks.
- You don't need to bother the buyer with the card passcode (card security code).
The above means, you can use the card balance for the next payment. But the customer can also save it for later. Read more on this in the section about how to carry out the payment.