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

ParameterTypelengthDescription
x_pos_transaction_refUnicode string64This is the transaction reference of the sales adjustment
x_purchase_refUnicode string64The 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_idUnicode string10Merchant identifier as defined by humm
x_amountint12Requested adjustment amount (in cents)
x_device_idUnicode string64Unique device identifier for the POS terminal
x_operator_idUnicode string64ID of POS/terminal operator
x_firmware_versionUnicode string64Current firmware version of POS device
tracking_data optionalAssociative arrayMax 1000000A map that can be populated with additional tracking/state information that will get passed back in the response
signatureHex string case-insensitive200Payload 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.