curl --request POST \
--url https://api.meum.io/v1/public/payment-links/{public_id}/checkout \
--header 'Content-Type: application/json' \
--data '
{
"origin_asset": "usdc.near",
"refund_to": "alice.near"
}
'{
"invoice_id": "<string>",
"checkout_url": "<string>",
"reused": true
}{
"error": {
"type": "not_found",
"code": "invoice_not_found",
"message": "Invoice not found",
"request_id": "req_a1b2c3d4e5f6789012345678"
}
}{
"error": {
"type": "not_found",
"code": "invoice_not_found",
"message": "Invoice not found",
"request_id": "req_a1b2c3d4e5f6789012345678"
}
}{
"error": {
"type": "not_found",
"code": "invoice_not_found",
"message": "Invoice not found",
"request_id": "req_a1b2c3d4e5f6789012345678"
}
}{
"error": {
"type": "not_found",
"code": "invoice_not_found",
"message": "Invoice not found",
"request_id": "req_a1b2c3d4e5f6789012345678"
}
}{
"error": {
"type": "not_found",
"code": "invoice_not_found",
"message": "Invoice not found",
"request_id": "req_a1b2c3d4e5f6789012345678"
}
}Start payment link checkout
Creates or reuses an invoice for this payment link and returns a hosted checkout URL. No API key required. Rate limited per buyer token.
Fixed amount: omit amount when the link uses fixed_amount mode.
Customer-defined amount: send amount as a decimal string within the link min/max.
Single-use links: a second checkout reuses the open invoice when one exists;
paid single-use links return 403.
curl --request POST \
--url https://api.meum.io/v1/public/payment-links/{public_id}/checkout \
--header 'Content-Type: application/json' \
--data '
{
"origin_asset": "usdc.near",
"refund_to": "alice.near"
}
'{
"invoice_id": "<string>",
"checkout_url": "<string>",
"reused": true
}{
"error": {
"type": "not_found",
"code": "invoice_not_found",
"message": "Invoice not found",
"request_id": "req_a1b2c3d4e5f6789012345678"
}
}{
"error": {
"type": "not_found",
"code": "invoice_not_found",
"message": "Invoice not found",
"request_id": "req_a1b2c3d4e5f6789012345678"
}
}{
"error": {
"type": "not_found",
"code": "invoice_not_found",
"message": "Invoice not found",
"request_id": "req_a1b2c3d4e5f6789012345678"
}
}{
"error": {
"type": "not_found",
"code": "invoice_not_found",
"message": "Invoice not found",
"request_id": "req_a1b2c3d4e5f6789012345678"
}
}{
"error": {
"type": "not_found",
"code": "invoice_not_found",
"message": "Invoice not found",
"request_id": "req_a1b2c3d4e5f6789012345678"
}
}Path Parameters
Public checkout token from the Pay Link's public_id field (starts with plpub_).
Share this in checkout URLs; do not confuse with the merchant plink_ ID.
^plpub_[0-9a-z]{20,32}$"plpub_c9a9bb730611077574c828af5af5fed1"
Body
Required. Which crypto the customer will pay with.
Format: token.network: e.g. usdc.near means USDC on NEAR.
"usdc.near"
Required. Wallet address to send refunds to if payment fails or the customer overpays.
Must be valid on the same network as origin_asset (e.g. alice.near for NEAR).
"alice.near"
How much to charge the customer, as a decimal string (e.g. "42.50").
Required when the Pay Link uses customer_defined_amount.
Omit when the link has a fixed price; the link's amount is used automatically.
"42.50"
Response
Checkout session created
New or existing invoice for this checkout (inv_...). Use to track payment status.
^(inv_|txn_|plink_|wh_|whd_|evt_|int_)[0-9a-z]{20,32}$Open this URL in a browser to show the payment page to the customer.
true: an unpaid invoice from a previous attempt was reused (common for single-use links).
false: a brand-new invoice was created.