Es gibt zwei verschiedene Aktivierungsverfahren, je nach Art des eGoods-Produkts. - PP (PIN Printing) - Die Artikelnummer ist ausreichend. - POSA - Die Artikelnummer und die Serienummer ist erforderlich.

Beispielhaft die Daten zweier eGoods-Produkte:

PP:

{
    "object": "prepaid.items",
    "id": "PIT_XYZ",
    "itemgroup": {
        "object": "prepaid.itemgroups",
        "id": "PIG_XYZ",
        "description": "Vodafone",
        "logo": "https://connect.secucard.com/ds_g/6b7acdb0d9ec318a1a6934ef1b4413eec6f2d360",
        "enabled": true
    },
    "retail_price": 2500,
    "currency": "EUR",
    "description": "Vodafone 25€",
    "ean_intern": "439XXX",
    "type": "PP"
}

POSA:

{
    "object": "prepaid.items",
    "id": "PIT_XYZ",
    "itemgroup": {
        "object": "prepaid.itemgroups",
        "id": "PIG_XYZ",
        "description": "Amazon",
        "enabled": true
    },
    "retail_price": 2500,
    "currency": "EUR",
    "description": "Amazon 25€",
    "ean_intern": "426XXX",
    "type": "POSA"
}

Um die eGoods-Produkte zu aktivieren, müssen sie als Produkt in den Warenkorb einer SMART Transaktion gelegt und anschließend die SMART Transaktion gestartet werden. Die Seriennummer des eGoods-Produkts befindet sich auf der Karte.

JAVA-SDK

TransactionService transactions = client.service(Smart.Transactions);

Basket basket = new Basket();
BasketInfo basketInfo = new BasketInfo(0, "EUR");

// Add products to the basket and update.
Product p = new Product();
p.setId(1);
p.setEan("426XXX");
 
// If the eGoods item has the type POSA then you need to set the value for serial number
p.setSerialNumber("56XXX");
 
p.setQuantity(new BigDecimal(1));
p.setDesc("Amazon 25");
p.setPriceOne(2500);

basket.addProduct(p);
basketInfo.setSum(2500);
Transaction trans = transactions.create(new Transaction(basketInfo, basket, null));

// cash, cashless - Payment method
String type = TransactionService.TYPE_CASH;

trans = transactions.start(trans.getId(), type, null);

Response

{
    "object": "smart.transactions",
    "id": "STX_XYZ",
    "merchant": {
        "object": "general.merchants",
        "id": "MRC_XYZ"
    },
    "store": {
        "object": "general.stores",
        "id": "STO_XYZ"
    },
    "device_source": {
        "object": "smart.devices",
        "id": "SDV_XYZ"
    },
    "created": "2017-11-15T09:31:51+01:00",
    "updated": "2017-11-15T09:31:52+01:00",
    "status": "ok",
    "basket": {
        "products": [
            {
                "id": 1,
                "serialNumber": "56XXX",
                "ean": "426XXX",
                "desc": "Amazon 25 Euro",
                "quantity": 1,
                "priceOne": 2500
            }
        ]
    },
    "basket_info": {
        "sum": 2500,
        "currency": "EUR"
    }
}

Weiterhin befindet sich im Ergebnis von transactions.start() der Belegtext, in dem weitere Anweisungen für den Endkunden stehen.