POST

Authorizations

app-id
string
header
required

A unique identifier assigned to each application.

secret-key
string
header
required

A secure token associated with the app-id.

Body

application/json
currency
string
required

Transaction currency. It has to be a valid ISO 4217 currency codes. For example, 'PHP' for Philippine Peso, 'AUD' for Australian Dollar.

gst
boolean
required

Goods and Services Tax.

amount
number
required

Amount.

name
string
required

Customer name.

email
string
required

If required_contact == true, this email must be the same email that was used to create the contact.

description
string
required

Description.

payin_method_name
string
required

Payin method name to be used for this payment. You will receive this from the Get payin methods API.

payin_method_params
object
required

Payin method parameters. You will receive this from the Get payin’s required fields API.

webhook_notification
object
required

Merchant Callback Details

external_id
string

Custom ID.

expired_at
string<YYYY-MM-DDTHH:mm:ss>
  • This setting only applies to the payment method vn_vietqr_vnd.
  • Other methods are either fixed to default values or not configurable, and therefore cannot be edited.
  • The scheduled expiry must be set to at least 15 minutes later than the current time.
metadata
object

Optional custom metadata to attach to the transaction.

Callbacks

POST
{$request.body#/webhook_notification/endpoint_url}myEvent

Body

application/json
uuid
string

Unique Id for the order created by Hello Clever system

Example:

"VMMAOTFQ"

name
string

Customer name.

Example:

"Test."

email
string

Customer email.

Example:

"test@example.com."

external_id
string

Custom ID.

Example:

"123456"

status
string<received | return_pending | return_received>

Status of Payin.

Example:

"received"

pay_code
object

Code using pay

gst
boolean

GST for merchant.

Example:

"false,"

currency
string

Currency payin.

Example:

"PHP"

amount
number

Amount.

Example:

"1000.0"

gst_amount
number

GST amount.

Example:

"100.0"

total
number

Total amount.

Example:

"1100.0"

paid_amount
number

Paid Amount.

Example:

"1100.0"

description
string

Description

Example:

"The message that you want to send to the payee."

is_refundable
boolean

Available refund.

Example:

"false,"

expired_at
string<date-time>
  • This setting only applies to the payment method vn_vietqr_vnd.
  • Other methods are either fixed to default values or not configurable, and therefore cannot be edited.
  • The scheduled expiry must be set to at least 15 minutes later than the current time.
Example:

"2021-12-23T06:00:00.000+0000"

pay_by
string<date-time>

Pay by time of payment. This datetime would be in the UTC timezone. Must set the schedule bigger 15 minutes from the current time.

Example:

"2021-12-23T06:00:00.000+0000"

webhook_notification
object

Payment request notification

Response

200

The merchant's server should return this code

Response

Created

uuid
string
name
string
description
string
email
string
external_id
string
status
string<pending | received | expired | return_pending | return_received | return_expired | waiting>

Status of the transaction:

  • pending: Customer started a new payment but hasn't proceeded yet.
  • received: Funds have been received.
  • waiting: Payment has been approved, awaiting funds to settle.
  • expired: Payment session expired before completion.
  • return_pending: Refund request initiated, awaiting processing.
  • return_received: Full amount has been refunded to the customer.
  • return_expired: The refund request has expired. Expiration time is set to be 10 days.
  • return_rejected: Refund request was denied. The system will not retry again.
stage
string<authorize_otp | authorize_stk | normal_stage>
pay_code
object

Code using pay

currency
string
gst
boolean
amount
number
gst_amount
number
total
number
paid_amount
number
payment_method
string
is_refundable
boolean
expired_at
string<date-time>
pay_by
string<date-time>
webhook_notification
object