API references
Merchant API

Create a new payment link that can be shared with customers to collect payments. A payment link is a unique URL that redirects customers to a hosted checkout page.

If no installation_* attributes are provided, the merchant's default link installation will be used. If any installation_* attributes (like installation_email_capture) are provided, a new one-off installation will be created for this payment link, based on the merchant's default link installation attributes and the provided attributes.

Endpoint signature
This endpoint requires an API key. Read our authentication guide for more information.
POST https://api.reservepay.com/merchants/add-payment-link HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer <token>
{
amount: number,
currency: string,
description: string,
external_id: string?,
expires_at: number?,
single_use: boolean?,
send_confirmation_email: boolean?,
installation_name: string?,
installation_payment_methods: string?,
installation_email_capture: string?,
installation_mobile_capture: string?,
installation_address_capture: string?,
}
Returns: object
New to Reservepay? Read our guide on how to call endpoints to get started.
Request arguments
amount number

Required. The amount to collect in subunits according to ISO 4217. E.g., 1000 for 10.00 THB. Or 500 for 500 JPY.

currency string

Required. The 3-letter ISO 4217 currency code (e.g., 'USD'). Must be a supported currency.

description string

Required. A description of the product or service being paid for.

external_id string

Optional. Your internal reference for this payment link.

expires_at number

Optional. Optional Unix timestamp when the link should expire.

single_use boolean

Optional. If true, the link will be disabled after the first successful payment. Defaults to false.

Allowed values:
  • true
  • false
send_confirmation_email boolean

Optional. If true, sends a confirmation email to the customer after each successful payment. Defaults to false.

Allowed values:
  • true
  • false
installation_name string

Optional. The name for a new custom installation.

installation_payment_methods string

Optional. Comma-separated list of payment methods for a new custom installation.

installation_email_capture string

Optional. Email capture configuration for a new custom installation.

Allowed values:
  • disabled
  • optional
  • required
installation_mobile_capture string

Optional. Mobile phone capture configuration for a new custom installation.

Allowed values:
  • disabled
  • optional
  • required
installation_address_capture string

Optional. Billing address capture configuration for a new custom installation.

Allowed values:
  • disabled
  • optional
  • required
Response attributes
Attribute Description
payment_link_id
string

Always present. The ID of the payment link.

batch_id
string

Nullable. The ID of the batch that created this payment link, if any.

payment_link_url
string

Always present. The URL of the payment link.

status
string

Always present. The current status of the payment link.

Possible values:
  • active
  • disabled
  • expired
  • paid
amount
number

Always present. The amount of the payment link in subunits.

currency
string

Always present. The 3-letter ISO currency code.

description
string

Always present. The description of the payment link.

external_id
string

Nullable. The merchant's internal reference for this link.

expires_at
number

Nullable. When the link becomes invalid (Unix timestamp).

single_use
boolean

Always present. If true, the link expires after one successful payment.

send_confirmation_email
boolean

Always present. If true, sends a confirmation email to the customer after each successful payment.

installation
object.installation

Always present. The installation associated with this payment link.

created_at
number

Always present. The creation timestamp (Unix timestamp).

deletable
boolean

Always present. If true, the payment link has no associated payments and can be removed.

Installation attributes
Attribute Description
installation_id
string

Always present. The ID of the installation.

enabled
boolean

Always present. Whether the installation is enabled and active.

name
string

Always present. The name of the installation.

platform
string

Always present. The platform type of the installation (e.g., 'WEB', 'IOS', 'ANDROID', 'TERMINAL').

Possible values:
  • WEB
  • IOS
  • ANDROID
  • TERMINAL
identifier
string

Nullable. The unique identifier for the installation on the platform.

payment_methods
array<object.payment_method>

Always present. List of payment methods supported by this installation.

email_capture
string

Always present. Email capture configuration for this installation. 'disabled' means no email collection, 'optional' means email is collected if provided by customer, 'required' means email is mandatory for all customers.

Possible values:
  • disabled
  • optional
  • required
mobile_capture
string

Always present. Mobile phone capture configuration for this installation. 'disabled' means no mobile number collection, 'optional' means mobile number is collected if provided by customer, 'required' means mobile number is mandatory for all customers.

Possible values:
  • disabled
  • optional
  • required
address_capture
string

Always present. Billing address capture configuration for this installation. 'disabled' means no billing address collection, 'optional' means billing address is collected if provided by customer, 'required' means billing address is mandatory for all customers.

Possible values:
  • disabled
  • optional
  • required
created_at
number

Always present. The timestamp of the key creation as a Unix timestamp.

Payment method attributes
Attribute Description
name
string

Always present. The name of the payment method.

display_name
string

Always present. The display name of the payment method.

flow
string

Always present. The flow of the payment method.

category
string

Always present. The category of the payment method.

Errors common to all endpoints
UNHANDLED_ERROR

This error occurs when the server encounters an unexpected internal error that it cannot handle gracefully. This typically happens due to bugs, infrastructure issues, or edge cases that weren't anticipated during development.

INVALID_ARGUMENTS

This error occurs when the request contains invalid or missing parameters. Common cases include missing required fields, or values that don't match the expected format or type.

BAD_VERSION

This error occurs when making requests to an API version that does not exist. This commonly happens when using an outdated SDK or when the API version specified in the request URL is incorrect.

CODE SAMPLES
curl
curl "https://api.reservepay.com/merchants/add-payment-link" \
  -X POST
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $(RESERVEPAY_API_KEY)" \
  -d '{
        "amount": 10000
        "currency": "THB"
        "description": "Payment for 3 items from MyShop"
      }'
Learn how to run these code samples in your terminal by reading our guide.