Payment Links
Now that we've created a product
and price
, and pointed that price
to our product
, we have almost everything that we need to get started selling to customers. The final step will be to connect our product
(and its price
) with a payment method — a paymentLink
.
A payment link is a way to sell goods and services, either one-time or recurring.
Payment links are typically in the form of a checkout page, but Sphere gives you the flexibility to embed the backend logic of a payment link inside of anything: like a button on your website. The payment link object will respond with a URL if you would like to leverage our prebuilt checkout. However, you always have the option to build your own frontend experience by using our React SDK, or by directly making a request to the API to obtain the necessary transaction details to build the transaction yourself and present to your users.
The last thing worth noting before we dive into the object itself: like Stripe, the way that you connect your product with a paymentLink is to pass it in its price as a lineItem in the lineItems field.
The Payment Link object
Properties
- Name
id
- Type
- string
- Description
A unique identifier for the object.
- Name
name
- Type
- string
- Description
Name of your payment link. Hidden from users. Max length (500).
- Name
description
- Type
- string
- Description
Describes your payment link. Hidden from customers. Max length (500).
- Name
meta
- Type
- object
- Description
Set of key-value pairs (JSON) for arbitrary usage. Used to save structured information about the object to reference elsewhere. Think of it as general purpose storage space.
- Name
url
- Type
- string
- Description
The URL for a Sphere-hosted prebuilt checkout page for your payment link.
- Can be passed to your customers for them to pay for your products.
- If you would prefer to build your own frontend, use the React SDK or API directly.
- Name
successUrl
- Type
- string
- Description
The URL that your customers will be redirected to upon a successful payment.
- Name
failUrl
- Type
- string
- Description
The URL that your customers will be redirected to upon a failed payment.
- Name
start
- Type
- string
- Description
Datetime for when the payment link becomes payable.
- Name
end
- Type
- string
- Description
Datetime that defines when the payment link becomes inactive and unpayable.
- Name
taxRate
- Type
- string
- Description
The
id
of thetaxRate
object used for the payment.
- Name
shippingRate
- Type
- string
- Description
The
id
of theshippingRate
object used for the payment.
- Name
lineItems
- Type
- object array
- Description
A critical list of objects that define which
product
s are being sold andprice
s are being used in the payment link, also including information such as their default quantities.lineItems
is the field which provides the fundamental connection between yourproduct
,price
, and selected payment method.- Name
quantity
- Type
- number
- Description
Defines the default amount of a given
product
being bought.
- Name
quantityMutable
- Type
- boolean
- Description
Determines if customers can adjust the default
quantity
. True implies that your customers can edit the quantity of this lineItem.
- Name
quantityLabel
- Type
- string
- Description
The label that describes what a quantity of a given product is. Useful for when you want to display a different label other than the
Qty
label on the checkout page (e.g.,Months
).
- Name
price
- Type
- string
- Description
The
id
of theprice
that will be used for theproduct
during checkout.
- Name
product
- Type
- number
- Description
The
id
of theproduct
that the line item points to; what the customer purchases.
- Name
amountTotal
- Type
- number
- Description
The total amount purchased, measured in the
paymentCurrency
.
- Name
paymentCurrency
- Type
- string
- Description
The public key for the mint address (Solana) or token contract address (EVM) used for the payment.
- Name
updated
- Type
- string
- Description
Datetime for when the line item was last updated.
- Name
created
- Type
- string
- Description
Datetime for when the line item was created.
- Name
features
- Type
- object
- Description
Defines which
personalInfo
elements you'd like to collect about your customer.- Name
requiresEmail
- Type
- boolean
- Description
Determines whether the payment link requires an email from the customer.
- Name
requiresName
- Type
- boolean
- Description
Determines whether the payment link requires a first and last name from the customer.
- Name
requiresShippingDetails
- Type
- boolean
- Description
Determines whether the payment link requires shipping details from the customer.
- Name
coupon
- Type
- string
- Description
The
id
of thecoupon
object to apply to the payment link.
- Name
discordConstraints
- Type
- object array
- Description
A list of
discordConstraint
objects to apply to the payment link.- Name
id
- Type
- string
- Description
Unique identifier for the object. Auto-generated by Sphere upon creation.
- Name
paymentLinkConstraint
- Type
- object
- Description
The
paymentLinkConstraint
object to apply to thediscordConstraint
.- Name
id
- Type
- string
- Description
Unique identifier for the object. Auto-generated by Sphere upon creation.
- Name
maxQuantity
- Type
- number
- Description
The total quantity a Discord account with the specified role can purchase for the payment link.
- Name
updated
- Type
- string
- Description
Datetime for when the
discordConstraint
was last updated.
- Name
created
- Type
- string
- Description
Datetime for when the
discordConstraint
was created.
- Name
guildId
- Type
- string
- Description
The Discord server id that the customer must be in to be eligible.
- Name
roleId
- Type
- string
- Description
The Discord role ID that the customer must have in the server to be eligible.
- Name
updated
- Type
- string
- Description
Datetime for when the
discordConstraint
was last updated.
- Name
created
- Type
- string
- Description
Datetime for when the
discordConstraint
was created.
- Name
globalConstraint
- Type
- object
- Description
The
paymentLinkConstraint
object to apply to the payment link, which defines the total quantity a customer can purchase for the payment link.- Name
id
- Type
- string
- Description
Unique identifier for the object. Auto-generated by Sphere upon creation.
- Name
maxQuantity
- Type
- number
- Description
The total quantity that is purchasable for the payment link before becoming unpayable.
- Name
updated
- Type
- string
- Description
Datetime for when the
globalConstraint
was last updated.
- Name
created
- Type
- string
- Description
Datetime for when the
globalConstraint
was created.
- Name
wallets
- Type
- string array
- Description
A list of
wallet
ids to receive payments from the payment link. Defaults to the application's primary wallet if unspecified.
- Name
phases
- Type
- object array
- Description
A list of phases for the payment link. Each phase defines conditions for how a payment link will behave during a phase's lifecycle.
- Name
id
- Type
- string
- Description
Unique identifier for the phase. Auto-generated by Sphere upon creation.
- Name
name
- Type
- string
- Description
The name of the phase.
- Name
start
- Type
- string
- Description
Datetime for when the phase starts.
- Name
end
- Type
- string
- Description
Datetime for when the phase ends.
- Name
supply
- Type
- number
- Description
The total
quantity
that can be purchased during the phase. Combines quantity of alllineItems
in thepaymentLink
if multiple are defined.
- Name
limits
- Type
- object array
- Description
A list of objects that define Discord gating functionality.
- Name
id
- Type
- string
- Description
Unique identifier for the limit. Auto-generated by Sphere upon creation.
- Name
name
- Type
- string
- Description
The name of the limit. Could be used to define what Discord role the limit is for.
- Name
discord
- Type
- object
- Description
Defines the Discord server and role necessary for a user to be eligible for this limit.
- Name
guild
- Type
- string
- Description
The Discord server id that the customer must be in to be eligible.
- Name
role
- Type
- string
- Description
The Discord role id that the customer must have in the server to be eligible.
- Name
purchaseLimit
- Type
- number
- Description
The total quantity a Discord account with the specified role can purchase during this phase.
- Name
quantityPurchased
- Type
- number
- Description
The amount of
quantity
that has been currently purchased in a givenphase
.
- Name
created
- Type
- string
- Description
Datetime for when the phase was created.
- Name
updated
- Type
- string
- Description
Datetime for when the phase was last updated.
- Name
defaultDisplayedCurrency
- Type
- string
- Description
The default currency that the checkout page will display. A public key for the mint address (Solana) or token contract address (EVM). Is null by default, and by default will display the currency defined in the
lineItems
field.
- Name
updated
- Type
- string
- Description
Datetime for when the payment link was last updated.
- Name
created
- Type
- string
- Description
Datetime for when the payment link was created.
Payment Link Object
{
"id": "paymentLink_5adff9ed297d45e7bf6438f9527b77f4",
"name": "Example Payment Link",
"description": "An example Payment Link for receiving payments.",
"meta": {
"uuid": "<your_uuid>"
},
"url": "https://spherepay.co/pay/paymentLink_5adff9ed297d45e7bf6438f9527b77f4",
"successUrl": "https://spherepay.co",
"failUrl": "",
"start": null,
"end": null,
"taxRate": null,
"shippingRate": null,
"lineItems": [
{
"quantity": 3,
"quantityMutable": true,
"quantityLabel": "Donation Amount",
"price": "price_d16b2638c0fa4d19a2c3d82d47594379",
"product": "product_0b32235ed4904799ac821048db32ac6d",
"amountTotal": null,
"paymentCurrency": null,
"updated": "2024-08-08T23:22:59.983Z",
"created": "2024-08-08T23:22:59.983Z"
},
{
"quantity": 2,
"quantityMutable": false,
"quantityLabel": "",
"price": "price_66770beb4c5846be9727eb5168639e22",
"product": "product_a65d51a2f2134bfc96326f40734d486f",
"amountTotal": null,
"paymentCurrency": null,
"updated": "2024-08-08T23:22:59.983Z",
"created": "2024-08-08T23:22:59.983Z"
}
],
"features": {
"requiresEmail": true,
"requiresName": false,
"requiresShippingDetails": false
},
"coupon": "coupon_b0d97365f9784fd9b729154b80379fe1",
"discordConstraints": [],
"globalConstraint": null,
"wallets": [
"wallet_310029ca55a64761a714f88ab7ae1df4",
"wallet_78c2aff1f0ca4e3dacfab44c75c73147"
],
"phases": [
{
"id": "phase_bffa3e77c3724463b59596c4a608dd81",
"name": "The First Phase",
"start": "2024-08-08T23:20:00.000Z",
"end": "2024-08-09T23:20:00.000Z",
"supply": 5,
"limits": [
{
"id": "limit_2e7d0fc5216c46fc9f4d892d6dd645f9",
"name": "Whitelist",
"discord": { "guild": "111030232817", "role": "321727373717" },
"purchaseLimit": 1,
"updated": "2024-08-08T23:22:59.362Z",
"created": "2024-08-08T23:22:59.119Z"
}
],
"quantityPurchased": 0,
"created": "2024-08-08T23:22:59.362Z",
"updated": "2024-08-08T23:22:59.983Z"
}
],
"defaultDisplayedCurrency": null,
"updated": "2024-08-08T23:22:59.983Z",
"created": "2024-08-08T23:22:59.983Z"
}
Create a payment link
Creates a new paymentLink
object for a given lineItem
list. A lineItem
is an object with two required fields: (1) a price
, which is the id
of the price (and hence the product it points to) that you would like to include at checkout, and (2) a default quantity
.
Parameters
- Name
lineItems
- Type
- object array
- Required
- Required
- Description
A critical list of objects that define which
product
s are being sold andprice
s are being used in the payment link, also including information such as their default quantities.lineItems
is the field which provides the fundamental connection between yourproduct
,price
, and selected payment method.- Name
price
- Type
- string
- Required
- Required
- Description
A unique identifier for the price associated with this line item. Each price is tied to a specific product.
- Name
quantity
- Type
- number
- Required
- Required
- Description
The quantity of the line item.
- Name
name
- Type
- string
- Description
A name for this line item.
- Name
description
- Type
- string
- Description
A description for this line item.
- Name
quantityMutable
- Type
- boolean
- Description
True implies that your customers can edit the quantity of this lineItem.
- Name
quantityLabel
- Type
- string
- Description
The label that describes what a quantity of a given product is. Useful for when you want to display a different label other than the
Qty
label on the checkout page (e.g.,Months
).
- Name
name
- Type
- string
- Description
An optional name for the payment link.
- Name
description
- Type
- string
- Description
An optional description for the payment link.
- Name
taxRate
- Type
- string
- Description
The
taxRate
id to apply to the payment link's billing.
- Name
meta
- Type
- object
- Description
Set of key-value pairs (JSON) for arbitrary usage. Used to save structured information about the object to reference elsewhere. Think of it as general purpose storage space.
- Name
successUrl
- Type
- string
- Description
The redirect URL after a successful payment.
- Name
failUrl
- Type
- string
- Description
The redirect URL after a failed payment.
- Name
coupon
- Type
- string
- Description
The coupon ID to apply to the payment.
- Name
discordConstraints
- Type
- string array
- Description
The
discordConstraint
ids to apply to the payment link.
- Name
globalConstraint
- Type
- string
- Description
The
paymentLinkConstraint
id to apply to the payment link.
- Name
wallets
- Type
- object array
- Description
List of wallet ids and their respective shares (in basis points) to receive payments from the payment link. Defaults to the application's primary wallet if unspecified.
- Name
id
- Type
- string
- Required
- Required
- Description
Unique identifier for the wallet.
- Name
shareBps
- Type
- number
- Required
- Required
- Description
The share of the payment that this wallet will receive in basis points.
- Name
phases
- Type
- string array
- Description
List of phase IDs for the payment link. Each phase defines conditions for how a payment link will behave during a phase's lifecycle.
- Name
requiresEmail
- Type
- boolean
- Description
Requires email from the customer.
- Name
requiresName
- Type
- boolean
- Description
Requires full name from the customer.
- Name
requiresShippingDetails
- Type
- boolean
- Description
Requires shipping details from the customer.
- Name
start
- Type
- string
- Description
A non-null datetime for when the payment link becomes payable.
- Name
end
- Type
- string
- Description
A non-null datetime for when the payment link becomes un-payable.
- Name
defaultDisplayedCurrency
- Type
- string
- Description
The default currency that the checkout page will display. A public key for the mint address (Solana) or token contract address (EVM). Is null by default, and by default will display the currency defined in the line items field.
Request
curl https://api.spherepay.co/v1/paymentLink \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"Example Payment Link\",
\"description\": \"An example Payment Link for receiving payments.\",
\"lineItems\": [
{
\"name\": \"Example payment link\",
\"description\": \"An example payment link for receiving payments.\",
\"price\": \"price_66770beb4c5846be9727eb5168639e22\",
\"quantity\": 3,
\"quantityMutable\": true,
\"quantityLabel\": \"Donation Amount\"
}
],
\"wallets\": [
{
\"id\": \"wallet_310029ca55a64761a714f88ab7ae1df4\",
\"shareBps\": 7000
},
{
\"id\": \"wallet_78c2aff1f0ca4e3dacfab44c75c73147\",
\"shareBps\": 3000
}
],
\"requiresEmail\": true,
\"requiresName\": false,
\"requiresShippingDetails\": false
}"
Response
{
"ok": true,
"object": "object",
"statusCode": 200,
"error": null,
"message": "success",
"data": {
"paymentLink": {
"id": "paymentLink_35e5133bd1494ae4a7a7ca95723ee461",
"name": "Example Payment Link",
"description": "An example Payment Link for receiving payments.",
"meta": {},
"url": "https://spherepay.co/pay/paymentLink_35e5133bd1494ae4a7a7ca95723ee461",
"successUrl": "",
"failUrl": "",
"start": null,
"end": null,
"taxRate": null,
"shippingRate": null,
"lineItems": [
{
"quantity": 3,
"quantityMutable": true,
"quantityLabel": "Donation Amount",
"price": "price_66770beb4c5846be9727eb5168639e22",
"product": "product_a65d51a2f2134bfc96326f40734d486f",
"amountTotal": null,
"paymentCurrency": null,
"updated": "2024-08-09T01:28:05.302Z",
"created": "2024-08-09T01:28:05.302Z"
}
],
"features": {
"requiresEmail": true,
"requiresName": false,
"requiresShippingDetails": false
},
"coupon": null,
"discordConstraints": [],
"globalConstraint": null,
"wallets": [],
"phases": [],
"updated": "2024-08-09T01:28:05.302Z",
"created": "2024-08-09T01:28:05.302Z"
}
},
"ts": "2024-08-09T01:28:05.332Z",
"request": "request_8bef1dccb1374b95a07d173af3ff6475"
}
Retrieve a payment link
Retrieves a paymentLink
object by id
.
Request
curl https://api.spherepay.co/v1/paymentLink/paymentLink_35e5133bd1494ae4a7a7ca95723ee461 \
-H "Authorization: Bearer {token}"
Response
{
"ok": true,
"object": "object",
"statusCode": 200,
"error": null,
"message": "success",
"data": {
"paymentLink": {
"id": "paymentLink_35e5133bd1494ae4a7a7ca95723ee461",
"name": "Example Payment Link",
"description": "An example Payment Link for receiving payments.",
"meta": {},
"url": "https://spherepay.co/pay/paymentLink_35e5133bd1494ae4a7a7ca95723ee461",
"successUrl": "",
"failUrl": "",
"start": null,
"end": null,
"taxRate": null,
"shippingRate": null,
"lineItems": [
{
"quantity": 3,
"quantityMutable": true,
"quantityLabel": "Donation Amount",
"price": "price_66770beb4c5846be9727eb5168639e22",
"product": "product_a65d51a2f2134bfc96326f40734d486f",
"amountTotal": null,
"paymentCurrency": null,
"updated": "2024-08-09T01:28:05.302Z",
"created": "2024-08-09T01:28:05.302Z"
}
],
"features": {
"requiresEmail": true,
"requiresName": false,
"requiresShippingDetails": false
},
"coupon": null,
"discordConstraints": [],
"globalConstraint": null,
"wallets": [
"wallet_310029ca55a64761a714f88ab7ae1df4",
"wallet_78c2aff1f0ca4e3dacfab44c75c73147"
],
"phases": [],
"updated": "2024-08-09T01:28:05.302Z",
"created": "2024-08-09T01:28:05.302Z"
}
},
"ts": "2024-08-09T01:46:10.558Z",
"request": "request_d82f457dc9954c528f7a8a10f55a8807"
}
Update a payment link
Updates a paymentLink
object with values passed in. Any parameters not provided are left unchanged.
Parameters
- Name
lineItems
- Type
- object array
- Required
- Required
- Description
A critical list of objects that define which
product
s are being sold andprice
s are being used in the payment link, also including information such as their default quantities.lineItems
is the field which provides the fundamental connection between yourproduct
,price
, and selected payment method.- Name
price
- Type
- string
- Required
- Required
- Description
A unique identifier for the price associated with this line item. Each price is tied to a specific product.
- Name
quantity
- Type
- number
- Required
- Required
- Description
The quantity of the line item.
- Name
id
- Type
- string
- Description
Unique identifier for the object.
- Name
name
- Type
- string
- Description
A name for this line item.
- Name
description
- Type
- string
- Description
A description for this line item.
- Name
quantityMutable
- Type
- boolean
- Description
True implies that your customers can edit the quantity of this lineItem.
- Name
quantityLabel
- Type
- string
- Description
The label that describes what a quantity of a given product is. Useful for when you want to display a different label other than the
Qty
label on the checkout page (e.g.,Months
).
- Name
name
- Type
- string
- Description
An optional name for the payment link.
- Name
description
- Type
- string
- Description
An optional description for the payment link.
- Name
taxRate
- Type
- string
- Description
The
taxRate
id to apply to the payment link's billing.
- Name
meta
- Type
- object
- Description
Key/value pairs (JSON) for extra info on the object. Useful for external use.
- Name
successUrl
- Type
- string
- Description
The redirect URL after a successful payment.
- Name
failUrl
- Type
- string
- Description
The redirect URL after a failed payment.
- Name
coupon
- Type
- string
- Description
The coupon ID to apply to the payment.
- Name
discordConstraints
- Type
- string array
- Description
The
discordConstraint
IDs to apply to the payment link.
- Name
globalConstraint
- Type
- string
- Description
The
paymentLinkConstraint
IDs to apply to the payment link.
- Name
wallets
- Type
- object array
- Description
List of wallet IDs and their respective shares (in basis points) to receive payments from the payment link. Defaults to the application's primary wallet if unspecified.
- Name
id
- Type
- string
- Required
- Required
- Description
Unique identifier for the wallet.
- Name
shareBps
- Type
- number
- Required
- Required
- Description
The share of the payment that this wallet will receive in basis points.
- Name
phases
- Type
- string array
- Description
List of phase IDs for the payment link. Each phase defines conditions for how a payment link will behave during a phase's lifecycle.
- Name
requiresEmail
- Type
- boolean
- Description
Requires email from the customer.
- Name
requiresName
- Type
- boolean
- Description
Requires full name from the customer.
- Name
requiresShippingDetails
- Type
- boolean
- Description
Requires shipping details from the customer.
- Name
start
- Type
- string
- Description
A non-null datetime for when the payment link becomes payable.
- Name
end
- Type
- string
- Description
A non-null datetime for when the payment link becomes un-payable.
Request
curl https://api.spherepay.co/v1/paymentLink/paymentLink_35e5133bd1494ae4a7a7ca95723ee461 \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"Changed Example Name\",
\"lineItems\": [
{
\"price\": \"price_66770beb4c5846be9727eb5168639e22\",
\"quantity\": 1
}
],
\"requiresName\": true
}"
Response
{
"ok": true,
"object": "object",
"statusCode": 200,
"error": null,
"message": "success",
"data": {
"paymentLink": {
"id": "paymentLink_35e5133bd1494ae4a7a7ca95723ee461",
"name": "Changed Example Name",
"description": "An example Payment Link for receiving payments.",
"meta": {},
"url": "https://spherepay.co/pay/paymentLink_35e5133bd1494ae4a7a7ca95723ee461",
"successUrl": "",
"failUrl": "",
"start": null,
"end": null,
"taxRate": null,
"shippingRate": null,
"lineItems": [
{
"quantity": 1,
"quantityMutable": false,
"quantityLabel": null,
"price": "price_66770beb4c5846be9727eb5168639e22",
"product": "product_a65d51a2f2134bfc96326f40734d486f",
"amountTotal": null,
"paymentCurrency": null,
"updated": "2024-08-12T15:20:31.802Z",
"created": "2024-08-12T15:20:31.802Z"
}
],
"features": {
"requiresEmail": false,
"requiresName": true,
"requiresShippingDetails": false
},
"coupon": null,
"discordConstraints": null,
"globalConstraint": null,
"wallets": [],
"phases": [],
"updated": "2024-08-12T15:20:31.802Z",
"created": "2024-08-09T01:28:05.302Z"
}
},
"ts": "2024-08-12T15:20:31.831Z",
"request": "request_78fea36e07b246e4954bc766a2189c53"
}
Delete a payment link
Deletes a paymentLink
object by id
. Deleting a paymentLink
actually deactivates it, meaning that it will no longer be able to receive payments (and its Sphere hosted url will not display it). You are still able to fetch a "deleted" paymentLink
.
Request
curl -X DELETE https://api.spherepay.co/v1/paymentLink/paymentLink_893a7c8206114e429916f8bb309bb1f5 \
-H "Authorization: Bearer {token}"
Response
{
"ok": true,
"object": "object",
"statusCode": 200,
"error": null,
"message": "success",
"data": {
"paymentLink": {
"id": "paymentLink_35e5133bd1494ae4a7a7ca95723ee461",
"name": "Changed Example Name",
"description": "An example Payment Link for receiving payments.",
"meta": {},
"url": "https://spherepay.co/pay/paymentLink_35e5133bd1494ae4a7a7ca95723ee461",
"successUrl": "",
"failUrl": "",
"start": null,
"end": null,
"taxRate": null,
"shippingRate": null,
"lineItems": [],
"features": {
"requiresEmail": false,
"requiresName": true,
"requiresShippingDetails": false
},
"coupon": null,
"discordConstraints": null,
"globalConstraint": null,
"wallets": [],
"phases": [],
"updated": "2024-08-12T15:24:22.192Z",
"created": "2024-08-09T01:28:05.302Z"
}
},
"ts": "2024-08-12T15:24:22.203Z",
"request": "request_2b04c1b36a6c4e7f99d4e1df746120b4"
}
List all payment links
Returns a list of paymentLink
objects, sorted by newest creation date first.
Parameters
- Name
startDate
- Type
- string
- Description
The start Datetime that objects will begin to be pulled from.
- Name
endDate
- Type
- string
- Description
The end Datetime that objects will be fetched until.
- Name
limit
- Type
- integer
- Description
The maximum number of objects to pull. Defaults to 25, maximum is 200.
- Name
sort
- Type
- string
- Description
Sort data by field.
- Name
direction
- Type
- enum
- Description
The direction that payments will be sorted in. Either
ASC
orDESC
.
Request
curl -G https://api.spherepay.co/v1/paymentLink \
-H "Authorization: Bearer {token}" \
-d limit=2
Response
{
"ok": true,
"object": "object",
"statusCode": 200,
"error": null,
"message": "success",
"data": {
"paymentLinks": [
{
"id": "paymentLink_9918ef0141dc499f9837f799f8a9715e",
"name": "",
"description": "",
"meta": {},
"url": "https://spherepay.co/pay/paymentLink_9918ef0141dc499f9837f799f8a9715e",
"successUrl": "",
"failUrl": "",
"start": null,
"end": null,
"taxRate": null,
"shippingRate": null,
"lineItems": [
{
"quantity": 1,
"quantityMutable": true,
"quantityLabel": "Donation Amount",
"price": "price_66770beb4c5846be9727eb5168639e22",
"product": "product_a65d51a2f2134bfc96326f40734d486f",
"amountTotal": null,
"paymentCurrency": null,
"updated": "2024-08-08T16:10:24.441Z",
"created": "2024-08-08T16:10:24.441Z"
}
],
"features": {
"requiresEmail": false,
"requiresName": false,
"requiresShippingDetails": false
},
"coupon": null,
"discordConstraints": [],
"globalConstraint": null,
"wallets": [],
"phases": [],
"updated": "2024-08-08T16:10:24.441Z",
"created": "2024-08-08T16:10:24.441Z"
},
{
"id": "paymentLink_ce24539cf6ad40a0b329712734718e08",
// ...
}
]
},
"ts": "2024-08-08T23:07:05.086Z",
"request": "request_8310f2bad8054a99843d74168a3829f3"
}