Skip to content

MDB: events ​

Complete reference. The signature is a listener argument tuple, not a wrapper object.

mdbCardHolder:wrong-cmd ​

The device rejected a command format; opcodeName identifies the command.

ts
type Arguments = [
    data: {
      opcodeName: string;
      opcode: number;
      params: string[];
    }
  ];
ts
jsd.on('mdbCardHolder:wrong-cmd', payload => console.log(payload));

mdbCardHolder:jsd-license-error ​

A licensing or price-control restriction rejected the operation.

ts
type Arguments = [
    data: {
      type: 'unknown' | 'expired-license' | 'app-number-not-licensed' | 'price-control-active-direct-dispense-not-allowed';
      opcode: number;
      actionName: string;
      params: string[];
    }
  ];
ts
jsd.on('mdbCardHolder:jsd-license-error', payload => console.log(payload));

mdbCardHolder:condition-status ​

MDB connection and card-holder operating state.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      connectionStatus: MdbConnectionStatus;
      cardHolderStatus: MdbCardHolderStatus;
    }
  ];
ts
jsd.on('mdbCardHolder:condition-status', payload => console.log(payload));

mdbCardHolder:identification ​

Device identification fields returned by this application.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      manufacturerCode: string;
      serialNumber: string;
      model: string;
      softwareVersion: string;
    }
  ];
ts
jsd.on('mdbCardHolder:identification', payload => console.log(payload));

mdbCardHolder:configuration-data ​

Currency code and supported card-holder capabilities.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      countryCurrencyCode: string;
      canReloadFunds: boolean;
      canRestoreFunds: boolean;
      canMakeMultipleSales: boolean;
      hasDisplay: boolean;
      canRecorCashSales: boolean;
    }
  ];
ts
jsd.on('mdbCardHolder:configuration-data', payload => console.log(payload));

mdbCardHolder:feature-configuration ​

Availability and enabled state of always-idle and remote-vend features.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      alwaysIdle: {
        available: boolean;
        enabled: boolean;
      };
      remoteVend: {
        available: boolean;
        enabled: boolean;
      };
    }
  ];
ts
jsd.on('mdbCardHolder:feature-configuration', payload => console.log(payload));

mdbCardHolder:authorization ​

MDB authorization result and optional failure reason.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      success: boolean;
      reason: string | null;
    }
  ];
ts
jsd.on('mdbCardHolder:authorization', payload => console.log(payload));

mdbCardHolder:balance-statement ​

Customer balance, recharge ceiling, payment method, and card group.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      tokenBalanceStatus: 'idle' | 'active';
      customerBalance: number;
      maxCardRecharge: number;
      paymentMethod: {
        isKnown: boolean;
        id: string | null;
      };
      groupWhichCardBelongs: string;
    }
  ];
ts
jsd.on('mdbCardHolder:balance-statement', payload => console.log(payload));

mdbCardHolder:sale-approval ​

Sale approval or denial; optional charged amount and current state.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: MdbCardSaleApprovalStatus;
      currentCardHolderStatus?: MdbCardHolderStatus | null;
      amountCharged?: number;
    }
  ];
ts
jsd.on('mdbCardHolder:sale-approval', payload => console.log(payload));

mdbCardHolder:sale-cancellation ​

Sale cancellation result.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: 'success' | 'failure';
      currentCardHolderStatus?: MdbCardHolderStatus | null;
    }
  ];
ts
jsd.on('mdbCardHolder:sale-cancellation', payload => console.log(payload));

mdbCardHolder:sale-success-confirmation ​

Result of confirming a successful vend to the card holder.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: MdbCardSaleSuccessStatus;
      currentCardHolderStatus?: MdbCardHolderStatus | null;
    }
  ];
ts
jsd.on('mdbCardHolder:sale-success-confirmation', payload => console.log(payload));

mdbCardHolder:sale-failure-confirmation ​

Result of reporting a failed vend and its refund.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: MdbCardSaleFailureStatus;
      currentCardHolderStatus?: MdbCardHolderStatus | null;
    }
  ];
ts
jsd.on('mdbCardHolder:sale-failure-confirmation', payload => console.log(payload));

mdbCardHolder:end-session ​

MDB session termination response.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: MdbCardEndSession;
      currentCardHolderStatus?: MdbCardHolderStatus | null;
    }
  ];
ts
jsd.on('mdbCardHolder:end-session', payload => console.log(payload));

mdbCardHolder:selection-request ​

Customer/product selection request, balance, and product options.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      tokenBalanceStatus: 'idle' | 'active';
      customerBalance: number;
      paymentMethod: {
        isKnown: boolean;
        id: string | null;
      };
      product: {
        id: number | null;
        withLid: boolean;
        sugarLevel: MdbCardProductOptions;
      };
    }
  ];
ts
jsd.on('mdbCardHolder:selection-request', payload => console.log(payload));

mdbCardHolder:revalue ​

Card balance reload approval or denial.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: MdbCardRevalueStatus;
      currentCardHolderStatus?: MdbCardHolderStatus | null;
    }
  ];
ts
jsd.on('mdbCardHolder:revalue', payload => console.log(payload));

mdbCardHolder:display-message ​

Two-line display message and requested display duration.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      displayTimeSeconds: number;
      message: {
        line1: string;
        line2: string;
      };
    }
  ];
ts
jsd.on('mdbCardHolder:display-message', payload => console.log(payload));

Aliases used in these signatures are defined in reference types.

Explicit protocol, typed events, isolated transport.