Developers

This page is a ZenPay-styled copy of the Zenith Payments developer documentation. View the original docs

Request Pays API

A request-to-pay sends a payment request to a customer via email or SMS. Customers receive a link to complete payment through the hosted payment page.

Create a request pay#

POST/v2/requestpays

View this endpoint in the original docs

Creates a request pay from the supplied request payload.

Authentication: Api-Key + BasicAuth

Request body

Collection of request pay entries inside a container required to create a request pay.

Content types: application/json, application/x-www-form-urlencoded · required

Schema: RequestPayRequest

FieldTypeDescription
merchantUniqueRequestBatchIdstring

Unique batch id provided by the merchant.

Max length: 50
requestPaymentEntries requiredarray of object (RequestPayRequestRecord)

Collection of RequestPayment entry.

Example: Request-pay batch created

Baseline request submission; creating the batch does not demonstrate delivery or payment.

JSON
{
  "merchantUniqueRequestBatchId": "reqpay-batch-7432704337872",
  "requestPaymentEntries": [
    {
      "customerReference": "cust-reqpay-8090506970882",
      "email": "test@zenpay.com.au",
      "firstName": "Test",
      "lastName": "Customer",
      "merchantUniquePaymentId": "reqpay-entry-2152089338749",
      "mobile": "0400000000",
      "paymentAmount": 1
    }
  ]
}

Responses

201 Request to pay created successfully.

application/json · object (RequestPayResponse)

Example: Request-pay batch created

Baseline request submission; creating the batch does not demonstrate delivery or payment.

JSON
{
  "merchantCode": "1337",
  "merchantName": "Menethil",
  "merchantUniqueRequestBatchId": "reqpay-batch-7432704337872",
  "requestPayId": 551,
  "warningMessages": ""
}

300 Duplicate merchant unique id.

application/json · object (AmbiguousResult)

Example: Request-pay batch id already used

Duplicate submission response.

JSON
{
  "message": "The merchant unique id already exists."
}

400 Invalid request pay details.

application/json · object

500 Something went wrong. Request to pay may or may not be created.

application/json · object (InternalServerErrorResult)

Example request (cURL, sandbox host)

cURL
curl -X POST 'https://api.sandbox.zenpay.com.au/v2/requestpays' \
  -H 'Api-Key: <your API key>' \
  -u '<username>:<password>' \
  -H 'Content-Type: application/json' \
  -d '{
  "merchantUniqueRequestBatchId": "reqpay-batch-7432704337872",
  "requestPaymentEntries": [
    {
      "customerReference": "cust-reqpay-8090506970882",
      "email": "test@zenpay.com.au",
      "firstName": "Test",
      "lastName": "Customer",
      "merchantUniquePaymentId": "reqpay-entry-2152089338749",
      "mobile": "0400000000",
      "paymentAmount": 1
    }
  ]
}'

Get a request pay#

GET/v2/requestpays/{requestPayId}

View this endpoint in the original docs

Returns the request pay for the specified request pay ID.

Authentication: Api-Key + BasicAuth

Parameters

NameInTypeDescription
requestPayId requiredpathinteger <int32>

The unique request pay identifier.

Responses

200 Request Pay summary.

application/json · object (ApiRequestPaySummary)

Example: Request-pay batch awaiting processing

Shows the state before processing completes.

JSON
{
  "merchantCode": "1337",
  "merchantName": "Menethil",
  "merchantUniqueRequestBatchId": "reqpay-batch-5901777124032",
  "processingDate": "2026-09-24T00:36:48.05",
  "status": "ReadyForPaymentProcessing",
  "submittedDate": "2026-09-24T00:36:48.08",
  "totalAmount": 1,
  "totalEntries": 1
}

Example: Request-pay batch processing completed

Shows processing completion, which must not be described as customer payment completion.

JSON
{
  "merchantCode": "1337",
  "merchantName": "Menethil",
  "merchantUniqueRequestBatchId": "reqpay-batch-5901777124032",
  "processingDate": "2026-09-24T00:36:48.05",
  "status": "Completed",
  "submittedDate": "2026-09-24T00:36:48.08",
  "totalAmount": 1,
  "totalEntries": 1
}

404 Request to pay not found.

application/json · object

500 Unable to get the request payment.

application/json · object

Example request (cURL, sandbox host)

cURL
curl -X GET 'https://api.sandbox.zenpay.com.au/v2/requestpays/{requestPayId}' \
  -H 'Api-Key: <your API key>' \
  -u '<username>:<password>' \
  -H 'Accept: application/json'

List request pay entries#

GET/v2/requestpays/{requestPayId}/entries

View this endpoint in the original docs

Returns the entries for the specified request pay.

Authentication: Api-Key + BasicAuth

Parameters

NameInTypeDescription
requestPayId requiredpathinteger <int32>

The unique request pay identifier.

Responses

200 List of request pay entries.

application/json · array of object (ApiRequestPayEntry)

Example: Entry refused for its payment option

One representative entry rejection; describe other rejection reasons in the status documentation.

JSON
[
  {
    "companyName": "Test Company Pty Ltd",
    "customerName": "Test Customer",
    "customerReference": "cust-403probe-8471919173",
    "email": "test@zenpay.com.au",
    "entryStatus": "Payment option is not RequestPay",
    "isPaymentRecalled": false,
    "isPaymentRefunded": false,
    "isPaymentRetryScheduled": false,
    "merchantCode": "1337",
    "merchantName": "Menethil",
    "mobile": "0400000000",
    "paymentAmount": 1,
    "paymentStatus": "",
    "requestReference": "9ece7b85-6776-4bfe-93d6-e79a2dff036e"
  }
]

Example: Entry with a payment request sent

Shows the delivery-stage entry outcome without claiming payment.

JSON
[
  {
    "customerName": "Test Customer",
    "customerReference": "cust-reqpay-3008281808812",
    "email": "test@zenpay.com.au",
    "entryStatus": "Request Sent to Customer",
    "isPaymentRecalled": false,
    "isPaymentRefunded": false,
    "isPaymentRetryScheduled": false,
    "merchantCode": "1337",
    "merchantName": "Menethil",
    "mobile": "0400000000",
    "paymentAmount": 1,
    "paymentStatus": "",
    "requestReference": "311bc01c-1aef-486e-99e3-ab51d6b0878f"
  }
]

Example: Pending request-pay entry

Shows the initial entry state.

JSON
[
  {
    "customerName": "Test Customer",
    "customerReference": "cust-reqpay-3008281808812",
    "email": "test@zenpay.com.au",
    "entryStatus": "Request Pending",
    "isPaymentRecalled": false,
    "isPaymentRefunded": false,
    "isPaymentRetryScheduled": false,
    "merchantCode": "1337",
    "merchantName": "Menethil",
    "mobile": "0400000000",
    "paymentAmount": 1,
    "paymentStatus": "",
    "requestReference": "311bc01c-1aef-486e-99e3-ab51d6b0878f"
  }
]

404 Request pay not found.

application/json · object

500 Unable to get the request to pay.

application/json · object

Example request (cURL, sandbox host)

cURL
curl -X GET 'https://api.sandbox.zenpay.com.au/v2/requestpays/{requestPayId}/entries' \
  -H 'Api-Key: <your API key>' \
  -u '<username>:<password>' \
  -H 'Accept: application/json'
Need help with your integration?Talk to the Zenith Integrations Team.
Email integrationsTalk to us