Manage Payment Links

Learn how to generate, send, and manage payment links via the API
Applies to:Developers

Use Payabli’s payment link functions to generate customized payment links from invoices and send them directly to customers for payment. Use payment links to create payment requests with your accepted payment methods, branding, and invoice details without having to build or host your own payment pages. Payment links look great in email and on mobile by default, so you can focus on getting paid.

Considerations

Keep these considerations in mind when working with payment links:

  • You can create payment links for invoices created via the API.
  • If you create and send an invoice from PartnerHub or PayHub, a payment link is automatically created for the invoice.
  • You can send payment links via email or SMS (if SMS is enabled for your account).
  • A payment link’s URL structure follows a specific pattern: base URL + entrypoint identifier + payment link ID.

Send a POST request to /api/PaymentLink/{idInvoice} to create a payment link for an invoice. See the API reference for full documentation.

This example creates a payment link for the invoice with ID 23548884 and includes custom branding and payment options.

POST
/api/PaymentLink/:idInvoice
1from payabli import (
2 ContactElement,
3 Element,
4 FileContent,
5 HeaderElement,
6 InvoiceElement,
7 LabelElement,
8 MethodElement,
9 MethodElementSettings,
10 MethodElementSettingsApplePay,
11 MethodsList,
12 NoteElement,
13 PageElement,
14 PagelinkSetting,
15 PayorElement,
16 PayorFields,
17 payabli,
18)
19
20client = payabli(
21 api_key="YOUR_API_KEY",
22)
23client.payment_link.add_pay_link_from_invoice(
24 id_invoice=23548884,
25 mail_2="jo@example.com; ceo@example.com",
26 contact_us=ContactElement(
27 email_label="Email",
28 enabled=True,
29 header="Contact Us",
30 order=0,
31 payment_icons=True,
32 phone_label="Phone",
33 ),
34 invoices=InvoiceElement(
35 enabled=True,
36 invoice_link=LabelElement(
37 enabled=True,
38 label="View Invoice",
39 order=0,
40 ),
41 order=0,
42 view_invoice_details=LabelElement(
43 enabled=True,
44 label="Invoice Details",
45 order=0,
46 ),
47 ),
48 logo=Element(
49 enabled=True,
50 order=0,
51 ),
52 message_before_paying=LabelElement(
53 enabled=True,
54 label="Please review your payment details",
55 order=0,
56 ),
57 notes=NoteElement(
58 enabled=True,
59 header="Additional Notes",
60 order=0,
61 placeholder="Enter any additional notes here",
62 value="",
63 ),
64 page=PageElement(
65 description="Complete your payment securely",
66 enabled=True,
67 header="Payment Page",
68 order=0,
69 ),
70 payment_button=LabelElement(
71 enabled=True,
72 label="Pay Now",
73 order=0,
74 ),
75 payment_methods=MethodElement(
76 all_methods_checked=True,
77 enabled=True,
78 header="Payment Methods",
79 methods=MethodsList(
80 amex=True,
81 apple_pay=True,
82 discover=True,
83 e_check=True,
84 mastercard=True,
85 visa=True,
86 ),
87 order=0,
88 settings=MethodElementSettings(
89 apple_pay=MethodElementSettingsApplePay(
90 button_style="black",
91 button_type="pay",
92 language="en-US",
93 ),
94 ),
95 ),
96 payor=PayorElement(
97 enabled=True,
98 fields=[
99 PayorFields(
100 display=True,
101 fixed=True,
102 identifier=True,
103 label="Full Name",
104 name="fullName",
105 order=0,
106 required=True,
107 validation="^[a-zA-Z ]+$",
108 value="",
109 width=0,
110 )
111 ],
112 header="Payor Information",
113 order=0,
114 ),
115 review=HeaderElement(
116 enabled=True,
117 header="Review Payment",
118 order=0,
119 ),
120 settings=PagelinkSetting(
121 color="#000000",
122 custom_css_url="https://example.com/custom.css",
123 language="en",
124 page_logo=FileContent(
125 f_content="PHN2ZyB2aWV3Qm94PSIwIDAgODAwIDEwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPCEtLSBCYWNrZ3JvdW5kIC0tPgogIDxyZWN0IHdpZHRoPSI4MDAiIGhlaWdodD0iMTAwMCIgZmlsbD0id2hpdGUiLz4KICAKICA8IS0tIENvbXBhbnkgSGVhZGVyIC0tPgogIDx0ZXh0IHg9IjQwIiB5PSI2MCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjI0IiBmb250LXdlaWdodD0iYm9sZCIgZmlsbD0iIzJjM2U1MCI+R3J1enlhIEFkdmVudHVyZSBPdXRmaXR0ZXJzPC90ZXh0PgogIDxsaW5lIHgxPSI0MCIgeTE9IjgwIiB4Mj0iNzYwIiB5Mj0iODAiIHN0cm9rZT0iIzJjM2U1MCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgCiAgPCEtLSBDb21wYW55IERldGFpbHMgLS0+CiAgPHRleHQgeD0iNDAiIHk9IjExMCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMzQ0OTVlIj4xMjMgTW91bnRhaW4gVmlldyBSb2FkPC90ZXh0PgogIDx0ZXh0IHg9IjQwIiB5PSIxMzAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzM0NDk1ZSI+VGJpbGlzaSwgR2VvcmdpYSAwMTA1PC90ZXh0PgogIDx0ZXh0IHg9IjQwIiB5PSIxNTAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzM0NDk1ZSI+VGVsOiArOTk1IDMyIDEyMyA0NTY3PC90ZXh0PgogIDx0ZXh0IHg9IjQwIiB5PSIxNzAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzM0NDk1ZSI+RW1haWw6IGluZm9AZ3J1enlhYWR2ZW50dXJlcy5jb208L3RleHQ+CgogIDwhLS0gSW52b2ljZSBUaXRsZSAtLT4KICA8dGV4dCB4PSI2MDAiIHk9IjExMCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjI0IiBmb250LXdlaWdodD0iYm9sZCIgZmlsbD0iIzJjM2U1MCI+SU5WT0lDRTwvdGV4dD4KICA8dGV4dCB4PSI2MDAiIHk9IjE0MCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMzQ0OTVlIj5EYXRlOiAxMi8xMS8yMDI0PC90ZXh0PgogIDx0ZXh0IHg9IjYwMCIgeT0iMTYwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTQiIGZpbGw9IiMzNDQ5NWUiPkludm9pY2UgIzogR1JaLTIwMjQtMTEyMzwvdGV4dD4KCiAgPCEtLSBCaWxsIFRvIFNlY3Rpb24gLS0+CiAgPHRleHQgeD0iNDAiIHk9IjIyMCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iYm9sZCIgZmlsbD0iIzJjM2U1MCI+QklMTCBUTzo8L3RleHQ+CiAgPHJlY3QgeD0iNDAiIHk9IjIzNSIgd2lkdGg9IjMwMCIgaGVpZ2h0PSI4MCIgZmlsbD0iI2Y3ZjlmYSIvPgogIDx0ZXh0IHg9IjUwIiB5PSIyNjAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzM0NDk1ZSI+W0N1c3RvbWVyIE5hbWVdPC90ZXh0PgogIDx0ZXh0IHg9IjUwIiB5PSIyODAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzM0NDk1ZSI+W0FkZHJlc3MgTGluZSAxXTwvdGV4dD4KICA8dGV4dCB4PSI1MCIgeT0iMzAwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTQiIGZpbGw9IiMzNDQ5NWUiPltDaXR5LCBDb3VudHJ5XTwvdGV4dD4KCiAgPCEtLSBUYWJsZSBIZWFkZXJzIC0tPgogIDxyZWN0IHg9IjQwIiB5PSIzNDAiIHdpZHRoPSI3MjAiIGhlaWdodD0iMzAiIGZpbGw9IiMyYzNlNTAiLz4KICA8dGV4dCB4PSI1MCIgeT0iMzYwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBmaWxsPSJ3aGl0ZSI+RGVzY3JpcHRpb248L3RleHQ+CiAgPHRleHQgeD0iNDUwIiB5PSIzNjAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IndoaXRlIj5RdWFudGl0eTwvdGV4dD4KICA8dGV4dCB4PSI1NTAiIHk9IjM2MCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgZmlsbD0id2hpdGUiPlJhdGU8L3RleHQ+CiAgPHRleHQgeD0iNjgwIiB5PSIzNjAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IndoaXRlIj5BbW91bnQ8L3RleHQ+CgogIDwhLS0gVGFibGUgUm93cyAtLT4KICA8cmVjdCB4PSI0MCIgeT0iMzcwIiB3aWR0aD0iNzIwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZjdmOWZhIi8+CiAgPHRleHQgeD0iNTAiIHk9IjM5MCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMzQ0OTVlIj5Nb3VudGFpbiBDbGltYmluZyBFcXVpcG1lbnQgUmVudGFsPC90ZXh0PgogIDx0ZXh0IHg9IjQ1MCIgeT0iMzkwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTQiIGZpbGw9IiMzNDQ5NWUiPjE8L3RleHQ+CiAgPHRleHQgeD0iNTUwIiB5PSIzOTAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzM0NDk1ZSI+JDI1MC4wMDwvdGV4dD4KICA8dGV4dCB4PSI2ODAiIHk9IjM5MCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMzQ0OTVlIj4kMjUwLjAwPC90ZXh0PgoKICA8cmVjdCB4PSI0MCIgeT0iNDAwIiB3aWR0aD0iNzIwIiBoZWlnaHQ9IjMwIiBmaWxsPSJ3aGl0ZSIvPgogIDx0ZXh0IHg9IjUwIiB5PSI0MjAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzM0NDk1ZSI+R3VpZGVkIFRyZWsgUGFja2FnZSAtIDIgRGF5czwvdGV4dD4KICA8dGV4dCB4PSI0NTAiIHk9IjQyMCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMzQ0OTVlIj4xPC90ZXh0PgogIDx0ZXh0IHg9IjU1MCIgeT0iNDIwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTQiIGZpbGw9IiMzNDQ5NWUiPiQ0MDAuMDA8L3RleHQ+CiAgPHRleHQgeD0iNjgwIiB5PSI0MjAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzM0NDk1ZSI+JDQwMC4wMDwvdGV4dD4KCiAgPHJlY3QgeD0iNDAiIHk9IjQzMCIgd2lkdGg9IjcyMCIgaGVpZ2h0PSIzMCIgZmlsbD0iI2Y3ZjlmYSIvPgogIDx0ZXh0IHg9IjUwIiB5PSI0NTAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzM0NDk1ZSI+U2FmZXR5IEVxdWlwbWVudCBQYWNrYWdlPC90ZXh0PgogIDx0ZXh0IHg9IjQ1MCIgeT0iNDUwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTQiIGZpbGw9IiMzNDQ5NWUiPjE8L3RleHQ+CiAgPHRleHQgeD0iNTUwIiB5PSI0NTAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzM0NDk1ZSI+JDE1MC4wMDwvdGV4dD4KICA8dGV4dCB4PSI2ODAiIHk9IjQ1MCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMzQ0OTVlIj4kMTUwLjAwPC90ZXh0PgoKICA8IS0tIFRvdGFscyAtLT4KICA8bGluZSB4MT0iNDAiIHkxPSI0ODAiIHgyPSI3NjAiIHkyPSI0ODAiIHN0cm9rZT0iIzJjM2U1MCIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgPHRleHQgeD0iNTUwIiB5PSI1MTAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IiMzNDQ5NWUiPlN1YnRvdGFsOjwvdGV4dD4KICA8dGV4dCB4PSI2ODAiIHk9IjUxMCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMzQ0OTVlIj4kODAwLjAwPC90ZXh0PgogIDx0ZXh0IHg9IjU1MCIgeT0iNTM1IiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBmaWxsPSIjMzQ0OTVlIj5UYXggKDE4JSk6PC90ZXh0PgogIDx0ZXh0IHg9IjY4MCIgeT0iNTM1IiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTQiIGZpbGw9IiMzNDQ5NWUiPiQxNDQuMDA8L3RleHQ+CiAgPHRleHQgeD0iNTUwIiB5PSI1NzAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IiMyYzNlNTAiPlRvdGFsOjwvdGV4dD4KICA8dGV4dCB4PSI2ODAiIHk9IjU3MCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iYm9sZCIgZmlsbD0iIzJjM2U1MCI+JDk0NC4wMDwvdGV4dD4KCiAgPCEtLSBQYXltZW50IFRlcm1zIC0tPgogIDx0ZXh0IHg9IjQwIiB5PSI2NDAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IiMyYzNlNTAiPlBheW1lbnQgVGVybXM8L3RleHQ+CiAgPHRleHQgeD0iNDAiIHk9IjY3MCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMzQ0OTVlIj5QYXltZW50IGlzIGR1ZSB3aXRoaW4gMzAgZGF5czwvdGV4dD4KICA8dGV4dCB4PSI0MCIgeT0iNjkwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTQiIGZpbGw9IiMzNDQ5NWUiPlBsZWFzZSBpbmNsdWRlIGludm9pY2UgbnVtYmVyIG9uIHBheW1lbnQ8L3RleHQ+CgogIDwhLS0gQmFuayBEZXRhaWxzIC0tPgogIDx0ZXh0IHg9IjQwIiB5PSI3MzAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IiMyYzNlNTAiPkJhbmsgRGV0YWlsczwvdGV4dD4KICA8dGV4dCB4PSI0MCIgeT0iNzYwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTQiIGZpbGw9IiMzNDQ5NWUiPkJhbms6IEJhbmsgb2YgR2VvcmdpYTwvdGV4dD4KICA8dGV4dCB4PSI0MCIgeT0iNzgwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTQiIGZpbGw9IiMzNDQ5NWUiPklCQU46IEdFMTIzNDU2Nzg5MDEyMzQ1Njc4PC90ZXh0PgogIDx0ZXh0IHg9IjQwIiB5PSI4MDAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzM0NDk1ZSI+U1dJRlQ6IEJBR0FHRTIyPC90ZXh0PgoKICA8IS0tIEZvb3RlciAtLT4KICA8bGluZSB4MT0iNDAiIHkxPSI5MDAiIHgyPSI3NjAiIHkyPSI5MDAiIHN0cm9rZT0iIzJjM2U1MCIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgPHRleHQgeD0iNDAiIHk9IjkzMCIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjEyIiBmaWxsPSIjN2Y4YzhkIj5UaGFuayB5b3UgZm9yIGNob29zaW5nIEdydXp5YSBBZHZlbnR1cmUgT3V0Zml0dGVyczwvdGV4dD4KICA8dGV4dCB4PSI0MCIgeT0iOTUwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiM3ZjhjOGQiPnd3dy5ncnV6eWFhZHZlbnR1cmVzLmNvbTwvdGV4dD4KPC9zdmc+Cg==",
126 filename="logo.jpg",
127 ftype="jpg",
128 furl="",
129 ),
130 redirect_after_approve=True,
131 redirect_after_approve_url="https://example.com/success",
132 ),
133)

A successful request sends a 200 response with a JSON body that contains the payment link ID.

Response
1{
2 "isSuccess": true,
3 "responseText": "Success",
4 "responseData": "2325-XXXXXXX-90b1-4598-b6c7-44cdcbf495d7-1234"
5}

Send a POST request to /api/PaymentLink/push/{payLinkId} to deliver a payment link to a customer via email or SMS. See the API reference for full documentation.

Pay by SMS is an add-on feature. Before you can start sending payment links by SMS, the Payabli team must configure SMS sending for your organization. Contact us for more information.

This example sends a payment link via email to the customer and an additional recipient, with a PDF invoice attached. If SMS is enabled, you can also send payment links via SMS.

A successful request sends a 200 response with a JSON body that contains the payment link ID.

Response
1{
2 "isSuccess": true,
3 "responseText": "Success",
4 "responseData": "2325-XXXXXXX-90b1-4598-b6c7-44cdcbf495d7-1234"
5}

Send a GET request to /api/PaymentLink/{payLinkId} to retrieve information about a specific payment link. See the API reference for full documentation.

This example retrieves details for the payment link with ID 332-c277b704-1301.

GET
/api/PaymentLink/load/:paylinkId
1from payabli import payabli
2
3client = payabli(
4 api_key="YOUR_API_KEY",
5)
6client.payment_link.get_pay_link_from_id(
7 paylink_id="paylinkId",
8)

A successful request sends a 200 response that contains the payment link details.

Response
1{
2 "responseText": "Success",
3 "isSuccess": true,
4 "responseData": {
5 "AdditionalData": {
6 "key1": {
7 "key": "value"
8 },
9 "key2": {
10 "key": "value"
11 },
12 "key3": {
13 "key": "value"
14 }
15 },
16 "credentials": [
17 {}
18 ],
19 "lastAccess": "2022-06-30T15:01:00Z",
20 "pageContent": {
21 "amount": {
22 "enabled": true
23 },
24 "autopay": {
25 "enabled": true
26 },
27 "contactUs": {
28 "enabled": true
29 },
30 "entry": "entry",
31 "invoices": {
32 "enabled": true
33 },
34 "logo": {
35 "enabled": true
36 },
37 "messageBeforePaying": {
38 "enabled": true
39 },
40 "name": "name",
41 "notes": {
42 "enabled": true
43 },
44 "page": {
45 "enabled": true
46 },
47 "paymentButton": {
48 "enabled": true
49 },
50 "paymentMethods": {
51 "enabled": true
52 },
53 "payor": {
54 "enabled": true
55 },
56 "review": {
57 "enabled": true
58 },
59 "subdomain": "mypage-1"
60 },
61 "pageIdentifier": "null",
62 "pageSettings": {
63 "color": "color",
64 "customCssUrl": "customCssUrl",
65 "language": "language",
66 "redirectAfterApprove": true,
67 "redirectAfterApproveUrl": "redirectAfterApproveUrl"
68 },
69 "published": 1,
70 "receiptContent": {
71 "amount": {
72 "enabled": true
73 },
74 "contactUs": {
75 "enabled": true
76 },
77 "details": {
78 "enabled": true
79 },
80 "logo": {
81 "enabled": true
82 },
83 "messageBeforeButton": {
84 "enabled": true
85 },
86 "page": {
87 "enabled": true
88 },
89 "paymentButton": {
90 "enabled": true
91 },
92 "paymentInformation": {
93 "enabled": true
94 },
95 "settings": {
96 "enabled": true
97 }
98 },
99 "subdomain": "mypage-1",
100 "totalAmount": 1.1,
101 "validationCode": "validationCode"
102 }
103}

Send a PUT request to /api/PaymentLink/{payLinkId} to modify an existing payment link’s details. See the API reference for full documentation.

This example updates the payment link with ID 332-c277b704-1301 with new payment button text and notes.

PUT
/api/PaymentLink/update/:payLinkId
1from payabli import LabelElement, NoteElement, payabli
2
3client = payabli(
4 api_key="YOUR_API_KEY",
5)
6client.payment_link.update_pay_link_from_id(
7 pay_link_id="332-c277b704-1301",
8 notes=NoteElement(
9 enabled=True,
10 header="Additional Notes",
11 order=0,
12 placeholder="Enter any additional notes here",
13 value="",
14 ),
15 payment_button=LabelElement(
16 enabled=True,
17 label="Pay Now",
18 order=0,
19 ),
20)

A successful request sends a 200 response with a JSON body that contains the updated payment link’s ID.

Response
1{
2 "isSuccess": true,
3 "responseText": "Success",
4 "responseData": "332-c277b704-1301"
5}