Get a payment link by ID
GEThttps://app.shuttleglobal.com/c/api/instances/{instance_key}/payment_links/{id}
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”/^pl_[a-zA-Z0-9]+_[a-zA-Z0-9-]+$/The payment link’s ID (pl_...).
Query Parameters
Section titled “Query Parameters”Comma-separated list of fields to expand (account, contract, charge, transaction, payment_method, payment). Note: These fields will only be populated for payment links with status PAYMENT_PENDING or PAYMENT_SUCCESS.
Responses
Section titled “Responses”Payment link details
object
object
Unique identifier for the payment link (also used as payment nonce)
/^pl_[a-zA-Z0-9]+_[a-zA-Z0-9-]+$/Associated account ID (populated on PAYMENT_PENDING or PAYMENT_SUCCESS)
Associated charge ID (populated on PAYMENT_PENDING or PAYMENT_SUCCESS)
Client ID (read-only, derived from credentials)
/^cl_[a-zA-Z0-9]+$/Associated contract ID (populated on PAYMENT_PENDING or PAYMENT_SUCCESS)
Expiry date for the payment link. Must be a future date - cannot set expiry to a past date.
Payment nonce for tokenization actions (same as id)
Configuration options for the payment link experience
object
Account ID to skip authentication section
/^acc_[0-9]+_[0-9a-z]+$/Customer account details
object
Customer’s address
object
Country code
Address line 1
Address line 2
Address line 3
City/Town
Post code/ZIP code
State/Province (using ISO 3166-2 subdivision codes, e.g., ‘CA’ for California)
External CRM identifier for the customer
Customer’s email address
Customer’s first name
Customer’s last name
Customer’s phone number
"PAYMENT"Action type for the payment link.
PAYMENT— take the payment immediately.AUTH— authorise only, reserving the funds without capturing. Capture later via the Activity view or the Capture API.TOKENISE— capture the customer’s payment details without taking a payment, producing a reusable token you can charge later.
Note the spelling: the value is TOKENISE, not TOKENIZE.
When using TOKENISE, omit amount and default_amount — the link takes no
payment. save_card is redundant, as storing the card is the whole operation.
Keep currency: it determines which payment methods are offered. Retrieve the
stored token from the payment_method field when you fetch the payment link, or
from the PAYMENT_METHOD.ACTIVE webhook.
Only payment methods capable of the requested action are displayed. For example
Apple Pay does not support TOKENISE, and ACH does not support AUTH.
Whether to enable the note/comment field
"18.18"Fixed amount for the payment in major currency units, as a decimal string without commas, using ‘.’ as the decimal separator (e.g. “18.18” for £18.18). If specified, the payer cannot modify it.
Fixed note/comment for the payment (if specified, user cannot modify)
"USD"Fixed currency for the payment (e.g. USD)
"100.00"Default amount in major currency units, as a decimal string without commas, using ‘.’ as the decimal separator (e.g. “100.00”). The payer can modify it.
Default note/comment to show (user can modify)
Default reference to show (user can modify)
Custom name for the payment link (defaults to instance name)
Custom introduction message for the payment page
Message to display to the user when their payment is pending authorization.
Message to display to the user when their payment is successful.
URL to redirect users when payment requires authorization. Query parameters included in redirect:
- payment_link - Payment link ID
- status - Will be ‘PENDING’
- contract - Contract ID if created
- charge - Charge ID if created
- transaction - Transaction ID if created
- payment_method - Payment method ID if created
- account - Account ID if created If skip_receipt is true, redirect happens immediately after authorization is required. If skip_receipt is false, URL is presented after showing the pending message.
Fixed reference for the payment (if specified, user cannot modify)
"ECOMMERCE"Source of the payment link
Channel identifier to process the payment through
Only allow new payment methods, do not show saved payment methods
IANA timezone name for date/time display (e.g., America/New_York)
URL to redirect users after successful payment completion. Query parameters included in redirect:
- payment_link - Payment link ID
- status - Will be ‘COMPLETED’
- contract - Contract ID if created
- charge - Charge ID if created
- transaction - Transaction ID if created
- payment_method - Payment method ID if created
- account - Account ID if created If skip_receipt is true, redirect happens immediately after successful authorization. If skip_receipt is false, URL is presented as a button on the receipt page. Query parameters will be appended to this URL - see RedirectUrlParameters schema. Parameters include: payment_link, status, contract, charge, transaction, payment_method, account. Example: https://shop.example.com/success?payment_link=pl_1234_abcdef&status=COMPLETED… Use these parameters to verify payment status and retrieve additional details via API.
Associated payment method ID (populated on various payment events)
Associated payment ID (populated on PAYMENT_PENDING or PAYMENT_SUCCESS)
Current status of the payment link:
- ACTIVE - Payment link is available and can be used for payment
- PENDING - Payment is in process (either actively processing or in an unresolved state)
- COMPLETED - Payment link has been successfully paid
- EXPIRED - Payment link has passed its expiration date without being paid or reaching pending state
- ARCHIVE - Payment link has been deleted (soft-delete)
Status transitions:
- ACTIVE → PENDING: When payment/tokenization starts
- PENDING → COMPLETED: On successful payment
- PENDING → ACTIVE: On failed payment attempt
- Any → EXPIRED: When expiration time is reached
- Any → ARCHIVE: When explicitly archived via DELETE
Associated transaction ID (populated on PAYMENT_PENDING or PAYMENT_SUCCESS)
"https://app.shuttleglobal.com/cp/link/{id}"Payment link URL (read-only)
1Object version for optimistic concurrency control
Authentication required
Every error has a code and a message. Some add more fields alongside them, with detail about the error.
object
The error code, for example VALIDATION_ERROR, INVALID, INVALID_REQUEST, UNAUTHORIZED, FORBIDDEN or NOT_FOUND. Program against this, not the message.
What went wrong, in words, for logs and support.
Example
{ "code": "UNAUTHORIZED", "message": "Unauthorised"}Resource not found
Every error has a code and a message. Some add more fields alongside them, with detail about the error.
object
The error code, for example VALIDATION_ERROR, INVALID, INVALID_REQUEST, UNAUTHORIZED, FORBIDDEN or NOT_FOUND. Program against this, not the message.
What went wrong, in words, for logs and support.
Internal server error
object
object
Was this page helpful?
What went wrong?
Thanks for telling us.