Skip to main content
PUT
/
v1
/
payment-requests
/
{request_id}
Update Payment Request
curl --request PUT \
  --url https://api.hit-pay.com/v1/payment-requests/{request_id} \
  --header 'Content-Type: application/json' \
  --header 'X-BUSINESS-API-KEY: <x-business-api-key>' \
  --data '
{
  "amount": 100,
  "currency": "SGD",
  "payment_methods": [
    "<string>"
  ],
  "email": "jsmith@example.com",
  "name": "<string>",
  "phone": "<string>",
  "wifi_terminal_id": "<string>",
  "staff_id": "98888a24-d6b2-430d-9063-d2be76d443cd",
  "purpose": "<string>",
  "reference_number": "<string>",
  "redirect_url": "https://www.google.com",
  "webhook": "https://www.google.com",
  "allow_repeated_payments": "false",
  "expiry_date": "<string>",
  "expires_after": "5 minutes",
  "add_admin_fee": "false",
  "send_email": "false",
  "send_sms": "true",
  "generate_qr": false
}
'
import requests

url = "https://api.hit-pay.com/v1/payment-requests/{request_id}"

payload = {
"amount": 100,
"currency": "SGD",
"payment_methods": ["<string>"],
"email": "jsmith@example.com",
"name": "<string>",
"phone": "<string>",
"wifi_terminal_id": "<string>",
"staff_id": "98888a24-d6b2-430d-9063-d2be76d443cd",
"purpose": "<string>",
"reference_number": "<string>",
"redirect_url": "https://www.google.com",
"webhook": "https://www.google.com",
"allow_repeated_payments": "false",
"expiry_date": "<string>",
"expires_after": "5 minutes",
"add_admin_fee": "false",
"send_email": "false",
"send_sms": "true",
"generate_qr": False
}
headers = {
"X-BUSINESS-API-KEY": "<x-business-api-key>",
"Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PUT',
headers: {
'X-BUSINESS-API-KEY': '<x-business-api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
amount: 100,
currency: 'SGD',
payment_methods: ['<string>'],
email: 'jsmith@example.com',
name: '<string>',
phone: '<string>',
wifi_terminal_id: '<string>',
staff_id: '98888a24-d6b2-430d-9063-d2be76d443cd',
purpose: '<string>',
reference_number: '<string>',
redirect_url: 'https://www.google.com',
webhook: 'https://www.google.com',
allow_repeated_payments: 'false',
expiry_date: '<string>',
expires_after: '5 minutes',
add_admin_fee: 'false',
send_email: 'false',
send_sms: 'true',
generate_qr: false
})
};

fetch('https://api.hit-pay.com/v1/payment-requests/{request_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hit-pay.com/v1/payment-requests/{request_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'amount' => 100,
'currency' => 'SGD',
'payment_methods' => [
'<string>'
],
'email' => 'jsmith@example.com',
'name' => '<string>',
'phone' => '<string>',
'wifi_terminal_id' => '<string>',
'staff_id' => '98888a24-d6b2-430d-9063-d2be76d443cd',
'purpose' => '<string>',
'reference_number' => '<string>',
'redirect_url' => 'https://www.google.com',
'webhook' => 'https://www.google.com',
'allow_repeated_payments' => 'false',
'expiry_date' => '<string>',
'expires_after' => '5 minutes',
'add_admin_fee' => 'false',
'send_email' => 'false',
'send_sms' => 'true',
'generate_qr' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-BUSINESS-API-KEY: <x-business-api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.hit-pay.com/v1/payment-requests/{request_id}"

payload := strings.NewReader("{\n \"amount\": 100,\n \"currency\": \"SGD\",\n \"payment_methods\": [\n \"<string>\"\n ],\n \"email\": \"jsmith@example.com\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"wifi_terminal_id\": \"<string>\",\n \"staff_id\": \"98888a24-d6b2-430d-9063-d2be76d443cd\",\n \"purpose\": \"<string>\",\n \"reference_number\": \"<string>\",\n \"redirect_url\": \"https://www.google.com\",\n \"webhook\": \"https://www.google.com\",\n \"allow_repeated_payments\": \"false\",\n \"expiry_date\": \"<string>\",\n \"expires_after\": \"5 minutes\",\n \"add_admin_fee\": \"false\",\n \"send_email\": \"false\",\n \"send_sms\": \"true\",\n \"generate_qr\": false\n}")

req, _ := http.NewRequest("PUT", url, payload)

req.Header.Add("X-BUSINESS-API-KEY", "<x-business-api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.put("https://api.hit-pay.com/v1/payment-requests/{request_id}")
.header("X-BUSINESS-API-KEY", "<x-business-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 100,\n \"currency\": \"SGD\",\n \"payment_methods\": [\n \"<string>\"\n ],\n \"email\": \"jsmith@example.com\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"wifi_terminal_id\": \"<string>\",\n \"staff_id\": \"98888a24-d6b2-430d-9063-d2be76d443cd\",\n \"purpose\": \"<string>\",\n \"reference_number\": \"<string>\",\n \"redirect_url\": \"https://www.google.com\",\n \"webhook\": \"https://www.google.com\",\n \"allow_repeated_payments\": \"false\",\n \"expiry_date\": \"<string>\",\n \"expires_after\": \"5 minutes\",\n \"add_admin_fee\": \"false\",\n \"send_email\": \"false\",\n \"send_sms\": \"true\",\n \"generate_qr\": false\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.hit-pay.com/v1/payment-requests/{request_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["X-BUSINESS-API-KEY"] = '<x-business-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 100,\n \"currency\": \"SGD\",\n \"payment_methods\": [\n \"<string>\"\n ],\n \"email\": \"jsmith@example.com\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"wifi_terminal_id\": \"<string>\",\n \"staff_id\": \"98888a24-d6b2-430d-9063-d2be76d443cd\",\n \"purpose\": \"<string>\",\n \"reference_number\": \"<string>\",\n \"redirect_url\": \"https://www.google.com\",\n \"webhook\": \"https://www.google.com\",\n \"allow_repeated_payments\": \"false\",\n \"expiry_date\": \"<string>\",\n \"expires_after\": \"5 minutes\",\n \"add_admin_fee\": \"false\",\n \"send_email\": \"false\",\n \"send_sms\": \"true\",\n \"generate_qr\": false\n}"

response = http.request(request)
puts response.read_body
This response has no body data.

Headers

X-BUSINESS-API-KEY
string
required
Example:

"b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"

Path Parameters

request_id
string
required

It's payment request id

Body

application/json
amount
number<double>
required

It's required field. Amount related to the payment.

Required range: 0.3 <= x <= 999999999.99
Example:

100

currency
string
required

Currency related to the payment.

Maximum string length: 3
Example:

"SGD"

payment_methods
string[]

Payment method type (paynow_online , card, wechat, alipay, grabpay_direct, grabpay_paylater, shopee_pay, zip, fpx). If we don't pass, use the available methods

email
string<email>

Buyer’s email

name
string

Buyer’s name

phone
string<phone>

Buyer’s phone number

wifi_terminal_id
string

It's terminal id and it's required if payment method is wifi_card_reader

staff_id
string<uuid>

It's active staff id from the dashboard

Example:

"98888a24-d6b2-430d-9063-d2be76d443cd"

purpose
string

Purpose of the Payment request.

Maximum string length: 255
reference_number
string

Arbitrary reference number that you can map to your internal reference number. This value cannot be edited by the customer

Maximum string length: 255
redirect_url
string<uri>

URL where we redirect the user after a payment. Query arguments reference (payment request id) and status are sent along

Maximum string length: 1028
Example:

"https://www.google.com"

webhook
string<uri>

URL where our server do POST request after a payment If done

Example:

"https://www.google.com"

allow_repeated_payments
enum<string>
default:false

If set to true, multiple payments can be paid on a payment request link. Default value is false

Available options:
true,
false
expiry_date
string

Time after which the payment link will be expired(time in SG with YYYY-MM-DD HH:mm:ss format). Applicable for repeated payments. Default is Null

expires_after
string

E.g "30 mins" Other supported keys are "mins", "hours", "days"

Example:

"5 minutes"

add_admin_fee
enum<string>
default:false

If set to true, the admin fee will be included in total.

Available options:
true,
false
send_email
enum<string>
default:false

It's "true" or "false". If set to true, an email receipt will be sent to the customer after the payment is completed. Default is false

Available options:
true,
false
send_sms
enum<string>
default:true

It's "true" or "false". If set to "true", SMS will be sent to the customer after the payment is completed. Default is false

Available options:
true,
false
address
object
generate_qr
boolean
default:false

Only valid for payment methods: paynow_online, qrph_netbank, doku_qris and shopee_pay if generate_qr was true

Response

200 - undefined
Last modified on February 25, 2026