Modifying Paylinks
Learn how to make changes to Paylinks you have already created
Overview
You can always modify a Payment Request that you've created. This is great if you need to add, remove, or modify items in the request itself.
Important!
You may only make a change to a Paylink when it's in an
Created
,Opened
, orSent
status.To check the status of a Paylink, please see Looking Up Paylinks
Note: Every time a user clicks on Paylink, a new order is created. So when a merchant modifies a Paylink, the expectation is that they’re either resending that to the customer or notifying them to reopen the link. An existing order would not be updated.
API Request
This endpoint uses HMAC
Check out our API Authentication section to learn more
The Paylink endpoint uses paylinkId
which was provided in the response body when you created a PayLink.
To update a payment request, send an API call to:
Staging:PATCH https://stage-paylinks.skipify.com/{paylinkId}
Production:PATCH https://paylinks.skipify.com/{paylinkId}
Request Body Parameters
Parameter Name | Required? | Type | Description |
---|---|---|---|
shipping | no | integer, nullable | This is the amount of shipping for the Paylink. The last two digits are cents, so $20.50 would be sent as 2050 |
tax | no | integer, nullable | This is the amount of tax for the Paylink. The last two digits are cents, so $20.50 would be sent as 2050 |
memo | no | string, 255 char | A generic field to allow you to add more information on the specific usage of this Paylink. This will be displayed to the customer. |
description | no | string, 255 char | A generic field to allow you to add more information on the specific usage of this Paylink. This will be displayed to the customer. |
expiration | no | dateTime string, nullable | This is an optional parameter you can use to set an expiry on the Payment Request. Use the format: yyyy-MM-ddTHH:mm:ss.SSSZ Ex: `2022-06-02T21:48:02.000Z |
lineItems | no | object | See Below - when the request contains lineItems, it will completely replace the existing ones in the paylink and create new from the modify request. It is recommended to pass all parameters in lineItems from the original create request, even if they have the same values, if you want to modify the price, for example. You must include sku and price at a minimum if you include lineItems. |
lineItems Parameters
Parameter Name | Required? | Type | Description |
---|---|---|---|
sku | yes | string | The merchant's product identifier of the item. This is not visible to the customer. Max 255 char. |
quantity | no | integer | The quantity of the item being sold. If null, this is defaulted to 1. |
price | yes | integer | The price of the item. The last two digits are cents, so $20.50 would be sent as 2050. *If you want to add a Discount to a Paylink, pass a negative 'price' ie. '-250' and an appropriate 'description' |
tax | no | integer | The tax of an individual item. The last two digits are cents. |
description | no | string | The description of the item being sold. This will be displayed to the customer. Examples: Anchovy Pizza, New Balance 650, etc. Max 255 char. |
category | no | string | The category of the product or service being sold for the merchant's own tracking purposes. This is not visible to the customer. |
metadata | no | Object, nullable | You can use this parameter to attach key-value data (string, string) to your API call. The purpose of this parameter is to allow you to store additional, structured information to your Paylink. We allow for up to 10 keys, with names up to 40 characters and values up to 100 characters Be sure to not include any personally identifiable information here! String, boolean, or number allowed as values. |
Request Body Example
{
"shipping": 0,
"tax": 0,
"memo": "string",
"description": "string",
"expiration": "2023-08-10T22:31:36.684Z",
"lineItems": [
{
"sku": "string",
"quantity": 1,
"price": 10000,
"tax": 99,
"description": "string",
"category": "string",
"metadata": {
"additionalProp1": {}
}
}
],
}
Important
Changes to shipping and tax are based on currency code assignment when creating a Paylink
API Response
Response Body Parameters
A successful response will return the Paylink parameters in your original create request, reflecting the changes made in this request.
Response Body Example
{
"paylinkId": "string",
"link": "string",
"shortLink": "string",
"currencyCode": "string",
"memo": "string",
"description": "string",
"sendEmail": true,
"sendSms": true,
"expiration": "2023-08-10T22:31:36.725Z",
"createdAt": "2023-08-10T22:31:36.725Z",
"updatedAt": "2023-08-10T22:31:36.725Z",
"merchantId": "string",
"merchantInvoiceId": "string",
"orderId": "string",
"tax": null,
"shipping": null,
"subTotal": 1,
"total": 1,
"orderTotal": null,
"approvedAmount": null,
"status": "CREATED",
"customer": {
"email": "[email protected]",
"phone": "7014734135",
"firstName": "string",
"lastName": "string",
"paylinkCustomerId": "string"
},
"customerConsent": true,
"lineItems": [
{
"sku": "string",
"quantity": 1,
"price": 1,
"tax": 0,
"description": "string",
"category": "string",
"metadata": {
"additionalProp1": {}
},
"paylinkId": "string",
"paylinkItemId": "string",
"createdAt": "2023-08-10T22:31:36.725Z",
"updatedAt": "2023-08-10T22:31:36.725Z"
}
],
"deliveryLogs": [
{
"deliveryLogId": "string",
"paylinkId": "string",
"deliveryMethod": "EMAIL",
"status": "NOT_SENT",
"messageId": "string",
"createdAt": "2023-08-10T22:31:36.725Z",
"updatedAt": "2023-08-10T22:31:36.725Z"
}
],
"metadata": {
"additionalProp1": {}
},
"openOrders": [
{
"paylinkId": "226af40b-6c4d-41b5-b4f7-3b2444ebdd25",
"orderId": "668570c06f1eder57a289bc7",
"createdAt": "2024-07-03T15:39:44.766Z"
}
],
"attachments": [
{
"attachmentId": "string",
"paylinkId": "string",
"displayName": "string",
"createdAt": "2023-08-10T22:31:36.725Z",
"updatedAt": "2023-08-10T22:31:36.725Z"
}
]
}
Updated 2 months ago