Step 4: Capture the Payment

Since there is something to pay, there is an ECR payment. It can be made with cash, by card or whatever you accept yourself. When this is done, you need to tell the API that the payment took place, so that the card balance is used for the remainder.

The endpoint for this is POST /api/v2/Smart/Transactions/{id}/start/cash. It is always /start/cash when the merchant conducts an ECR payment without secupay.

Request
POST /api/v2/Smart/Transactions/STX_KJXJDUN542NR3WMRHRVU5WWM6ZQEA2/start/cash HTTP/1.1
Host: connect-testing.secupay-ag.de
Authenticate: Bearer qb56tjj1bcvo9n2nj4u38k84lo
Accept: application/json

If everything is OK, 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"
},
"device_source": {
"object": "smart.devices",
"id": "SDV_2YJDXYESB2YBHECVB5GQGSYPNM8UA6"
},
"transactions": [
{
"object": "loyalty.transactions",
"id": "LTX_YBYPUETZ2HQXURG9XU0M5H4KGWW0NH"
}
],
"created": "2020-09-17T09:18:14+02:00",
"updated": "2020-09-17T09:43:59+02:00",
"status": "ok",
"merchantRef": null,
"transactionRef": null,
"intent": null,
"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,
// ...
}
],
// ...
},
"receipt": [
{
"type": "separator",
"value": {
"caption": "Kundenkarte"
}
},
{
"type": "name-value",
"value": {
"name": "Kartennummer:",
"value": "9276004429942845",
"decoration": []
}
},
{
"type": "name-value",
"value": {
"name": "TA Code:",
"value": "29008410",
"decoration": []
}
},
{
"type": "space"
},
// ...
],
"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": 0,
"bonus_balance": 0,
"balance": 0,
"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
}
}
],
"payment_method": "cash",
"trans_id": "29008411",
"is_demo": true,
// ...
}

Most important is, that you have received HTTP status 200, and "status": "ok". The payment was registered, and the card credit was used.

The node /transactions holds the tranactions. There is only a Loyalty Transaction, since there is no card payment processed by secupay here.

The node /receipt holds an array of receipt lines that shall be printed by the ECR.