Payment Links

Payment links are shareable, hosted pages for collecting money — fixed-amount, variable-amount, or tied to a specific product.

Endpoints

MethodPathPurpose
POST/organization/payment-linksCreate a payment link
GET/organization/payment-linksList payment links
GET/organization/payment-links/:idGet payment link details
PATCH/organization/payment-links/:idUpdate a payment link
DELETE/organization/payment-links/:idArchive a payment link
POST/organization/payment-links/:id/shareShare a link via email
GET/organization/payment-links/shares/historyView share history

Create a payment link

curl --request POST \
  --url $baseUrl/organization/payment-links \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "Consultation Fee",
    "checkoutType": "CUSTOM",
    "amount": 5000,
    "currency": "USD",
    "isVariableAmount": false,
    "settlementAccountId": "string",
    "collectAddress": false,
    "collectPhoneNumber": false,
    "redirectUrl": "https://yoursite.com/thank-you",
    "successMessage": "Thanks for your payment!"
  }'
FieldTypeRequiredDescription
namestringYesInternal/display name for the link
checkoutTypePRODUCT | CUSTOMYesWhether the link is tied to a product or a custom amount
productIdstringIf checkoutType is PRODUCTProduct to bill against
amountnumberNoFixed amount — leave empty for variable amount
currencystringYese.g. USD
isVariableAmountbooleanYesLet the customer enter their own amount
settlementAccountIdstringYesWallet the funds land in
collectAddressbooleanNoCollect a shipping/billing address
collectPhoneNumberbooleanNoCollect a phone number
customFieldLabelstringNoAdd a custom field, e.g. "Invoice Number"
redirectUrlstringNoWhere to send the customer after payment
successMessagestringNoMessage shown on the success screen
expiresAtstringNoExpiry timestamp

Response

{
  "success": true,
  "statusCode": 201,
  "message": "Payment link created successfully",
  "data": {
    "id": "pl_abc123",
    "slug": "monthly-subscription",
    "url": "https://pay.nadapay.io/monthly-subscription",
    "amount": 5000,
    "currency": "USD",
    "isActive": true,
    "createdAt": "2026-01-01T00:00:00Z"
  }
}

The url field is the shareable link — hand this directly to your customer.

Best practices

  • Keep the link stable once shared; avoid recreating links for the same purpose
  • Use share and the share history endpoint for audit and customer-support visibility
  • Archive rather than delete once a link is no longer needed — archived links stop accepting payments but preserve history

Call this next

  • Share the link via email using the share endpoint
  • Track completed payments through your webhook handler


Did this page help you?