> ## 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.

# Create Paylink

> Create payment link.



## OpenAPI

````yaml /openapi.yaml post /paylinks
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:
    post:
      tags:
        - Paylinks
      summary: Create Paylink
      description: Create payment link.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paylinks.CreatePaymentLinkRequest'
        description: Create Payment Link Request
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/internal.Response-paylinks_PaymentLinkResponse
        '400':
          description: Bad Request
          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:
    paylinks.CreatePaymentLinkRequest:
      properties:
        account_ids:
          description: Settlement account IDs to accept payment on.
          items:
            type: integer
          type: array
        account_ref:
          description: Settlement account reference as an alternative to account_ids.
          maxLength: 100
          type: string
        after_completion:
          allOf:
            - $ref: '#/components/schemas/paylinks.AfterCompletionStruct'
          description: >-
            Checkout behaviour after payment or when the link expires. Known
            keys: type (hosted or redirect), redirect_url (success),
            failure_redirect_url (expire or Failed), custom_message. Additional
            keys are stored and returned. Takes precedence over
            metadata.after_completion.
        amount:
          description: Price amount in major units as a decimal string (non-zero).
          type: string
        available_quantity:
          description: Remaining purchasable quantity; set to 1 for single-use links.
          minimum: 1
          type: integer
        currency:
          description: Currency code for the price (recognised and enabled).
          type: string
        description:
          description: Human-readable description shown at checkout (max 200 characters).
          maxLength: 200
          type: string
        expires_at:
          description: When the payment link expires (must be in the future).
          type: string
        image_url:
          description: Optional image URL shown on the payment link.
          type: string
        interval:
          description: Billing interval unit for recurring links.
          enum:
            - Unknown
            - Minute
            - Hour
            - Day
            - Week
            - Month
            - Year
          type: string
        intervalCount:
          description: Number of interval units between billings. Minimum 1.
          minimum: 1
          type: integer
        metadata:
          additionalProperties: {}
          description: >-
            Arbitrary key-value metadata (max 10 entries). after_completion may
            also be sent here for compatibility; the first-class
            after_completion field wins when both are set. customer_fields lists
            extra identity fields collected at checkout. Allowed values are
            address, date_of_birth, email, name, nationality, phone, and
            place_of_birth. nationality is an ISO 3166-1 country code; checkout
            may send alpha-2 or alpha-3, and the customer record stores alpha-3.
          type: object
        name:
          description: Display name shown on the payment link (max 100 characters).
          maxLength: 100
          type: string
        reference:
          description: Optional merchant-defined reference (max 50 characters).
          maxLength: 50
          type: string
        trial_period:
          description: Optional trial period before the first charge (parseable duration).
          type: string
        type:
          description: >-
            Plan type: OneTime or Recurring. Defaults from interval when
            omitted.
          type: string
      required:
        - amount
        - currency
        - name
      type: object
    internal.Response-paylinks_PaymentLinkResponse:
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/paylinks.PaymentLinkResponse'
          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.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
    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
    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
    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
    docenums.BillingSource:
      enum:
        - Lago
        - BoomFi
        - Stripe
        - Chargebee
        - QuickBooks
      type: string
      x-enum-varnames:
        - BillingSourceLago
        - BillingSourceBoomFi
        - BillingSourceStripe
        - BillingSourceChargebee
        - BillingSourceQuickBooks
    internal.SingleError:
      properties:
        domain:
          description: |-
            Domain
            Example: orders
          example: orders
          type: string
        reason:
          description: |-
            Error Reason
            Example: InsufficientQuantity
          example: InsufficientQuantity
          type: string
      type: object
    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.