> ## Documentation Index
> Fetch the complete documentation index at: https://docs.boomfi.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Generate Paylink Variant URL

> Generate a variant URL for a payment link



## OpenAPI

````yaml /openapi.yaml get /paylinks/generate-variant/{paylinkId}
openapi: 3.1.0
info:
  contact:
    email: support@boomfi.xyz
    name: API Support
  description: >-
    The BoomFi Merchants API provides a set of endpoints for merchants to manage
    their accounts, transactions, and more. Hosts differ per brand/environment;
    use the brand-specific base URL from the docs.
  title: BoomFi Merchants API
  version: '1.0'
servers:
  - url: https://mapi.boomfi.xyz/v1
    description: Production
  - url: https://mapi-test.boomfi.xyz/v1
    description: Test
security: []
tags:
  - description: Payment links
    name: Paylinks
  - description: Billing plans
    name: Plans
  - description: Subscriptions
    name: Subscriptions
  - description: Customer records
    name: Customers
  - description: Invoices
    name: Invoices
  - description: Payments
    name: Payments
  - description: Organisation events
    name: Events
  - description: Organisation profile and display settings
    name: Organisation
  - description: Webhook and request-signing secrets
    name: Secrets
  - description: Settlement accounts
    name: Accounts
  - name: External Accounts
  - description: Managed virtual accounts, balances, pay-in, and payout
    name: Virtual Accounts
  - description: Partner-managed accounts, virtual accounts, pay-in, and payout
    name: Partners
  - description: Partner maintain-balance automations
    name: Partner Balance Monitoring
  - name: Checkout Sessions
paths:
  /paylinks/generate-variant/{paylinkId}:
    get:
      tags:
        - Paylinks
      summary: Generate Paylink Variant URL
      description: Generate a variant URL for a payment link
      parameters:
        - description: Unique payment link identifier (plink_...)
          in: path
          name: paylinkId
          required: true
          schema:
            type: string
        - description: Override amount for this checkout variant.
          example: '25.00'
          in: query
          name: amount
          schema:
            type: string
        - description: Override currency for this checkout variant.
          example: USD
          in: query
          name: currency
          schema:
            type: string
        - description: Customer identifier recorded as customer.reference on the payment.
          example: user-123
          in: query
          name: customer_ident
          schema:
            type: string
        - description: Override description shown on the checkout.
          in: query
          name: description
          schema:
            type: string
        - description: Expiration time as RFC3339 or unix seconds.
          example: '2024-12-31T23:59:59.000Z'
          in: query
          name: expires_at
          schema:
            type: string
        - description: Redirect URL after successful payment.
          example: https://example.com/thanks
          in: query
          name: redirect_to
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/internal.Response-paylinks_GenerateVariantURLResponse
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal.ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal.ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal.ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal.ErrorResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    internal.Response-paylinks_GenerateVariantURLResponse:
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/paylinks.GenerateVariantURLResponse'
          description: Response payload when the request succeeded.
        error:
          description: True when the request failed.
          type: boolean
        message:
          description: Human-readable status or error message.
          type: string
      type: object
    internal.ErrorResponse:
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/internal.ErrorStruct'
          description: Error details including HTTP-style code and message.
      type: object
    paylinks.GenerateVariantURLResponse:
      properties:
        created_by:
          description: User or system that created the resource.
          type: string
        payment_link:
          allOf:
            - $ref: '#/components/schemas/paylinks.PaymentLinkResponse'
          description: Payment link associated with this resource.
        plan:
          allOf:
            - $ref: '#/components/schemas/plan.PlanResponse'
          description: Plan associated with this resource.
        url:
          description: Generated checkout or payment-link URL for this variant.
          type: string
      type: object
    internal.ErrorStruct:
      properties:
        code:
          description: |-
            Error code
            Example: 400
          example: 400
          type: integer
        errors:
          description: List of errors
          items:
            $ref: '#/components/schemas/internal.SingleError'
          type: array
        message:
          description: |-
            Error message
            Example: Insufficient quantity
          example: Insufficient quantity
          type: string
      type: object
    paylinks.PaymentLinkResponse:
      properties:
        after_completion:
          allOf:
            - $ref: '#/components/schemas/paylinks.AfterCompletionStruct'
          description: >-
            Checkout behaviour after payment or when the link expires. Mirrors
            metadata.after_completion.
        created_at:
          description: created_at
          type: string
        created_by:
          description: created_by
          type: string
        customer_ident_collection:
          description: customer_ident_collection
          type: boolean
        deleted_at:
          description: deleted_at
          type: string
        enabled:
          description: enabled
          type: boolean
        id:
          description: id
          type: string
        invoice_id:
          description: invoice_id
          type: string
        metadata:
          additionalProperties: {}
          description: >-
            Arbitrary merchant-defined metadata. Also includes after_completion
            when configured, and customer_fields when extra identity fields are
            collected at checkout.
          type: object
        plan:
          allOf:
            - $ref: '#/components/schemas/plan.PlanResponse'
          description: Plan associated with this resource.
        plan_id:
          description: plan_id
          type: string
        properties:
          additionalProperties: {}
          description: Additional properties as a key-value map.
          type: object
        shipping_address_collection:
          description: shipping_address_collection
          type: boolean
        source:
          allOf:
            - $ref: '#/components/schemas/docenums.BillingSource'
          description: source
        tax_ident_collection:
          description: tax_ident_collection
          type: boolean
        updated_at:
          description: updated_at
          type: string
        updated_by:
          description: updated_by
          type: string
        url:
          description: Hosted checkout URL for this payment link.
          type: string
      type: object
    plan.PlanResponse:
      properties:
        available_quantity:
          description: >-
            Remaining purchasable quantity when the plan has a capped supply;
            omitted when unlimited.
          type: integer
        billing_scheme:
          allOf:
            - $ref: '#/components/schemas/docenums.BillingScheme'
          description: billing_scheme
        created_at:
          description: created_at
          type: string
        created_by:
          description: created_by
          type: string
        currency:
          description: currency
          type: string
        deleted_at:
          description: deleted_at
          type: string
        enabled:
          description: enabled
          type: boolean
        expires_at:
          description: expires_at
          type: string
        id:
          description: id
          type: string
        metadata:
          additionalProperties: {}
          description: Arbitrary key-value metadata attached to the plan.
          type: object
        name:
          description: name
          type: string
        org_id:
          description: org_id
          type: string
        payment_link:
          allOf:
            - $ref: '#/components/schemas/plan.PaymentLinkResponse'
          description: Checkout payment link associated with this plan, when one exists.
        price:
          description: price
          type: string
        properties:
          additionalProperties: {}
          description: Internal plan properties (feature flags and display settings).
          type: object
        recurring_interval:
          allOf:
            - $ref: '#/components/schemas/docenums.RecurringInterval'
          description: recurring_interval
        recurring_interval_count:
          description: recurring_interval_count
          type: integer
        recurring_usage_type:
          allOf:
            - $ref: '#/components/schemas/docenums.RecurringUsageType'
          description: recurring_usage_type
        reference:
          description: reference
          type: string
        source:
          allOf:
            - $ref: '#/components/schemas/docenums.BillingSource'
          description: source
        trial_period:
          description: trial_period
          type: string
        type:
          allOf:
            - $ref: '#/components/schemas/docenums.PlanType'
          description: type
        updated_at:
          description: updated_at
          type: string
      type: object
    internal.SingleError:
      properties:
        domain:
          description: |-
            Domain
            Example: orders
          example: orders
          type: string
        reason:
          description: |-
            Error Reason
            Example: InsufficientQuantity
          example: InsufficientQuantity
          type: string
      type: object
    paylinks.AfterCompletionStruct:
      properties:
        custom_message:
          description: >-
            Custom message shown on the hosted success receipt after checkout
            completes.
          maxLength: 200
          type: string
        failure_redirect_url:
          description: >-
            Failure URL. Hosted and lite checkout send the customer here when
            the payment link is expired or exhausted, or when payment.status is
            Failed. Optional for both hosted and redirect types. Not used when
            the payer switches payment method (Canceled). Max 512 characters.
          example: https://merchant.example/checkout/failed
          maxLength: 512
          type: string
        redirect_url:
          description: >-
            Success URL. When type is redirect, hosted and lite checkout send
            the customer here after a successful payment (Succeeded). Required
            when type is redirect. Not used for expired links or Failed
            payments. Max 512 characters.
          example: https://merchant.example/checkout/success
          maxLength: 512
          type: string
        type:
          description: >-
            After-completion behaviour: hosted keeps the customer on the in-app
            receipt; redirect sends them to redirect_url after a successful
            payment. When omitted, redirect_url implies redirect.
          enum:
            - hosted
            - redirect
          example: redirect
          type: string
      type: object
    docenums.BillingSource:
      enum:
        - Lago
        - BoomFi
        - Stripe
        - Chargebee
        - QuickBooks
      type: string
      x-enum-varnames:
        - BillingSourceLago
        - BillingSourceBoomFi
        - BillingSourceStripe
        - BillingSourceChargebee
        - BillingSourceQuickBooks
    docenums.BillingScheme:
      enum:
        - FlatFee
        - PerUnit
        - Graduated
        - Volume
      type: string
      x-enum-varnames:
        - BillingSchemeFlatFee
        - BillingSchemePerUnit
        - BillingSchemeGraduated
        - BillingSchemeVolume
    plan.PaymentLinkResponse:
      properties:
        after_completion:
          additionalProperties: {}
          description: >-
            Checkout behaviour after payment or when the link expires. Mirrors
            metadata.after_completion.
          type: object
        created_at:
          description: created_at
          type: string
        created_by:
          description: created_by
          type: string
        customer_ident_collection:
          description: customer_ident_collection
          type: boolean
        deleted_at:
          description: deleted_at
          type: string
        enabled:
          description: enabled
          type: boolean
        id:
          description: id
          type: string
        invoice_id:
          description: invoice_id
          type: string
        metadata:
          additionalProperties: {}
          description: Arbitrary key-value metadata attached to the payment link.
          type: object
        plan_id:
          description: plan_id
          type: string
        properties:
          additionalProperties: {}
          description: Internal payment link properties.
          type: object
        shipping_address_collection:
          description: shipping_address_collection
          type: boolean
        source:
          allOf:
            - $ref: '#/components/schemas/docenums.BillingSource'
          description: source
        tax_ident_collection:
          description: tax_ident_collection
          type: boolean
        updated_at:
          description: updated_at
          type: string
        updated_by:
          description: updated_by
          type: string
      type: object
    docenums.RecurringInterval:
      enum:
        - Unknown
        - Minute
        - Hour
        - Day
        - Week
        - Month
        - Year
      type: string
      x-enum-varnames:
        - RecurringIntervalUnknown
        - RecurringIntervalMinute
        - RecurringIntervalHour
        - RecurringIntervalDay
        - RecurringIntervalWeek
        - RecurringIntervalMonth
        - RecurringIntervalYear
    docenums.RecurringUsageType:
      enum:
        - Unknown
        - Licensed
        - Metered
      type: string
      x-enum-varnames:
        - RecurringUsageTypeUnknown
        - RecurringUsageTypeLicensed
        - RecurringUsageTypeMetered
    docenums.PlanType:
      enum:
        - Unknown
        - OneTime
        - Recurring
      type: string
      x-enum-varnames:
        - PlanTypeUnknown
        - PlanTypeOneTime
        - PlanTypeRecurring
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: X-API-KEY
      type: apiKey

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.