Guides

Process Adjustment Reversal

This endpoint is used to process a reversal of a Sales Adjustment at the point-of-sale.

Method: ProcessSalesAdjustmentReversal

Request

ParameterTypeLengthDescription
x_pos_transaction_refUnicode string64This is the transaction reference of the adjustment reversal
x_adjustment_signatureUnicode string200The original adjustment signature that we are trying to reverse. We are using the Sales Adjustment Signature as we can not rely on the Sales Adjustment to return a result. (e.g. Network Issues)
x_merchant_idUnicode string10Merchant identifier as defined by humm
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 optionalMax 1000000A map that can be populated with additional tracking/state information that will get passed back in the response
signature200Payload 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_adjustment_signatureResponse -> x_statusResponse -> x_code
01##SuccessSPAR01
10##FailedFPAR01
11##FailedFPAR02
12##FailedFPAR03
13##FailedFPAR05
14##FailedFPAR06
15##FailedFPAR07
16##FailedFPAR08
30##ErrorEVAL01
31##ErrorEAUT01
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.