7.21 PaymentCashlessDeviceType definition
7.21.1 Overview
The PaymentCashlessDeviceType provides information about a cashless payment taking for example credit cards. It is formally defined in Table 67.
7.21.2 ObjectType definition
| Attribute | Value | ||||
| BrowseName | PaymentCashlessDeviceType | ||||
| IsAbstract | False | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of the StandalonePaymentDeviceType | |||||
| 0:HasComponent | Variable | UserId | 0:String | 0:BaseDataVariableType | M |
| 0:HasProperty | Variable | MaxRecharge | PriceDataType | 0:PropertyType | M |
| 0:HasComponent | Variable | CurrentContentOnCard | PriceDataType | 0:BaseDataVariableType | M |
| 0:HasComponent | Variable | ApproveStatus | OperationStatusEnum | 0:BaseDataVariableType | M |
| 0:HasComponent | Method | Approve | M | ||
| 0:HasComponent | Method | CancelApproval | M | ||
| 0:HasComponent | Variable | RechargeStatus | OperationStatusEnum | 0:BaseDataVariableType | O |
| 0:HasComponent | Method | Recharge | O | ||
| 0:HasComponent | Variable | RefundLastStatus | OperationStatusEnum | 0:BaseDataVariableType | M |
| 0:HasComponent | Method | RefundLast | M | ||
| 0:HasComponent | Variable | IsEnabled | 0:Boolean | 0:BaseDataVariableType | M |
| 0:HasComponent | Method | EnableOrDisable | M | ||
| 7Conformance Units | |||||
|---|---|---|---|---|---|
| UnattendedRetail PaymentDevice Cashless | |||||
The UserId Variable indicates the UserId associated with the card or other identification used for the cashless payment device. If the UserId is null or an empty string, it implies that there is currently nothing associated to the cashless payment device and neither money can be taken nor recharged.
The MaxRecharge Variable indicates how much money can be recharged to the account of the current UserId. Null or an amount of 0 indicates that no recharge functionality is available.
The CurrentContentOnCard Variable indicates how much money can currently be used. This may be the amount on a rechargeable card, or a fixed value already pre-charged from a credit card. A null value indicates that the amount is unknown. When no UserId is available, the CurrentContentOnCard shall be null.
The ApproveStatus Variable indicates the status of the last call of the Approve Method (see 7.21.4). The DataType is defined in 8.26. The CancelApproval Method (see 7.21.5) may be called while the approval is still ongoing to cancel the approval and thereby effecting the ApproveStatus.
The optional RechargeStatus Variable indicates the status of the last call of the optional Recharge Method (see 7.21.6). The DataType is defined in 8.26.
The RefundLastStatus Variable indicates the status of the last call of the RefundLast Method (see 7.21.7). The DataType is defined in 8.26.
The IsEnabled Variable indicates if the cashless payment device is enabled ("true") or disabled ("false"). When the payment device is disabled, the Approve, Recharge and RefundLast Methods will fail. IsEnabled can be changed by calling the EnableOrDisable Method.
7.21.3 Relation to MDB / ICP state for cashless devices
MDB / ICP defines several states for cashless devices. How to receive this information from the PaymentCashlessDeviceType is described in the following.
| MDB / ICP state | Status (Available, Offline, OutOfOrder) | IsEnabled (true, false) | UserId (empty, value) | ApproveStatus (Idle, Ongoing, SuccessfullyFinished, Failed) | RechargeStatus (Idle, Ongoing, SuccessfullyFinished, Failed) | RefundLastStatus (Idle, Ongoing, SuccessfullyFinished, Failed) |
|---|---|---|---|---|---|---|
| Inactive | Offline, OutOfOrder | - | - | - | - | - |
| Disabled | Available | false | - | - | - | - |
| Enabled | Available | true | empty | - | - | - |
| Session Idle | Available | true | value | Not Ongoing | Not Ongoing | Not Ongoing |
| Vend | Available | true | value | Ongoing | Not Ongoing | Not Ongoing |
| Revalue | Available | true | value | Not Ongoing | One of them in Ongoing, the other not Ongoing. | |
| Negative Vend | Not addressed in this version of the specification | |||||
7.21.4 Approve Method
The Approve Method is charging money from an account associated to the current UserId. It may also check if it is allowed to sell the selection to the user (e.g., based on age restrictions).
If the execution of the Method cannot be done due to some application logic, the Method should return an Uncertain StatusCode and provide details of the failure in the Status output Argument. When the Method returns an Uncertain StatusCode, the Method is considered to be failed.
If the Method returns successful, it does not indicate, that the approve has been completed successful. Clients need to access the ApproveStatus Variable to get the information, if the approve successfully finished.
The signature of this Method is specified below. Table 69 and Table 70 specify the Arguments and AddressSpace representation, respectively.
Signature
Approve (
[in] PriceDataType Value,
[in] 0:String UserId,
[in] SelectionDataType Selection,
[out] 0:Int32 Status);| Argument | Description |
| Value | The value to be approved and charged from the account of the UserId. |
| UserId | The UserId where the Value should be charged from the associated account. |
| Selection | Selection used to be bought. May be needed to check if selling the selection to the user is allowed (e.g., due to age restrictions). |
| Status | Status of the execution of the method. If issues occurred during execution. 0 = Execution was successful. -1 = Invalid UserId - UserId unknown -2 = Invalid UserId - Not the current UserId -3 = Selection unknown Vendors may return a vendor specific status starting with number -16 or smaller. |
Method Result Codes (defined in Call Service)
| Result Code | Description |
| Bad_UserAccessDenied | See OPC 10000-4 for a general description. |
| Attribute | Value | ||||
| BrowseName | Approve | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
| 0:HasProperty | Variable | 0:OutputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
7.21.5 CancelApproval Method
The CancelApproval Method is cancelling the current approval triggered by calling the Approve Method.
If the execution of the Method cannot be done due to some application logic, the Method should return an Uncertain StatusCode and provide details of the failure in the Status output Argument. When the Method returns an Uncertain StatusCode, the Method is considered to be failed.
The Method shall return an Uncertain StatusCode and the Status -1 when the ApproveStatus is not in "Ongoing" while the Method gets executed.
If the Method returns successful, it does not indicate, that the cancelling has been completed successful. Clients need to access the ApproveStatus Variable to get the information, if the cancelling of the approval has successfully finished.
The signature of this Method is specified below. Table 71 and Table 72 specify the Arguments and AddressSpace representation, respectively.
Signature
CancelApproval (
[out] 0:Int32 Status);| Argument | Description |
| Status | Status of the execution of the method. If issues occurred during execution. 0 = Execution was successful. -1 = Approval in a state that cannot be cancelled anymore Vendors may return a vendor specific status starting with number -16 or smaller. |
Method Result Codes (defined in Call Service)
| Result Code | Description |
| Bad_UserAccessDenied | See OPC 10000-4 for a general description. |
| Attribute | Value | ||||
| BrowseName | CancelApproval | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:OutputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
7.21.6 Recharge Method
The Recharge Method is recharging money to an account associated to the current UserId.
If the execution of the Method cannot be done due to some application logic, the Method should return an Uncertain StatusCode and provide details of the failure in the Status output Argument. When the Method returns an Uncertain StatusCode, the Method is considered to be failed.
If the Method returns successful, it does not indicate, that the recharge has been completed successful. Clients need to access the RechargeStatus Variable to get the information, if the recharge successfully finished.
The signature of this Method is specified below. Table 73 and Table 74 specify the Arguments and AddressSpace representation, respectively.
Signature
Recharge (
[in] PriceDataType Value,
[in] 0:String UserId,
[out] 0:Int32 Status);| Argument | Description |
| Value | The value to recharged to the account of the UserId. |
| UserId | The UserId where the Value should be recharged to the associated account. |
| Status | Status of the execution of the method. If issues occurred during execution. 0 = Execution was successful. -1 = Invalid UserId - UserId unknown -2 = Invalid UserId - Not the current UserId -3 = SelectionId unknown Vendors may return a vendor specific status starting with number -16 or smaller. |
Method Result Codes (defined in Call Service)
| Result Code | Description |
| Bad_UserAccessDenied | See OPC 10000-4 for a general description. |
| Attribute | Value | ||||
| BrowseName | Approve | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
| 0:HasProperty | Variable | 0:OutputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
7.21.7 RefundLast Method
The RefundLast Method refunding the last successful operation executed with Approve. This is needed, for example, when a delivery cannot be executed but was already charged.
If the execution of the Method cannot be done due to some application logic, the Method should return an Uncertain StatusCode and provide details of the failure in the Status output Argument. When the Method returns an Uncertain StatusCode, the Method is considered to be failed.
If the Method returns successful, it does not indicate, that the approve has been completed successful. Clients need to access the RefundLastStatus Variable to get the information, if the approve successfully finished.
The signature of this Method is specified below. Table 75 and Table 76 specify the Arguments and AddressSpace representation, respectively.
Signature
RefundLast (
[out] 0:Int32 Status);| Argument | Description |
| Status | Status of the execution of the method. If issues occurred during execution. 0 = Execution was successful. -1 = There was no previous successful approve execution Vendors may return a vendor specific status starting with number -16 or smaller. |
Method Result Codes (defined in Call Service)
| Result Code | Description |
| Bad_UserAccessDenied | See OPC 10000-4 for a general description. |
| Attribute | Value | ||||
| BrowseName | RefundLast | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:OutputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
7.21.8 EnableOrDisable Method
The EnableOrDisable Method changing the state of the payment device either to be disabled or enabled.
If the execution of the Method cannot be done due to some application logic, the Method should return an Uncertain StatusCode and provide details of the failure in the Status output Argument. When the Method returns an Uncertain StatusCode, the Method is considered to be failed.
If the Method returns successful, it does not indicate, that the state change has been completed successful. Clients need to access the IsEnabled Variable to get the information, if the change successfully finished.
The signature of this Method is specified below. Table 77 and Table 78 specify the Arguments and AddressSpace representation, respectively.
Signature
EnableOrDisable (
[in] 0:Boolean Enable,
[out] 0:Int32 Status);| Argument | Description |
| Enable | Indicates the new value to be set. False means to disable and true to enable the payment device. |
| Status | Status of the execution of the method. If issues occurred during execution. 0 = Execution was successful. -1 = Already in requested state -2 = Cannot disable, currently internal operation ongoing Vendors may return a vendor specific status starting with number -16 or smaller. |
Method Result Codes (defined in Call Service)
| Result Code | Description |
| Bad_UserAccessDenied | See OPC 10000-4 for a general description. |
| Attribute | Value | ||||
| BrowseName | Approve | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
| 0:HasProperty | Variable | 0:OutputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |