Step 2: Create the Smart Transaction

The endpoint to create a Smart Transaction is POST /api/v2/Smart/Transactions. In this first example, we pass the complete basket and the idents from the beginning:

Request
POST /api/v2/Smart/Transactions HTTP/1.1
Host: connect-testing.secupay-ag.de
Authenticate: Bearer qb56tjj1bcvo9n2nj4u38k84lo
Content-Type: application/json
Accept: application/json
 
{
"is_demo": true,
"idents": [
{
"type": "card",
"value": "9276004429942845"
}
],
"basket": {
"products": [
{
"id": 1,
"articleNumber": 30037,
"desc": "Sandwich Romano",
"quantity": 1,
"priceOne": 349,
"tax": 7
},
{
"id": 2,
"articleNumber": 30200,
"desc": "Fruit salad, small bowl",
"quantity": 1,
"priceOne": 249,
"tax": 7
},
{
"id": 3,
"articleNumber": 51,
"ean": "4999012345678",
"desc": "Water, mildly sprinkling, 0.25 ltr.",
"quantity": 2,
"priceOne": 99,
"tax": 19
}
]
},
"basket_info": {
"sum": 796,
"currency": "EUR"
}
}

This creates a Smart Transaction about €7.96. The unit prices of the articles are €3.49, €2.49 and €0.99.

Monetary amounts are expressed in the smallest currency unit (e. g. Euro Cent). The same is true for the card balances in the response.

If everything is fine, the API responds with 200 OK and the representation of the Smart Transaction:

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",
// ...
"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,
// ...
}

The request contains a number of additional data, obtained from our system.

As you see, the card was found, and there is a balance of €5.00 to spend (balance at line 102).

There is no necessity to check the security code ("passcode": 0 at line 107). So we can go straight ahead.