Guides

Process Sales Adjustment

This endpoint is used to process a Sales Adjustment at the point-of-sale. See Sales Adjustment for more information.

Method: ProcessSalesAdjustment

Request

Parameter

Type

length

Description

x_pos_transaction_ref

Unicode string

64

This is the transaction reference of the sales adjustment

x_purchase_ref

Unicode string

64

The original transaction reference.
It can either be the x_pos_transaction_ref that was passed through as part of the ProcessAuthorisation request (or the SendReceipt request), or the humm purchase number that was returned from the call to ProcessAuthorisation. In the case of the former, the x_pos_transaction_ref must be unique among all sellers in a chain of sellers. In the case of the latter, the POS software would be required to store the x_purchase_number returned by ProcessAuthorisation.

x_merchant_id

Unicode string

10

Merchant identifier as defined by humm

x_amount

int

12

Requested adjustment amount (in cents)

x_device_id

Unicode string

64

Unique device identifier for the POS terminal

x_operator_id

Unicode string

64

ID of POS/terminal operator

x_firmware_version

Unicode string

64

Current firmware version of POS device

tracking_data optional

Associative array

Max 1000000

A map that can be populated with additional tracking/state information that will get passed back in the response

signature

Hex string case-insensitive

200

Payload that is signed using HMAC-SHA256 using a device specific key

Response

ParameterTypeDescription
x_statusUnicode stringSuccess/Failure/Error
x_codeUnicode stringA code that maps to a specific reason
x_messageUnicode stringA string explaining the status/code above. Example: For an Error: Reason why the adjustment cannot be done
tracking_dataAssociative arrayEchoes tracking_data sent on the request
signatureHex string case-insensitivePayload that is signed using HMAC-SHA256 using a device specific key

Testing

The following describes dummy API requests that return a predictable response. Please contact [email protected] to get access to the test/dummy APIs.

Request -> x_amountResponse -> x_statusResponse -> x_code
## 01SuccessSPSA01
## 10FailedFPSA01
## 11FailedFPSA02
## 12FailedFPSA03
## 13FailedFPSA04
## 14FailedFPSA05
## 15FailedFPSA06
## 16FailedFPSA07
## 17FailedFPSA08
## 18FailedFPSA09
## 30ErrorEVAL01
## 31ErrorEAUT01
any other valueErrorEISE01

📘

Info

"#" signifies an alphanumeric digit

Testing Assumptions To generate the signature, use a device-signing-key of "1234567890". A invalid signature will cause an ESIG01 Error.