Guides

Refund API

This allows you to programmatically refund humm purchases.

Refund Endpoints

Refund Request

Headers

KeyValue
Content-Typeapplication/json
User-agentproduct / version comment

🚧

Important!

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

Body

{
    "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.

Example

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"
}' \    
https://integration-buyerapi.shophumm.com.au/api/ExternalRefund/v1/processrefund

Refund Response

HTTP StatusReason CodeReason Description
204NoneSuccess
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
Host: integration-buyerapi.shophumm.com.au
Content-Type: application/json
Cookie: hummueid=bc726701-3dc1-43b3-961c-8796df0477a3
Content-Length: 224

{
    "x_merchant_number":"30188525",
    "x_amount":18.50,
    "x_purchase_number":"28237558",
    "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.