Skip to content

Refund API

This allows you to programmatically refund humm purchases.

Refund Endpoints

Humm Environment URL
Production Endpoint https://buyerapi.shophumm.co.nz/api/ExternalRefund/v1/processrefund
Sandbox Endpoint https://integration-buyerapi.shophumm.co.nz/api/ExternalRefund/v1/processrefund

Refund Request

Headers

Key Value
Content-Type application/json
User-agent product / version comment

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.co.nz/api/ExternalRefund/v1/processrefund

Refund Response

HTTP Status Reason Code Reason Description
204 none Success
400 MERR0001 API Key Not found
400 MERR0003 Refund Failed
400 MERR0004 Invalid Request
401 none Failed 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

HTTP 400 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.