Skip to main content
POST

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json

Parameters required to create a payment link

currency
string
required

Currency of the payment (e.g. HKD)

Required string length: 3
Example:

"HKD"

mode
enum<string>
required

Specified payment link mode. Accepted values: - PAYMENT: payment link is used to collect the specified payment amount now; - SETUP: payment link is used to register a payment method to be charged later (using POST /payments).

Available options:
PAYMENT,
SETUP
Example:

"PAYMENT"

sender
object
required

Details on the sender of the payment

unique_reference_id
string
required

Customer-supplied string, uniquely identifying the payment to be collected. See “Handling retries and avoiding duplicate payments” below.

Minimum string length: 1
amount
integer

Amount of the payment (in minor currency unit). Required if mode = PAYMENT.

Required range: x >= 1
Example:

100

integration_metadata
object

Optional parameters to pass custom values for Finverse-supported integrations (e.g. ERP/CRM/accounting integrations)

Optional parameters to customize the behaviour of Finverse Link's UI to fit your implementation requirements

metadata
object

Customer-supplied attributes in key:value format. E.g. contract_id: 1234

payment_details
object

Details on the payment Only used if mode = PAYMENT.

payment_metadata
object

Customer-supplied attributes associated with the payment, in key:value format. Use this to pass any information you later need to tie a successful payment back to its original context (e.g. user, bill, invoice, checkout). E.g. contract_id: 1234. These attributes will be added as metadata on any payment object directly created by the Payment Link, and will be included in: (i) any API response with a payment object; (ii) Payments webhooks; and (iii) Finverse's reporting (e.g. statements issued to customer apps). Only used if mode = PAYMENT. Will be ignored if mode = SETUP.

payment_setup_options
object

Additional parameters to configure payment methods and future payments Required if mode = SETUP.

Response

Success (payment mode, future payments disabled)

amount
integer

Amount of the payment (in minor currency unit). Only returned if mode = PAYMENT.

Example:

100

created_at
string<date-time>

Timestamp when the payment link was first created

currency
string

Currency of the payment (e.g. HKD)

Example:

"HKD"

integration_metadata
object

Optional parameters to customize the behaviour of Finverse Link's UI to fit your implementation requirements. See POST /payment_links.

metadata
object

Customer-supplied attributes in key:value format. E.g. contract_id: 1234.

mode
enum<string>

Specified payment link mode. Possible values: - PAYMENT: payment link is used to collect the specified payment amount now; - SETUP: payment link is used to register a payment method to be charged later (using POST /payments).

Available options:
PAYMENT
Example:

"PAYMENT"

payment
object

Latest Payment object (if any) associated with the payment link Only returned if mode = PAYMENT.

payment_details
object

Details on the payment Only returned if mode = PAYMENT.

Finverse Payment Link ID for this payment link. Always unique. Creating a payment link with different unique_reference_id values will result in two payment links with different IDs.

payment_metadata
object

Customer-supplied attributes in key:value format, to facilitate payment reconciliation. E.g. contract_id: 1234. These will be added as metadata on any Payment object directly created by the Payment Link, and will be included in Finverse's reporting (e.g. statements issued to customer apps). Only used if mode = PAYMENT. Will be ignored if mode = SETUP.

payment_method
object

Details on the payment method authorized by the end-user

payment_setup_options
object

Additional parameters recording how payment methods and future payments have been configured

sender
object

Details on the sender of the payment

session_status
enum<string>

Current session status of the payment link. Possible values: OPEN, PROCESSING, COMPLETE, FAILED. Session status returns interim status details on a payment link in status = CREATED: - Session status starts as OPEN, then may progress to PROCESSING (indicating an async payment method or payment is currently processing), COMPLETE (for successful payment links), or FAILED (for failed payment method setup or payments). - Session status is computed at read-time based on the status of any payment method setup or payment initiated by the payment link, until the payment link is successful. - Session status may reset if a user retries a payment method setup or payment using the same payment link until it is successful (e.g. session_status may go from FAILED > PROCESSING, FAILED > COMPLETE, etc). - The final session_status is COMPLETE, which corresponds to payment link status = PAID or SETUP_SUCCEEDED. We recommend using the payment link status as the primary indicator of payment link success (e.g. status = PAID or SETUP_CREATED). However, if your user flow or UI needs interim session details while the payment link status is still CREATED, then you should use session_status (for example to display to the user a "Your payment is processing" or "Your payment failed" message).

Available options:
OPEN,
PROCESSING,
COMPLETE,
FAILED
status
enum<string>

Status of the payment link. Possible values: CREATED, PAID, SETUP_SUCCEEDED, CANCELLED. The status for a successful payment link varies based on the payment link mode: - mode = PAYMENT => success status = PAID - mode = SETUP => success status = SETUP_SUCCEEDED.

Available options:
CREATED,
PAID,
EXPIRED
unique_reference_id
string

Customer-supplied string, uniquely identifying the payment to be collected. See “Handling retries and avoiding duplicate payments” under POST /payment_links.

Minimum string length: 1
updated_at
string<date-time>

Timestamp of the last update to the payment link's record

url
string

URL to launch the Finverse Link UI flow, for the end-user to select a payment method & authorize the payment.