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

# Create & Send

> API to create or update a text2pay invoice



## OpenAPI

````yaml /api-reference/invoices/openapi.json post /invoices/text2pay
openapi: 3.0.0
info:
  title: Invoice API
  description: Documentation for invoice API
  version: '1.0'
  contact: {}
servers:
  - url: https://services.leadconnectorhq.com
security: []
tags:
  - name: Invoice
    description: Documentation for invoice API
  - name: Template
    description: Documentation for invoice API
  - name: Schedule
    description: Documentation for invoice API
  - name: Text2Pay
    description: Documentation for invoice API
  - name: Estimate
    description: Documentation for invoice API
paths:
  /invoices/text2pay:
    post:
      tags:
        - Text2Pay
      summary: Create & Send
      description: API to create or update a text2pay invoice
      operationId: text2pay-invoice
      parameters:
        - name: Version
          in: header
          description: API Version
          required: true
          schema:
            type: string
            enum:
              - '2021-07-28'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Text2PayDto'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Text2PayInvoiceResponseDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestDTO'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedDTO'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableDTO'
      security:
        - Location-Access:
            - invoices.write
components:
  schemas:
    Text2PayDto:
      type: object
      properties:
        altId:
          type: string
          description: location Id / company Id based on altType
          example: 6578278e879ad2646715ba9c
        altType:
          type: string
          description: Alt Type
          enum:
            - location
          example: location
        name:
          type: string
          description: Invoice Name
          example: New Invoice
        currency:
          type: string
          description: Currency code
          example: USD
        items:
          description: An array of items for the invoice.
          type: array
          items:
            $ref: '#/components/schemas/InvoiceItemDto'
        termsNotes:
          type: string
          description: Terms notes, Also supports HTML markups
          example: <p>This is a default terms.</p>
        title:
          type: string
          description: Title for the invoice
          example: INVOICE
        contactDetails:
          $ref: '#/components/schemas/ContactDetailsDto'
        invoiceNumber:
          type: string
          description: Invoice Number
          example: '1001'
        issueDate:
          type: string
          description: Issue date in YYYY-MM-DD format
          example: '2023-01-01'
        dueDate:
          type: string
          description: Due date in YYYY-MM-DD format
          example: '2023-01-14'
        sentTo:
          $ref: '#/components/schemas/SentToDto'
        liveMode:
          type: boolean
        automaticTaxesEnabled:
          type: boolean
          description: Automatic taxes enabled for the Invoice
          example: true
        paymentSchedule:
          $ref: '#/components/schemas/PaymentScheduleDto'
        lateFeesConfiguration:
          $ref: '#/components/schemas/LateFeesConfigurationDto'
        tipsConfiguration:
          $ref: '#/components/schemas/TipsConfigurationDto'
        invoiceNumberPrefix:
          type: string
          description: prefix for invoice number
          example: INV-
        paymentMethods:
          $ref: '#/components/schemas/PaymentMethodDto'
        attachments:
          description: attachments for the invoice
          type: array
          items:
            $ref: '#/components/schemas/AttachmentsDto'
        miscellaneousCharges:
          $ref: '#/components/schemas/ProcessingFeeDto'
        id:
          type: string
          description: id of invoice to update. If skipped, a new invoice will be created
        includeTermsNote:
          type: boolean
          description: include terms & notes with receipts
          example: true
        action:
          type: string
          description: create invoice in draft mode or send mode
          example: draft
          enum:
            - draft
            - send
        userId:
          type: string
          description: id of user generating invoice
        discount:
          $ref: '#/components/schemas/DiscountDto'
        businessDetails:
          $ref: '#/components/schemas/BusinessDetailsDto'
      required:
        - altId
        - altType
        - name
        - currency
        - items
        - contactDetails
        - issueDate
        - sentTo
        - liveMode
        - action
        - userId
    Text2PayInvoiceResponseDto:
      type: object
      properties:
        invoice:
          $ref: '#/components/schemas/DefaultInvoiceResponseDto'
        invoiceUrl:
          type: string
          description: preview url of generated invoice
      required:
        - invoice
        - invoiceUrl
    BadRequestDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 400
        message:
          type: string
          example: Bad Request
      required:
        - statusCode
        - message
    UnauthorizedDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 401
        message:
          type: string
          example: 'Invalid token: access token is invalid'
        error:
          type: string
          example: Unauthorized
      required:
        - statusCode
        - message
        - error
    UnprocessableDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 422
        message:
          type: array
          items:
            type: string
          example:
            - Unprocessable Entity
        error:
          type: string
          example: Unprocessable Entity
      required:
        - statusCode
        - message
        - error
    InvoiceItemDto:
      type: object
      properties:
        name:
          type: string
          description: Invoice Item Name
          example: ABC Product
        description:
          type: string
          description: Invoice descriptions
          example: ABC Corp.
        productId:
          type: string
          description: Product Id
          example: 6578278e879ad2646715ba9c
        priceId:
          type: string
          description: Price Id
          example: 6578278e879ad2646715ba9c
        currency:
          type: string
          description: Currency
          example: USD
        amount:
          type: number
          description: Product amount
          example: 999
        qty:
          type: number
          description: Product Quantity
          example: 1
        taxes:
          description: Tax
          type: array
          items:
            $ref: '#/components/schemas/ItemTaxDto'
        automaticTaxCategoryId:
          type: string
          description: Tax category id for calculating automatic tax
          example: 6578278e879ad2646715ba9c
        isSetupFeeItem:
          type: boolean
          description: >-
            Setupfee item, only created when 1st invoice of recurring schedule
            is generated
        type:
          type: string
          description: Price type of the item
          example: one_time
          enum:
            - one_time
            - recurring
        taxInclusive:
          type: boolean
          description: true if item amount is tax inclusive
          example: true
          default: false
      required:
        - name
        - currency
        - amount
        - qty
    ContactDetailsDto:
      type: object
      properties:
        id:
          type: string
          description: Contact ID
          example: 6578278e879ad2646715ba9c
        name:
          type: string
          description: Contact Name
          example: Alex
        phoneNo:
          type: string
          description: Contact Phone Number
          example: '+1234567890'
        email:
          type: string
          description: Contact Email
          example: alex@example.com
        additionalEmails:
          description: Secondary email addresses for the contact to be saved
          type: array
          items:
            $ref: '#/components/schemas/AdditionalEmailsDto'
        companyName:
          type: string
          description: Contact Company Name
          example: ABC Corp.
        address:
          $ref: '#/components/schemas/AddressDto'
        customFields:
          description: Custom Values
          type: array
          items:
            type: string
      required:
        - id
        - name
        - phoneNo
        - email
    SentToDto:
      type: object
      properties:
        email:
          description: Email Address
          example:
            - alex@example.com
          type: array
          items:
            type: string
        emailCc:
          description: cc to be kept in any sent out emails
          example:
            - alex@example.com
          type: array
          items:
            type: string
        emailBcc:
          description: bcc to be kept in any sent out emails
          example:
            - alex@example.com
          type: array
          items:
            type: string
        phoneNo:
          description: Contact Phone Number
          example:
            - +1-214-559-6993
          type: array
          items:
            type: string
      required:
        - email
    PaymentScheduleDto:
      type: object
      properties:
        type:
          type: string
          description: Payment schedule type
          enum:
            - fixed
            - percentage
          example: percentage
        schedules:
          description: payment schedule item
          type: array
          items:
            type: string
      required:
        - type
        - schedules
    LateFeesConfigurationDto:
      type: object
      properties:
        enable:
          type: boolean
          description: Enable late fees
          example: true
        value:
          type: number
          description: Late Fees Value
          example: 10
        type:
          type: string
          description: Late Fees Type
          example: fixed
          enum:
            - fixed
            - percentage
        frequency:
          $ref: '#/components/schemas/LateFeesFrequencyDto'
        grace:
          $ref: '#/components/schemas/LateFeesGraceDto'
        maxLateFees:
          $ref: '#/components/schemas/LateFeesMaxFeesDto'
      required:
        - enable
        - value
        - type
        - frequency
    TipsConfigurationDto:
      type: object
      properties:
        tipsPercentage:
          description: Percentage of tips allowed
          example:
            - 5
            - 10
            - 15
          type: array
          items:
            type: string
        tipsEnabled:
          type: boolean
          description: Tips enabled status
          example: true
      required:
        - tipsPercentage
        - tipsEnabled
    PaymentMethodDto:
      type: object
      properties:
        stripe:
          $ref: '#/components/schemas/StripePaymentMethodDto'
      required:
        - stripe
    AttachmentsDto:
      type: object
      properties:
        id:
          type: string
          description: Id of the file selected
          example: 6241712be68f7a98102ba272
        name:
          type: string
          description: 'Name of the file '
          example: Electronics.pdf
        url:
          type: string
          description: URL of the file
          example: https://example.com/digital-delivery
        type:
          type: string
          description: Type of the file
        size:
          type: number
          description: Size of the file
          example: 10000
      required:
        - id
        - name
        - url
        - type
        - size
    ProcessingFeeDto:
      type: object
      properties:
        charges:
          description: charges for the processing fee
          items:
            type: array
          type: array
        collectedMiscellaneousCharges:
          type: number
          description: collected miscellaneous charges
          example: 10
        paidCharges:
          description: paid miscellaneous charges
          type: array
          items:
            $ref: '#/components/schemas/ProcessingFeePaidChargeDto'
      required:
        - charges
    DiscountDto:
      type: object
      properties:
        value:
          type: number
          description: Discount Value
          example: 10
          default: 0
        type:
          type: string
          description: Discount type
          enum:
            - percentage
            - fixed
          example: percentage
          default: percentage
        validOnProductIds:
          description: Product Ids on which discount is applicable
          example: '[ ''6579751d56f60276e5bd4154'' ]'
          type: array
          items:
            type: string
      required:
        - type
    BusinessDetailsDto:
      type: object
      properties:
        logoUrl:
          type: string
          description: Business Logo URL
          example: https://example.com/logo.png
        name:
          type: string
          description: Business Name
          example: ABC Corp.
        phoneNo:
          type: string
          description: Business Phone Number
          example: +1-214-559-6993
        address:
          $ref: '#/components/schemas/AddressDto'
          example: 9931 Beechwood, TX
        website:
          type: string
          description: Business Website Link
          example: wwww.example.com
        customValues:
          description: Custom Values
          type: array
          items:
            type: string
    DefaultInvoiceResponseDto:
      type: object
      properties:
        _id:
          type: string
          description: Invoice Id
          example: 6578278e879ad2646715ba9c
        status:
          type: string
          description: Invoice Status
          example: draft
          enum:
            - draft
            - sent
            - payment_processing
            - paid
            - void
            - partially_paid
        liveMode:
          type: boolean
          description: Live Mode
          example: false
        amountPaid:
          type: number
          description: Amount Paid
          example: 0
        altId:
          type: string
          description: Location Id or Agency Id
          example: 6578278e879ad2646715ba9c
        altType:
          type: string
          enum:
            - location
        name:
          type: string
          description: Name of the invoice
          example: New Invoice
        businessDetails:
          type: object
          description: Business Details
          example:
            name: Alex
            address:
              addressLine1: 9931 Beechwood
              city: St. Houston
              state: TX
              countryCode: USA
              postalCode: 559-6993
            phoneNo: +1-214-559-6993
            website: www.example.com
        invoiceNumber:
          type: number
          description: Invoice Number
          example: '19'
        currency:
          type: string
          description: Currency
          example: USD
        contactDetails:
          type: object
          description: Contact Details
          example:
            id: c6tZZU0rJBf30ZXx9Gli
            phoneNo: +1-214-559-6993
            email: alex@example.com
            customFields: []
            name: Alex
            address:
              countryCode: US
        issueDate:
          type: string
          description: Issue date in YYYY-MM-DD format
          example: '2023-01-01'
        dueDate:
          type: string
          description: Due date in YYYY-MM-DD format
          example: '2023-01-01'
        discount:
          type: object
          description: Discount
          example:
            type: percentage
            value: 0
        invoiceItems:
          description: Invoice Items
          example:
            - taxes: []
              _id: c6tZZU0rJBf30ZXx9Gli
              productId: c6tZZU0rJBf30ZXx9Gli
              priceId: c6tZZU0rJBf30ZXx9Gli
              currency: USD
              name: Macbook Pro
              qty: 1
              amount: 999
          type: array
          items:
            type: string
        total:
          type: number
          description: Total Amount
          example: 999
        title:
          type: string
          description: Title
          example: INVOICE
        amountDue:
          type: number
          description: Total Amount Due
          example: 999
        createdAt:
          type: string
          description: created at
          example: '2023-12-12T09:27:42.355Z'
        updatedAt:
          type: string
          description: updated at
          example: '2023-12-12T09:27:42.355Z'
        automaticTaxesEnabled:
          type: boolean
          description: Automatic taxes enabled for the Invoice
          example: true
        automaticTaxesCalculated:
          type: boolean
          description: Is Automatic taxes calculated for the Invoice items
          example: true
        paymentSchedule:
          type: object
          description: >-
            split invoice into payment schedule summing up to full invoice
            amount
      required:
        - _id
        - status
        - liveMode
        - amountPaid
        - altId
        - altType
        - name
        - businessDetails
        - invoiceNumber
        - currency
        - contactDetails
        - issueDate
        - dueDate
        - invoiceItems
        - total
        - title
        - amountDue
        - createdAt
        - updatedAt
    ItemTaxDto:
      type: object
      properties:
        _id:
          type: string
        name:
          type: string
        rate:
          type: number
        calculation:
          type: string
          enum:
            - exclusive
        description:
          type: string
        taxId:
          type: string
      required:
        - _id
        - name
        - rate
    AdditionalEmailsDto:
      type: object
      properties:
        email:
          type: string
          example: alex@example.com
      required:
        - email
    AddressDto:
      type: object
      properties:
        addressLine1:
          type: string
          description: Address Line 1
          example: 9931 Beechwood
        addressLine2:
          type: string
          description: Address Line 2
          example: Beechwood
        city:
          type: string
          description: City
          example: St. Houston
        state:
          type: string
          description: State
          example: TX
        countryCode:
          type: string
          description: Country Code
          example: US
        postalCode:
          type: string
          description: Postal Code
          example: 559-6993
    LateFeesFrequencyDto:
      type: object
      properties:
        intervalCount:
          type: number
          description: Late fees interval count
          example: 10
        interval:
          type: string
          description: Late fees interval
          example: day
          enum:
            - minute
            - hour
            - day
            - week
            - month
            - one_time
      required:
        - intervalCount
        - interval
    LateFeesGraceDto:
      type: object
      properties:
        intervalCount:
          type: number
          description: Late fees grace interval count
          example: 10
        interval:
          type: string
          description: Late fees grace interval
          example: day
          enum:
            - day
      required:
        - intervalCount
        - interval
    LateFeesMaxFeesDto:
      type: object
      properties:
        type:
          type: string
          example: fixed
          enum:
            - fixed
        value:
          type: number
          example: '10'
          description: Max late fees to pay
      required:
        - type
        - value
    StripePaymentMethodDto:
      type: object
      properties:
        enableBankDebitOnly:
          type: boolean
          description: Enable Bank Debit Only
          example: false
      required:
        - enableBankDebitOnly
    ProcessingFeePaidChargeDto:
      type: object
      properties:
        name:
          type: string
          description: name of the processing fee
          example: Processing Fee
        charge:
          type: number
          description: charge for the processing fee
          example: 10
        amount:
          type: number
          description: amount of the processing fee
          example: 10
        _id:
          type: string
          description: id of the processing fee
          example: 673d01d7d547648a8dab6211
      required:
        - name
        - charge
        - amount
        - _id

````