Payment Links
Payment Links — methods, parameters, and examples for easy-sdk (pip).
Payment links are pre-configured, hosted checkout URLs you can share
over email, chat, or social — useful when you don't want to build a
checkout UI yourself. Each link can charge once or be reused, optionally
capped by payment_limit.
Namespace: client.payment_links.
Methods
create
link = client.payment_links.create(
items=[{"price_id": "price_abc", "quantity": 1}],
payment_limit=1,
branding_overrides={"primary_color": "#0a84ff"},
tags={"campaign": "newsletter-jan"},
idempotency_key="link-newsletter-jan",
)
print(link.id) # use this id to look up the full linkReturns: CreatePaymentLinkResponse (just { id }). All other fields
are accepted via **kwargs.
list
links = client.payment_links.list(limit=50, offset=0)Returns list[PaymentLink].
retrieve
link = client.payment_links.retrieve("plink_123")update
link = client.payment_links.update(
"plink_123",
payment_limit=10,
branding_overrides={"primary_color": "#ff3b30"},
)delete
client.payment_links.delete("plink_123")Returns None (HTTP 204).
list_payments
payments = client.payment_links.list_payments("plink_123", limit=50)Returns the raw data payload (a list of payment / transfer objects)
as a dict — passed through verbatim from the API.
Object shape
PaymentLink:
| Field | Type |
|---|---|
id | str |
state | str | None |
payment_count | int | None |
payment_limit | int | None |
branding_overrides | dict[str, Any] | None |
tags | dict[str, Any] | None |
created_at | str | None |
updated_at | str | None |
Examples
Single-use checkout link
link = client.payment_links.create(
items=[{"price_id": "price_abc", "quantity": 1}],
payment_limit=1,
)
share_url = f"https://pay.itseasy.co/{link.id}"
send_invoice_email(customer_email, url=share_url)Reusable promo link, then audit later
link = client.payment_links.create(
items=[{"price_id": "price_promo", "quantity": 1}],
tags={"promo": "spring-2026"},
)
# Later — pull every payment that used it
payments = client.payment_links.list_payments(link.id, limit=200)Disable a link without deleting it
client.payment_links.update("plink_123", payment_limit=0)