Creating PayLinks

Learn how to use our API to generate PayLinks to send to your customers

Overview

Creating PayLinks starts with you using an API call to create a Payment Request. Next, Skipify will send you a URL with the response payload where you are able to view and fulfill the Payment Request. This URL is what you send to your customer using whatever mechanism best fits your business and use case.

When your customer visits the PayLinks URL, they will be taken to a dedicated, one-time checkout experience hosted by Skipify. This checkout experience will include all of the line items and charges that you included in your Payment Request API call including subtotals, shipping, taxes, fees, order total, and any other information that you pass.

📘

Reminder: Delivery Options

This documentation describes an integration with PayLinks that does not include delivery of the link to your end user. With this integration, you will be responsible for link delivery by whatever methods you currently utilize.

If you want to take advantage of PayLinks with text and email delivery, you will need to set sendEmail or sendSms to true when creating a PayLink. The Send PayLink endpoint will be used to send the link via email and/or SMS.

API Request

👍

This endpoint uses HMAC

Check out our API Authentication section to learn more

To create a payment request, send an API call to:

POST https://paylinks.skipify.com

Request Body Parameters

Parameter NameRequired?TypeDescription
merchantIdyesstringA unique identifier that Skipify assigns to the merchant. This is based on the merchant type configuration setup. If you are a parent merchant creating a link on behalf of a child merchant, use the child merchant ID.
Max 255 char.
merchantInvoiceIdnostringA unique identifier that’s applicable to your systems. This identifier will not be visible to the customer. It can be used for your reference to link a Skipify order to a record in your systems. Max 255 char.
customernoobject, nullableThe customer object includes a set of properties that allows us to prefill the checkout experience and skip a couple steps. We’ll use information passed as an identifier to determine if the customer is registered with Skipify.
memonostringA generic field to allow you to add more information on the specific usage of this PayLink. This will be displayed to the customer.
descriptionnostringA generic field to allow you to add more information on the specific usage of this PayLink. This will be displayed to the customer.
currencyCodeyesstring3 letter code to identify the currency. Skipify is only processing transactions in USD at this time.

Make sure you are passing USD as a value
sendEmailyesbooleanThis field is used if you are planning on using Skipify to deliver the link to the customer via email. If set to true, the email in the customer block is required.
sendSmsyesbooleanThis field is used if you are planning on using Skipify to deliver the link to the customer via text. If set to true, the phone in the customer block is required.
customerConsentconditionalbooleanThis field must be set to True if either sendEmail or sendSms is True. The flag is to ensure that the customer consented to receive the link.
shippingnointeger, nullableThis is the amount of shipping for the PayLink. The last two digits are cents, so $20.50 would be sent as 2050.
taxnointeger, nullableThis is the amount of tax for the PayLink. The last two digits are cents, so $20.50 would be sent as 2050.
lineitemsyesobjectThese are the individual items you would like to show the customer as a part of their checkout. You may pass a max of 50 items in a single request.
expirationnodateTime, string, nullableThis is an optional parameter you can use to set an expiry on the PayLink, specified in UTC.

Use the format:
yyyy-MM-ddTHH:mm:ssZ

Ex:
2022-06-02T21:48:02Z
metadatanodictionaryYou 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.

Line Items

The lineItems object allows a customer to see a list of items included in the Payment Request. This list can be viewed in the Order Summary portion of the Skipify experience.

Line Item Parameters

Parameter NameRequired?TypeDescription
skuyesstringThe product identifier of the item. It appears as a header in our Order Summary that your customers will be able to see. This can be leveraged for other use-case as well. For example: invoice or bill number. Max 255 char.
quantitynointegerThe quantity of the item being sold. If null, this is defaulted to 1.
priceyesintegerThe price of the item. The last two digits are cents, so $20.50 would be sent as 2050.
descriptionnostringThe description of the item being sold. This will be displayed to the customer.
Examples: Anchovy Pizza, New Balance 650, etc. Max 255 char.
metadatanoJSON, nullableYou 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.

📘

Note

Line items will be used to calculate the subtotal

Customer

Customer Parameters

Parameter NameRequired?TypeDescription
emailconditionalstringThe customer email will be used to search the user in our systems. If recognized, their saved payment methods will be surfaced within the PayLink checkout experience.
phoneconditionalstringThe customer phone number will be used to pre-populate the checkout experience if a phone number is not available in our systems.
first namenostringThe customer's first name
last namenostringThe customer's last name

Request Body Example

{
  "merchantInvoiceId": "string",
  "customer": {
    "email": "[email protected]",
    "phone": "4140892098",
    "firstName": "string",
    "lastName": "string",
    "accountName": "string",
    "customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  },
  "memo": "string",
  "description": "string",
  "currencyCode": "string",
  "sendEmail": true,
  "sendSms": true,
  "shipping": 0,
  "tax": 0,
  "lineItems": [
    {
      "sku": "string",
      "quantity": 1,
      "price": 1,
      "tax": 0,
      "description": "string",
      "category": "string",
      "metadata": {
        "additionalProp1": {}
      }
    }
  ],
  "expiration": "2023-08-10T21:38:00.784Z",
  "metadata": {
    "additionalProp1": {}
  }
}

API Response

Skipify sends a URL in the response payload where your customers/clients can view and fulfill the PayLink request. You can send this URL to your customer using whatever mechanism best fits your business and use case. The response will include all values populated in the request with the following additional fields:

Parameter NameTypeDescription
paylinkIdstringSkipify’s unique identifier for the PayLink. This ID will be needed to use the other endpoints.
linkstring (url)What we all came here for! This is the URL that you will use to forward to your customers.

Do what you like with this URL - it can be tiny-fied, it can be embedded as-is, and can be converted into a QR code.
deliveryLogsobject {
"deliveryLogId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"paylinkId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"deliveryMethod": "NULL",
"status": "NOT_SENT",
"messageId": "string",
"createdAt": "2023-08-10T21:38:00.802Z",
"updatedAt": "2023-08-10T21:38:00.802Z"
}

Example

{
  "paylinkId": "string",
  "link": "string",
  "currencyCode": "string",
  "memo": "string",
  "description": "string",
  "sendEmail": true,
  "sendSms": true,
  "expiration": "2023-08-10T21:38:00.802Z",
  "createdAt": "2023-08-10T21:38:00.802Z",
  "updatedAt": "2023-08-10T21:38:00.802Z",
  "shipping": 0,
  "tax": 0,
  "merchantId": "string",
  "merchantInvoiceId": "string",
  "orderId": "string",
  "subTotal": 0,
  "total": 0,
  "status": "CREATED",
  "customer": {
    "email": "[email protected]",
    "phone": "4866991474",
    "firstName": "string",
    "lastName": "string",
    "accountName": "string"
  },
  "lineItems": [
    {
      "sku": "string",
      "quantity": 1,
      "price": 1,
      "tax": 0,
      "description": "string",
      "category": "string",
      "metadata": {
        "additionalProp1": {}
      },
      "paylinkId": "string",
      "paylinkItemId": "string",
      "createdAt": "2023-08-10T21:38:00.802Z",
      "updatedAt": "2023-08-10T21:38:00.802Z"
    }
  ],
  "deliveryLogs": [
    {
      "deliveryLogId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "paylinkId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "deliveryMethod": "NULL",
      "status": "NOT_SENT",
      "messageId": "string",
      "createdAt": "2023-08-10T21:38:00.802Z",
      "updatedAt": "2023-08-10T21:38:00.802Z"
    }
  ],
  "metadata": {
    "additionalProp1": {}
  }
}


👍

API Reference

Be sure to check out our API Reference for additional details about this endpoint



Skipify baner with link to contact us form