Refund API

This allows you to programmatically refund humm purchases.

Refund Endpoints

Refund Request


User-agentproduct / version comment



If you don't specify a User-agent in your request, humm will respond with a 403 error


    "x_merchant_number": "30199250",
    "x_purchase_number": "52004168",
    "x_amount": "10.00",
    "x_reason": "Test refund",
    "signature": "e39ae5f3233f561162836989e050c1b61ba9e3d5eb3d64d4b3701e95fb5850a1"

See Signature Generation for information on how to generate the HMAC Signature.


The following curl command will allow you to test the refunds API. You will need to substitute your x_merchant_number, x_purchase_number and signature

curl \
--header "Content-Type:application/json" \
--header "User-Agent:curl/7.64.1" \
--request POST \
--data '{
    "x_merchant_number": "30199250",
    "x_purchase_number": "52000152",  
    "x_amount": 45.00,
    "x_reason": "test",
    "signature": "a5fc92ddd2326c6099bd0f43bbe75afb54004a6ba68f354cc2b40328341d8ee2"
}' \

Refund Response

HTTP StatusReason CodeReason Description
400MERR0001API Key Not found
400MERR0003Refund Failed
400MERR0004Invalid Request
401NoneFailed Signature Check

HTTP 400 Reason Codes

To capture the HTTP 400 reason codes, parse the JSON response and use the value in "Message".

For example:

POST /api/ExternalRefund/v1/processrefund HTTP/1.1
Content-Type: application/json
Cookie: hummueid=bc726701-3dc1-43b3-961c-8796df0477a3
Content-Length: 224

    "x_reason": "Booking Cancelled",
    "signature": "561dae20c677fc705dd511878b9bf4ba55bc3084de2efd6e53795d052d9ce778"

This returns response headers

To capture the reason, parse the JSON

    "Message": "MERR0003"

Partial vs Full Refunds

A refund is considered partial if its for an amount less that the purchase amount on the purchase being refunded. A full refund is if its for the full purchase amount.

Multiple partial refunds can be submitted against the same humm purchase (x_purchase_number) until the full purchase amount has been refunded.