Create One-Time PayID
POSThttps://api.cleverhub.co/api/v1/merchants/create_payment
Generate a unique, one-time-use PayID for processing a single payment transaction. This endpoint creates a secure PayID that the customer can use to complete a payment, allowing merchants to receive funds directly.
Once a payment is initiated, the payment_request_notification
object can be configured to provide real-time status updates via a callback to a specified endpoint, ensuring that merchants receive notifications for every change in the transaction's status.
Request
- application/json
Bodyrequired
Customer's full name.
John Doe
Indicates if Goods and Services Tax (GST) applies for Australian merchants.
true
The total payment amount for the transaction in AUD.
100
Brief description of the payment purpose.
Payment for invoice #1234
Comma-separated list of email addresses for notifications. Only lowercase letters are allowed.
Possible values: Value must match regular expression ^([a-z0-9_\-\.]+)@([a-z]+)\.([a-z]+)(,[a-z0-9_\-\.]+@[a-z]+\.([a-z]+))*$
customer@example.com
Static prefix for the PayID, used to generate a PayID in the format prefix_static_payid@example.co
.
Possible values: Value must match regular expression ^(?=[a-z0-9]{3,35}$)[a-z0-9]*$
abc
Expiration time of the PayID in UTC format. Should be at least 15 minutes from the current time.
2024-12-31T23:59:59Z
Custom identifier for tracking purposes, set by the merchant.
custom-id-12345
payment_request_notification objectrequired
Responses
- 200
- 400
- 401
- 422
Payment request created successfully.
- application/json
- Schema
- Example (auto)
Schema
pending
: The payment request is still open and awaiting payment.received
: The payment has been received.expired
: The payment request has expired.return_pending
: A return of funds is in process.return_received
: Returned funds have been received.return_expired
: The return process has expired.return_rejected
: The return request was rejected.
A unique identifier assigned to the payment request, used for tracking and referencing purposes within the system.
123456
The identifier of the balance associated with this payment request, allowing for account management and tracking of specific transactions.
HDCHJSS
The name of the individual or entity associated with the payment request. This helps identify the payer or payee involved.
John Doe
The PayID generated for the payment request, used to uniquely identify and route the payment to the correct recipient.
payid123@example.com
The name of the merchant managing or handling the payment. This field is useful for recognising the party to whom the payment is being made.
Merchant Co.
Indicates whether Goods and Services Tax (GST) applies to the transaction. A value of true
means GST is included.
true
The amount requested for the payment, excluding any applicable taxes. This field represents the base value of the transaction.
100.0
The total amount due, including all applicable taxes such as GST. This is the final amount the payer needs to pay.
110.0
The portion of the total amount that is attributable to GST. This helps in breaking down the tax components of the payment.
10.0
The expiration date and time of the PayID, indicating until when the PayID is valid for making the payment.
2024-12-31T23:59:59Z
A custom identifier provided for tracking purposes, such as an internal reference or an invoice number.
custom-id-12345
The cashback amount, if applicable, that the payer is eligible to receive as part of the transaction.
5.0
The last date by which the payment must be made. This provides a clear deadline for the payer.
2024-12-30T23:59:59Z
The date and time when the payment was successfully completed. This is used for record-keeping and verification.
2024-12-25T12:34:56Z
The current status of the payment request. Possible values include:
Possible values: [pending
, received
, expired
, return_pending
, return_received
, return_expired
, return_rejected
]
pending
A description accompanying the payment request, providing additional information such as the purpose of the payment or related invoice details.
Payment for invoice #1234
A unique value used to validate the transaction, preventing replay attacks and ensuring the integrity of the payment request.
unique_nonce_string
Represents the specific stage within the pending
status. This value is null
unless the transaction is flagged for being overpaid, underpaid, or having an unmatched nonce.
Possible values: [overpaid
, underpaid
, unmatched_nonce
, null
]
overpaid
refund_information object
sender_details object
A shortened version of the invoice URL for convenience. This can be used to quickly share or access the invoice details. Note: this field is deprecated.
https://short.example.com/invoice/123456
The full URL of the invoice related to the payment request. This provides access to the detailed invoice online. Note: this field is deprecated.
https://example.com/invoice/123456
{
"id": 123456,
"balance_id": "HDCHJSS",
"name": "John Doe",
"request_payid": "payid123@example.com",
"merchant_name": "Merchant Co.",
"gst": true,
"amount": "100.0",
"total": "110.0",
"gst_amount": "10.0",
"expired_at": "2024-12-31T23:59:59Z",
"external_id": "custom-id-12345",
"cashback_amount": "5.0",
"pay_by": "2024-12-30T23:59:59Z",
"paid_at": "2024-12-25T12:34:56Z",
"status": "pending",
"description": "Payment for invoice #1234",
"nonce": "unique_nonce_string",
"stage": "overpaid",
"refund_information": {
"refund_payid": "sample@payid.com",
"refund_amount": 0.1,
"request_date": "2024-12-31T23:59:59Z",
"reason": "Broken product"
},
"sender_details": {
"reference": "SenderRef123",
"description": "Payment from John Doe",
"bsb": "123456",
"account_number": "987654321",
"account_name": "John Doe"
}
}
Bad Request.
Unauthorized.
Unprocessable Entity.
Callbacks
- POST statusChange
POST{$request.body#/payment_request_notification.endpoint_url}
- application/json
Bodyrequired
pending
: The payment request is still open and awaiting payment.received
: The payment has been received.expired
: The payment request has expired.return_pending
: A return of funds is in process.return_received
: Returned funds have been received.return_expired
: The return process has expired.return_rejected
: The return request was rejected.
A unique identifier assigned to the payment request, used for tracking and referencing purposes within the system.
123456
The identifier of the balance associated with this payment request, allowing for account management and tracking of specific transactions.
HDCHJSS
The name of the individual or entity associated with the payment request. This helps identify the payer or payee involved.
John Doe
The PayID generated for the payment request, used to uniquely identify and route the payment to the correct recipient.
payid123@example.com
The name of the merchant managing or handling the payment. This field is useful for recognising the party to whom the payment is being made.
Merchant Co.
Indicates whether Goods and Services Tax (GST) applies to the transaction. A value of true
means GST is included.
true
The amount requested for the payment, excluding any applicable taxes. This field represents the base value of the transaction.
100.0
The total amount due, including all applicable taxes such as GST. This is the final amount the payer needs to pay.
110.0
The portion of the total amount that is attributable to GST. This helps in breaking down the tax components of the payment.
10.0
The expiration date and time of the PayID, indicating until when the PayID is valid for making the payment.
2024-12-31T23:59:59Z
A custom identifier provided for tracking purposes, such as an internal reference or an invoice number.
custom-id-12345
The cashback amount, if applicable, that the payer is eligible to receive as part of the transaction.
5.0
The last date by which the payment must be made. This provides a clear deadline for the payer.
2024-12-30T23:59:59Z
The date and time when the payment was successfully completed. This is used for record-keeping and verification.
2024-12-25T12:34:56Z
The current status of the payment request. Possible values include:
Possible values: [pending
, received
, expired
, return_pending
, return_received
, return_expired
, return_rejected
]
pending
A description accompanying the payment request, providing additional information such as the purpose of the payment or related invoice details.
Payment for invoice #1234
A unique value used to validate the transaction, preventing replay attacks and ensuring the integrity of the payment request.
unique_nonce_string
Represents the specific stage within the pending
status. This value is null
unless the transaction is flagged for being overpaid, underpaid, or having an unmatched nonce.
Possible values: [overpaid
, underpaid
, unmatched_nonce
, null
]
overpaid
refund_information object
sender_details object
A shortened version of the invoice URL for convenience. This can be used to quickly share or access the invoice details. Note: this field is deprecated.
https://short.example.com/invoice/123456
The full URL of the invoice related to the payment request. This provides access to the detailed invoice online. Note: this field is deprecated.
https://example.com/invoice/123456
Callbacks Responses
- 200
- 400
- 401
Callback received successfully.
Bad request.
Unauthorized access.
Authorization: app-id
name: app-idtype: apiKeyin: headerdescription: A unique identifier assigned to each application.
name: secret-keytype: apiKeyin: headerdescription: A secure token associated with the `app-id`.
- csharp
- curl
- dart
- go
- http
- java
- javascript
- kotlin
- c
- nodejs
- objective-c
- ocaml
- php
- powershell
- python
- r
- ruby
- rust
- shell
- swift
- HTTPCLIENT
- RESTSHARP
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.cleverhub.co/api/v1/merchants/create_payment");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("app-id", "<app-id>");
request.Headers.Add("secret-key", "<app-id>");
var content = new StringContent("{\n \"name\": \"John Doe\",\n \"gst\": true,\n \"amount\": 100,\n \"description\": \"Payment for invoice #1234\",\n \"emails\": \"customer@example.com\",\n \"expired_at\": \"2024-12-31T23:59:59Z\",\n \"external_id\": \"custom-id-12345\",\n \"payment_request_notification\": {\n \"endpoint_url\": \"https://example.com/payment_callback\",\n \"authorization_header\": \"Bearer your_token\"\n }\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());