> This is Payabli documentation. For a complete page index, fetch https://docs.payabli.com/llms.txt — append .md to any page URL for lightweight markdown. For section-level indexes, query parameters, and other AI-optimized access methods, see https://docs.payabli.com/ai-agents.md

# Generate vendor link for lot number

POST https://api-sandbox.payabli.com/api/PaymentLink/bill/lotNumber/{lotNumber}
Content-Type: application/json

Generates a vendor payment link for a specific bill lot number. This allows you to pay all bills with the same lot number for a vendor with a single payment link.

Reference: https://docs.payabli.com/developers/api-reference/paymentlink/generate-payment-link-for-lot-number

## Authentication

- `Authorization` header (bearer token, required)
- `requestToken` header (required) — Long-lived API token sent in the `requestToken` header. See [API token authentication](/developers/api-tokens).

## Servers

- `https://api-sandbox.payabli.com/api` (Sandbox, default)
- `https://api.payabli.com/api` (Production)

## Request

### Path parameters

- `lotNumber` (string, required) — Lot number of the bills to pay. All bills with this lot number will be included.

### Query parameters

- `entryPoint` (string, required) — The entity's entrypoint identifier. [Learn more](/developers/api-reference/api-overview#entrypoint-vs-entry)
- `vendorNumber` (string, required) — The vendor number for the vendor being paid with this payment link.
- `mail2` (string, optional) — List of recipient email addresses. When there is more than one, separate them by a semicolon (;).
- `amountFixed` (string, optional, default: true) — Indicates whether customer can modify the payment amount. A value of `true` means the amount isn't modifiable, a value `false` means the payor can modify the amount to pay.

### Body (application/json)

- `contactUs` (object, optional) — ContactUs section of payment link page.
  - `emailLabel` (string, optional) — Custom content for email
  - `enabled` (boolean, optional) — Toggles whether the section or element is enabled.
  - `header` (string, optional) — Header text for section
  - `order` (integer, optional) — Order of element or section in container.
  - `paymentIcons` (boolean, optional) — Flag indicating if icons for accepted card brands will be shown
  - `phoneLabel` (string, optional) — Custom content for phone number
- `logo` (object, optional) — Logo section of payment link page.
  - `enabled` (boolean, optional) — Toggles whether the section or element is enabled.
  - `order` (integer, optional) — Order of element or section in container.
- `messageBeforePaying` (object, optional) — Message section of payment link page.
  - `enabled` (boolean, optional) — Toggles whether the section or element is enabled.
  - `label` (string, optional) — Label to display for section or element
  - `order` (integer, optional) — Order of element or section in container.
- `notes` (object, optional) — Notes section of payment link page.
  - `enabled` (boolean, optional) — Toggles whether the section or element is enabled.
  - `header` (string, optional) — Header text for section
  - `order` (integer, optional) — Order of element or section in container.
  - `placeholder` (string, optional) — Placeholder text for input field
  - `value` (string, optional) — Pre-populated value for input field
- `page` (object, optional) — Page header section of payment link page.
  - `description` (string, optional) — Page description in header
  - `enabled` (boolean, optional) — Toggles whether the section or element is enabled.
  - `header` (string, optional) — Page header
  - `order` (integer, optional) — Order of element or section in container.
- `paymentButton` (object, optional) — Payment button section of payment link page.
  - `enabled` (boolean, optional) — Toggles whether the section or element is enabled.
  - `label` (string, optional) — Label to display for section or element
  - `order` (integer, optional) — Order of element or section in container.
- `paymentMethods` (object, optional) — Payment methods section of payment link page. Use this to configure which payout methods (ACH, vCard, check) are offered to the vendor.
  - `allMethodsChecked` (boolean, optional) — Flag indicating if all allowed payment methods will be pre-selected.
  - `allowMultipleMethods` (boolean, optional) — When `true`, the vendor can select from multiple payment methods. When `false`, only the default method is shown.
  - `defaultMethod` (string, optional) — The default payment method to highlight on the payment link page. For example, `"vcard"`, `"ach"`, or `"check"`.
  - `enabled` (boolean, optional) — When `true`, the payment methods section is displayed on the payment link page.
  - `header` (string, optional) — Header text for the payment methods section.
  - `methods` (object, optional) — Payment methods available for Pay Out payment links. Controls which payout options are offered to the vendor.
    - `ach` (boolean, optional) — When `true`, ACH bank transfer is offered as a payout method.
    - `check` (boolean, optional) — When `true`, physical check is offered as a payout method.
    - `vcard` (boolean, optional) — When `true`, virtual card (vCard) is offered as a payout method.
  - `order` (integer, optional) — Display order of the payment methods section on the page.
  - `showPreviewVirtualCard` (boolean, optional) — When `true`, a preview of the virtual card is shown on the payment link page.
- `review` (object, optional) — Review section of payment link page.
  - `enabled` (boolean, optional) — Toggles whether the section or element is enabled.
  - `header` (string, optional) — Header text for section
  - `order` (integer, optional) — Order of element or section in container.
- `bills` (object, optional) — Bills section of payment link page.
  - `enabled` (boolean, optional) — Toggles whether the section or element is enabled.
  - `order` (integer, optional) — Order of element or section in container.
- `settings` (object, optional) — Settings section of payment link page.
  - `color` (string, optional) — An HTML color code in format #RRGGBB
  - `customCssUrl` (string, optional) — Complete URL to a custom CSS file to be loaded with the page
  - `language` (string, optional) — Two-letter code following ISO 639-1
  - `pageLogo` (object, optional) — Object containing logo file to upload/ use in page
    - `fContent` (string, optional) — Content of file, Base64-encoded. Ignored if `furl` is specified. Max upload size is 30 MB.
    - `filename` (string, optional) — The name of the attached file.
    - `ftype` (enum, optional) — The MIME type of the file (if content is provided).
      - Allowed values: `pdf`, `doc`, `docx`, `jpg`, `jpeg`, `png`, `gif`, `txt`
    - `furl` (string, optional) — Optional URL provided to show or download the file remotely.
  - `redirectAfterApprove` (boolean, optional) — Flag indicating if the capability for redirection in the page will be activated
  - `redirectAfterApproveUrl` (string, optional) — Complete URL where the page will be redirected after completion

## Response

### 200

Success

- `isSuccess` (boolean, required) — Boolean indicating whether the operation was successful. A `true` value indicates success. A `false` value indicates failure.
- `responseText` (string, required) — Response text for operation: 'Success' or 'Declined'.
- `responseData` (string, optional) — If `isSuccess` = true, this contains the payment link identifier. If `isSuccess` = false, this contains the reason of the error.

## Examples

**Request**

```json
{
  "contactUs": {
    "emailLabel": "Email",
    "enabled": true,
    "header": "Contact Us",
    "order": 0,
    "paymentIcons": true,
    "phoneLabel": "Phone"
  },
  "logo": {
    "enabled": true,
    "order": 0
  },
  "messageBeforePaying": {
    "enabled": true,
    "label": "Please review your payment details",
    "order": 0
  },
  "notes": {
    "enabled": true,
    "header": "Additional Notes",
    "order": 0,
    "placeholder": "Enter any additional notes here",
    "value": ""
  },
  "page": {
    "description": "Get paid securely",
    "enabled": true,
    "header": "Payment Page",
    "order": 0
  },
  "paymentButton": {
    "enabled": true,
    "label": "Pay Now",
    "order": 0
  },
  "paymentMethods": {
    "allMethodsChecked": true,
    "allowMultipleMethods": true,
    "defaultMethod": "vcard",
    "enabled": true,
    "header": "Payment Methods",
    "methods": {
      "ach": true,
      "check": true,
      "vcard": true
    },
    "order": 0,
    "showPreviewVirtualCard": true
  },
  "review": {
    "enabled": true,
    "header": "Review Payment",
    "order": 0
  },
  "settings": {
    "color": "#000000",
    "language": "en"
  }
}
```

**Response**

```json
{
  "isSuccess": true,
  "responseText": "Success",
  "responseData": "2325-XXXXXXX-90b1-4598-b6c7-44cdcbf495d7-1234"
}
```

**SDK Code**

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        clientId: "YOUR_CLIENT_ID",
        clientSecret: "YOUR_CLIENT_SECRET",
    });
    await client.paymentLink.addPayLinkFromBillLotNumber("LOT-2024-001", {
        amountFixed: "true",
        entryPoint: "8cfec329267",
        mail2: "customer@example.com; billing@example.com",
        vendorNumber: "VEN-123",
        body: {
            contactUs: {
                emailLabel: "Email",
                enabled: true,
                header: "Contact Us",
                order: 0,
                paymentIcons: true,
                phoneLabel: "Phone",
            },
            logo: {
                enabled: true,
                order: 0,
            },
            messageBeforePaying: {
                enabled: true,
                label: "Please review your payment details",
                order: 0,
            },
            notes: {
                enabled: true,
                header: "Additional Notes",
                order: 0,
                placeholder: "Enter any additional notes here",
                value: "",
            },
            page: {
                description: "Get paid securely",
                enabled: true,
                header: "Payment Page",
                order: 0,
            },
            paymentButton: {
                enabled: true,
                label: "Pay Now",
                order: 0,
            },
            paymentMethods: {
                allMethodsChecked: true,
                allowMultipleMethods: true,
                defaultMethod: "vcard",
                enabled: true,
                header: "Payment Methods",
                methods: {
                    ach: true,
                    check: true,
                    vcard: true,
                },
                order: 0,
                showPreviewVirtualCard: true,
            },
            review: {
                enabled: true,
                header: "Review Payment",
                order: 0,
            },
            settings: {
                color: "#000000",
                language: "en",
            },
        },
    });
}
main();

```

```python
from payabli import payabli, ContactElement, Element, LabelElement, NoteElement, PageElement, MethodElementOut, MethodsListOut, HeaderElement, PagelinkSetting

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.payment_link.add_pay_link_from_bill_lot_number(
    lot_number="LOT-2024-001",
    amount_fixed="true",
    entry_point="8cfec329267",
    mail_2="customer@example.com; billing@example.com",
    vendor_number="VEN-123",
    contact_us=ContactElement(
        email_label="Email",
        enabled=True,
        header="Contact Us",
        order=0,
        payment_icons=True,
        phone_label="Phone",
    ),
    logo=Element(
        enabled=True,
        order=0,
    ),
    message_before_paying=LabelElement(
        enabled=True,
        label="Please review your payment details",
        order=0,
    ),
    notes=NoteElement(
        enabled=True,
        header="Additional Notes",
        order=0,
        placeholder="Enter any additional notes here",
        value="",
    ),
    page=PageElement(
        description="Get paid securely",
        enabled=True,
        header="Payment Page",
        order=0,
    ),
    payment_button=LabelElement(
        enabled=True,
        label="Pay Now",
        order=0,
    ),
    payment_methods=MethodElementOut(
        all_methods_checked=True,
        allow_multiple_methods=True,
        default_method="vcard",
        enabled=True,
        header="Payment Methods",
        methods=MethodsListOut(
            ach=True,
            check=True,
            vcard=True,
        ),
        order=0,
        show_preview_virtual_card=True,
    ),
    review=HeaderElement(
        enabled=True,
        header="Review Payment",
        order=0,
    ),
    settings=PagelinkSetting(
        color="#000000",
        language="en",
    ),
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;
import io.github.payabli.api.resources.paymentlink.requests.PayLinkDataOut;
import io.github.payabli.api.types.ContactElement;
import io.github.payabli.api.types.Element;
import io.github.payabli.api.types.HeaderElement;
import io.github.payabli.api.types.LabelElement;
import io.github.payabli.api.types.MethodElementOut;
import io.github.payabli.api.types.MethodsListOut;
import io.github.payabli.api.types.NoteElement;
import io.github.payabli.api.types.PageElement;
import io.github.payabli.api.types.PagelinkSetting;
import io.github.payabli.api.types.PaymentPageRequestBodyOut;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.paymentLink().addPayLinkFromBillLotNumber(
            "LOT-2024-001",
            PayLinkDataOut
                .builder()
                .entryPoint("8cfec329267")
                .vendorNumber("VEN-123")
                .body(
                    PaymentPageRequestBodyOut
                        .builder()
                        .contactUs(
                            ContactElement
                                .builder()
                                .emailLabel("Email")
                                .enabled(true)
                                .header("Contact Us")
                                .order(0)
                                .paymentIcons(true)
                                .phoneLabel("Phone")
                                .build()
                        )
                        .logo(
                            Element
                                .builder()
                                .enabled(true)
                                .order(0)
                                .build()
                        )
                        .messageBeforePaying(
                            LabelElement
                                .builder()
                                .enabled(true)
                                .label("Please review your payment details")
                                .order(0)
                                .build()
                        )
                        .notes(
                            NoteElement
                                .builder()
                                .enabled(true)
                                .header("Additional Notes")
                                .order(0)
                                .placeholder("Enter any additional notes here")
                                .value("")
                                .build()
                        )
                        .page(
                            PageElement
                                .builder()
                                .description("Get paid securely")
                                .enabled(true)
                                .header("Payment Page")
                                .order(0)
                                .build()
                        )
                        .paymentButton(
                            LabelElement
                                .builder()
                                .enabled(true)
                                .label("Pay Now")
                                .order(0)
                                .build()
                        )
                        .paymentMethods(
                            MethodElementOut
                                .builder()
                                .allMethodsChecked(true)
                                .allowMultipleMethods(true)
                                .defaultMethod("vcard")
                                .enabled(true)
                                .header("Payment Methods")
                                .methods(
                                    MethodsListOut
                                        .builder()
                                        .ach(true)
                                        .check(true)
                                        .vcard(true)
                                        .build()
                                )
                                .order(0)
                                .showPreviewVirtualCard(true)
                                .build()
                        )
                        .review(
                            HeaderElement
                                .builder()
                                .enabled(true)
                                .header("Review Payment")
                                .order(0)
                                .build()
                        )
                        .settings(
                            PagelinkSetting
                                .builder()
                                .color("#000000")
                                .language("en")
                                .build()
                        )
                        .build()
                )
                .amountFixed("true")
                .mail2("customer@example.com; billing@example.com")
                .build()
        );
    }
}
```

```ruby
require "payabli"

client = Payabli::Client.new(api_key: "YOUR_API_KEY_HERE")

client.payment_link.add_pay_link_from_bill_lot_number(
  lot_number: "LOT-2024-001",
  entry_point: "8cfec329267",
  vendor_number: "VEN-123",
  mail_2: "customer@example.com; billing@example.com",
  amount_fixed: "true",
  contact_us: {
    email_label: "Email",
    enabled: true,
    header: "Contact Us",
    order: 0,
    payment_icons: true,
    phone_label: "Phone"
  },
  logo: {
    enabled: true,
    order: 0
  },
  message_before_paying: {
    enabled: true,
    label: "Please review your payment details",
    order: 0
  },
  notes: {
    enabled: true,
    header: "Additional Notes",
    order: 0,
    placeholder: "Enter any additional notes here",
    value: ""
  },
  page: {
    description: "Get paid securely",
    enabled: true,
    header: "Payment Page",
    order: 0
  },
  payment_button: {
    enabled: true,
    label: "Pay Now",
    order: 0
  },
  payment_methods: {
    all_methods_checked: true,
    allow_multiple_methods: true,
    default_method: "vcard",
    enabled: true,
    header: "Payment Methods",
    methods: {
      ach: true,
      check: true,
      vcard: true
    },
    order: 0,
    show_preview_virtual_card: true
  },
  review: {
    enabled: true,
    header: "Review Payment",
    order: 0
  },
  settings: {
    color: "#000000",
    language: "en"
  }
)

```

```csharp
using PayabliApi;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.PaymentLink.AddPayLinkFromBillLotNumberAsync(
            lotNumber: "LOT-2024-001",
            request: new PayLinkDataOut {
                AmountFixed = "true",
                EntryPoint = "8cfec329267",
                Mail2 = "customer@example.com; billing@example.com",
                VendorNumber = "VEN-123",
                Body = new PaymentPageRequestBodyOut {
                    ContactUs = new ContactElement {
                        EmailLabel = "Email",
                        Enabled = true,
                        Header = "Contact Us",
                        Order = 0,
                        PaymentIcons = true,
                        PhoneLabel = "Phone"
                    },
                    Logo = new Element {
                        Enabled = true,
                        Order = 0
                    },
                    MessageBeforePaying = new LabelElement {
                        Enabled = true,
                        Label = "Please review your payment details",
                        Order = 0
                    },
                    Notes = new NoteElement {
                        Enabled = true,
                        Header = "Additional Notes",
                        Order = 0,
                        Placeholder = "Enter any additional notes here",
                        Value = ""
                    },
                    Page = new PageElement {
                        Description = "Get paid securely",
                        Enabled = true,
                        Header = "Payment Page",
                        Order = 0
                    },
                    PaymentButton = new LabelElement {
                        Enabled = true,
                        Label = "Pay Now",
                        Order = 0
                    },
                    PaymentMethods = new MethodElementOut {
                        AllMethodsChecked = true,
                        AllowMultipleMethods = true,
                        DefaultMethod = "vcard",
                        Enabled = true,
                        Header = "Payment Methods",
                        Methods = new MethodsListOut {
                            Ach = true,
                            Check = true,
                            Vcard = true
                        },
                        Order = 0,
                        ShowPreviewVirtualCard = true
                    },
                    Review = new HeaderElement {
                        Enabled = true,
                        Header = "Review Payment",
                        Order = 0
                    },
                    Settings = new PagelinkSetting {
                        Color = "#000000",
                        Language = "en"
                    }
                }
            }
        );
    }

}

```

```go
package example

import (
    context "context"

    payabli "github.com/payabli/sdk-go"
    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    request := &payabli.PayLinkDataOut{
        AmountFixed: payabli.String(
            "true",
        ),
        EntryPoint: "8cfec329267",
        Mail2: payabli.String(
            "customer@example.com; billing@example.com",
        ),
        VendorNumber: "VEN-123",
        Body: &payabli.PaymentPageRequestBodyOut{
            ContactUs: &payabli.ContactElement{
                EmailLabel: payabli.String(
                    "Email",
                ),
                Enabled: payabli.Bool(
                    true,
                ),
                Header: payabli.String(
                    "Contact Us",
                ),
                Order: payabli.Int(
                    0,
                ),
                PaymentIcons: payabli.Bool(
                    true,
                ),
                PhoneLabel: payabli.String(
                    "Phone",
                ),
            },
            Logo: &payabli.Element{
                Enabled: payabli.Bool(
                    true,
                ),
                Order: payabli.Int(
                    0,
                ),
            },
            MessageBeforePaying: &payabli.LabelElement{
                Enabled: payabli.Bool(
                    true,
                ),
                Label: payabli.String(
                    "Please review your payment details",
                ),
                Order: payabli.Int(
                    0,
                ),
            },
            Notes: &payabli.NoteElement{
                Enabled: payabli.Bool(
                    true,
                ),
                Header: payabli.String(
                    "Additional Notes",
                ),
                Order: payabli.Int(
                    0,
                ),
                Placeholder: payabli.String(
                    "Enter any additional notes here",
                ),
                Value: payabli.String(
                    "",
                ),
            },
            Page: &payabli.PageElement{
                Description: payabli.String(
                    "Get paid securely",
                ),
                Enabled: payabli.Bool(
                    true,
                ),
                Header: payabli.String(
                    "Payment Page",
                ),
                Order: payabli.Int(
                    0,
                ),
            },
            PaymentButton: &payabli.LabelElement{
                Enabled: payabli.Bool(
                    true,
                ),
                Label: payabli.String(
                    "Pay Now",
                ),
                Order: payabli.Int(
                    0,
                ),
            },
            PaymentMethods: &payabli.MethodElementOut{
                AllMethodsChecked: payabli.Bool(
                    true,
                ),
                AllowMultipleMethods: payabli.Bool(
                    true,
                ),
                DefaultMethod: payabli.String(
                    "vcard",
                ),
                Enabled: payabli.Bool(
                    true,
                ),
                Header: payabli.String(
                    "Payment Methods",
                ),
                Methods: &payabli.MethodsListOut{
                    Ach: payabli.Bool(
                        true,
                    ),
                    Check: payabli.Bool(
                        true,
                    ),
                    Vcard: payabli.Bool(
                        true,
                    ),
                },
                Order: payabli.Int(
                    0,
                ),
                ShowPreviewVirtualCard: payabli.Bool(
                    true,
                ),
            },
            Review: &payabli.HeaderElement{
                Enabled: payabli.Bool(
                    true,
                ),
                Header: payabli.String(
                    "Review Payment",
                ),
                Order: payabli.Int(
                    0,
                ),
            },
            Settings: &payabli.PagelinkSetting{
                Color: payabli.String(
                    "#000000",
                ),
                Language: payabli.String(
                    "en",
                ),
            },
        },
    }
    client.PaymentLink.AddPayLinkFromBillLotNumber(
        context.TODO(),
        "LOT-2024-001",
        request,
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\PaymentLink\Requests\PayLinkDataOut;
use Payabli\Types\PaymentPageRequestBodyOut;
use Payabli\Types\ContactElement;
use Payabli\Types\Element;
use Payabli\Types\LabelElement;
use Payabli\Types\NoteElement;
use Payabli\Types\PageElement;
use Payabli\Types\MethodElementOut;
use Payabli\Types\MethodsListOut;
use Payabli\Types\HeaderElement;
use Payabli\Types\PagelinkSetting;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->paymentLink->addPayLinkFromBillLotNumber(
    'LOT-2024-001',
    new PayLinkDataOut([
        'amountFixed' => 'true',
        'entryPoint' => '8cfec329267',
        'mail2' => 'customer@example.com; billing@example.com',
        'vendorNumber' => 'VEN-123',
        'body' => new PaymentPageRequestBodyOut([
            'contactUs' => new ContactElement([
                'emailLabel' => 'Email',
                'enabled' => true,
                'header' => 'Contact Us',
                'order' => 0,
                'paymentIcons' => true,
                'phoneLabel' => 'Phone',
            ]),
            'logo' => new Element([
                'enabled' => true,
                'order' => 0,
            ]),
            'messageBeforePaying' => new LabelElement([
                'enabled' => true,
                'label' => 'Please review your payment details',
                'order' => 0,
            ]),
            'notes' => new NoteElement([
                'enabled' => true,
                'header' => 'Additional Notes',
                'order' => 0,
                'placeholder' => 'Enter any additional notes here',
                'value' => '',
            ]),
            'page' => new PageElement([
                'description' => 'Get paid securely',
                'enabled' => true,
                'header' => 'Payment Page',
                'order' => 0,
            ]),
            'paymentButton' => new LabelElement([
                'enabled' => true,
                'label' => 'Pay Now',
                'order' => 0,
            ]),
            'paymentMethods' => new MethodElementOut([
                'allMethodsChecked' => true,
                'allowMultipleMethods' => true,
                'defaultMethod' => 'vcard',
                'enabled' => true,
                'header' => 'Payment Methods',
                'methods' => new MethodsListOut([
                    'ach' => true,
                    'check' => true,
                    'vcard' => true,
                ]),
                'order' => 0,
                'showPreviewVirtualCard' => true,
            ]),
            'review' => new HeaderElement([
                'enabled' => true,
                'header' => 'Review Payment',
                'order' => 0,
            ]),
            'settings' => new PagelinkSetting([
                'color' => '#000000',
                'language' => 'en',
            ]),
        ]),
    ]),
);

```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "contactUs": [
    "emailLabel": "Email",
    "enabled": true,
    "header": "Contact Us",
    "order": 0,
    "paymentIcons": true,
    "phoneLabel": "Phone"
  ],
  "logo": [
    "enabled": true,
    "order": 0
  ],
  "messageBeforePaying": [
    "enabled": true,
    "label": "Please review your payment details",
    "order": 0
  ],
  "notes": [
    "enabled": true,
    "header": "Additional Notes",
    "order": 0,
    "placeholder": "Enter any additional notes here",
    "value": ""
  ],
  "page": [
    "description": "Get paid securely",
    "enabled": true,
    "header": "Payment Page",
    "order": 0
  ],
  "paymentButton": [
    "enabled": true,
    "label": "Pay Now",
    "order": 0
  ],
  "paymentMethods": [
    "allMethodsChecked": true,
    "allowMultipleMethods": true,
    "defaultMethod": "vcard",
    "enabled": true,
    "header": "Payment Methods",
    "methods": [
      "ach": true,
      "check": true,
      "vcard": true
    ],
    "order": 0,
    "showPreviewVirtualCard": true
  ],
  "review": [
    "enabled": true,
    "header": "Review Payment",
    "order": 0
  ],
  "settings": [
    "color": "#000000",
    "language": "en"
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/PaymentLink/bill/lotNumber/LOT-2024-001?amountFixed=true&entryPoint=8cfec329267&mail2=customer%40example.com%3B+billing%40example.com&vendorNumber=VEN-123")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```