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

# Create customer

POST https://api-sandbox.payabli.com/api/Customer/single/{entry}
Content-Type: application/json

Creates a customer in an entrypoint. An identifier is required to create customer records. Change your identifier settings in Settings > Custom Fields in PartnerHub. 
If you don't include an identifier, the record is rejected.

Reference: https://docs.payabli.com/developers/api-reference/customer/add-customer

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: payabliApi
  version: 1.0.0
paths:
  /Customer/single/{entry}:
    post:
      operationId: add-customer
      summary: Add customer
      description: >-
        Creates a customer in an entrypoint. An identifier is required to create
        customer records. Change your identifier settings in Settings > Custom
        Fields in PartnerHub. 

        If you don't include an identifier, the record is rejected.
      tags:
        - subpackage_customer
      parameters:
        - name: entry
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/type_:Entrypointfield'
        - name: forceCustomerCreation
          in: query
          description: >-
            When `true`, the request creates a new customer record, regardless
            of whether customer identifiers match an existing customer.
          required: false
          schema:
            type: boolean
            default: false
        - name: replaceExisting
          in: query
          description: >-
            Flag indicating to replace existing customer with a new record.
            Possible values: 0 (don't replace), 1 (replace). Default is `0`.
          required: false
          schema:
            type: integer
            default: 0
        - name: requestToken
          in: header
          required: true
          schema:
            type: string
        - name: idempotencyKey
          in: header
          required: false
          schema:
            $ref: '#/components/schemas/type_:IdempotencyKey'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_:PayabliApiResponseCustomerQuery'
        '400':
          description: Bad request/ invalid data
          content:
            application/json:
              schema:
                description: Any type
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                description: Any type
        '500':
          description: Internal API Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Database connection error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_:PayabliApiResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/type_:CustomerData'
servers:
  - url: https://api-sandbox.payabli.com/api
  - url: https://api.payabli.com/api
components:
  schemas:
    type_:Entrypointfield:
      type: string
      description: The entrypoint identifier.
      title: Entrypointfield
    type_:IdempotencyKey:
      type: string
      description: >-
        _Optional but recommended_ A unique ID that you can include to prevent
        duplicating objects or transactions in the case that a request is sent
        more than once. This key isn't generated in Payabli, you must generate
        it yourself. This key persists for 2 minutes. After 2 minutes, you can
        reuse the key if needed.
      title: IdempotencyKey
    type_:CustomerNumberNullable:
      type: string
      description: >-
        User-provided unique identifier for the customer. This is typically the
        customer ID from your own system.
      title: CustomerNumberNullable
    type_:CustomerStatus:
      type: integer
      description: |-
        Customer Status. 
        Possible values:
        - `-99` Deleted
        - `0` Inactive
        - `1` Active
        - `85` Locked (typically due to multiple failed login attempts)
      title: CustomerStatus
    type_:Email:
      type: string
      format: email
      description: Email address.
      title: Email
    type_:Shippingaddress:
      type: string
      description: The shipping address.
      title: Shippingaddress
    type_:Shippingaddressadditional:
      type: string
      description: Additional line for shipping address.
      title: Shippingaddressadditional
    type_:Shippingcity:
      type: string
      description: Shipping city.
      title: Shippingcity
    type_:Shippingstate:
      type: string
      description: Shipping state or province.
      title: Shippingstate
    type_:Shippingzip:
      type: string
      description: >-
        Shipping ZIP code. For Pay In functions, this field supports 5-digit and
        9-digit ZIP codes and alphanumeric Canadian postal codes. For example:
        "37615-1234" or "37615".
      title: Shippingzip
    type_:Shippingcountry:
      type: string
      description: Shipping address country.
      title: Shippingcountry
    type_:Timezone:
      type: integer
      description: Timezone, in UTC offset. For example, -5 is Eastern time.
      title: Timezone
    type_:Identifierfields:
      type: array
      items:
        type: string
      description: >-
        List of fields acting as customer identifiers, to be used instead of
        CustomerNumber.
      title: Identifierfields
    type_:CreatedAt:
      type: string
      format: date-time
      description: Timestamp of when record was created, in UTC.
      title: CreatedAt
    type_:CustomerData:
      type: object
      properties:
        customerNumber:
          $ref: '#/components/schemas/type_:CustomerNumberNullable'
        customerUsername:
          type: string
          description: Customer username for customer portal
        customerPsw:
          type: string
          description: Customer password for customer portal
        customerStatus:
          $ref: '#/components/schemas/type_:CustomerStatus'
        company:
          type: string
          description: Company name
        firstname:
          type: string
          description: Customer first name
        lastname:
          type: string
          description: Customer last name
        phone:
          type: string
          description: Customer phone number
        email:
          $ref: '#/components/schemas/type_:Email'
          description: Customer email address.
        address:
          type: string
          description: Customer address
        address1:
          type: string
          description: Additional customer address
        city:
          type: string
          description: Customer city
        state:
          type: string
          description: Customer State
        zip:
          type: string
          description: Customer postal code
        country:
          type: string
          description: >-
            Customer country in ISO-3166-1 alpha 2 format. See
            https://en.wikipedia.org/wiki/ISO_3166-1 for reference.
        shippingAddress:
          $ref: '#/components/schemas/type_:Shippingaddress'
        shippingAddress1:
          $ref: '#/components/schemas/type_:Shippingaddressadditional'
        shippingCity:
          $ref: '#/components/schemas/type_:Shippingcity'
        shippingState:
          $ref: '#/components/schemas/type_:Shippingstate'
        shippingZip:
          $ref: '#/components/schemas/type_:Shippingzip'
        shippingCountry:
          $ref: '#/components/schemas/type_:Shippingcountry'
        balance:
          type: number
          format: double
          description: Customer balance.
        timeZone:
          $ref: '#/components/schemas/type_:Timezone'
        additionalFields:
          type: object
          additionalProperties:
            type: string
          description: Additional Custom fields in format "key":"value".
        identifierFields:
          $ref: '#/components/schemas/type_:Identifierfields'
        createdAt:
          $ref: '#/components/schemas/type_:CreatedAt'
      description: Data about a single customer.
      title: CustomerData
    type_:IsSuccess:
      type: boolean
      description: >-
        Boolean indicating whether the operation was successful. A `true` value
        indicates success. A `false` value indicates failure.
      title: IsSuccess
    type_:CustomerId:
      type: integer
      format: int64
      description: The Payabli-generated unique ID for the customer.
      title: CustomerId
    type_:Mfa:
      type: boolean
      description: When `true`, multi-factor authentication (MFA) is enabled.
      title: Mfa
    type_:MfaMode:
      type: integer
      title: MfaMode
    type_:BillingZip:
      type: string
      description: Billing address ZIP code.
      title: BillingZip
    type_:AdditionalDataMap:
      type: object
      additionalProperties:
        type: string
      description: >-
        Custom dictionary of key:value pairs. You can use this field to store
        any data related to the object or for your system. 


        ```json

        {
          "additionalData": {
            "key1": "value1",
            "key2": "value2",
            "key3": "value3"
          }
        }

        ```
      title: AdditionalDataMap
    type_:QueryTransactionPayorData:
      type: object
      properties:
        Identifiers:
          type: array
          items:
            description: Any type
          description: Array of field names to be used as identifiers.
        FirstName:
          type: string
          description: Customer/Payor first name.
        LastName:
          type: string
          description: Customer/Payor last name.
        CompanyName:
          type: string
          description: Customer's company name.
        BillingAddress1:
          type: string
          description: Customer's billing address.
        BillingAddress2:
          type: string
          description: Additional line for Customer's billing address.
        BillingCity:
          type: string
          description: Customer's billing city.
        BillingState:
          type: string
          description: >-
            Customer's billing state. Must be 2-letter state code for address in
            US.
        BillingZip:
          $ref: '#/components/schemas/type_:BillingZip'
          description: Customer's billing ZIP code.
        BillingCountry:
          type: string
          description: Customer's billing country.
        BillingPhone:
          type: string
          description: Customer's phone number.
        BillingEmail:
          $ref: '#/components/schemas/type_:Email'
          description: Customer's email address.
        CustomerNumber:
          $ref: '#/components/schemas/type_:CustomerNumberNullable'
        ShippingAddress1:
          $ref: '#/components/schemas/type_:Shippingaddress'
        ShippingAddress2:
          $ref: '#/components/schemas/type_:Shippingaddressadditional'
        ShippingCity:
          $ref: '#/components/schemas/type_:Shippingcity'
        ShippingState:
          $ref: '#/components/schemas/type_:Shippingstate'
        ShippingZip:
          $ref: '#/components/schemas/type_:Shippingzip'
        ShippingCountry:
          $ref: '#/components/schemas/type_:Shippingcountry'
        customerId:
          $ref: '#/components/schemas/type_:CustomerId'
        customerStatus:
          $ref: '#/components/schemas/type_:CustomerStatus'
        AdditionalData:
          $ref: '#/components/schemas/type_:AdditionalDataMap'
      title: QueryTransactionPayorData
    type_:EntrypageId:
      type: integer
      format: int64
      description: >-
        If applicable, the internal reference ID to the payment page capturing
        the payment.
      title: EntrypageId
    type_:ExternalPaypointId:
      type: string
      description: >-
        A custom identifier for the paypoint, if applicable. Like `entrypoint`
        is the Payabli identifier for the merchant, `externalPaypointId` is a
        custom field you can use to include the merchant's ID from your own
        systems.
      title: ExternalPaypointId
    type_:FileContentFtype:
      type: string
      enum:
        - pdf
        - doc
        - docx
        - jpg
        - jpeg
        - png
        - gif
        - txt
      description: The MIME type of the file (if content is provided)
      title: FileContentFtype
    type_:FileContent:
      type: object
      properties:
        fContent:
          type: string
          description: >-
            Content of file, Base64-encoded. Ignored if furl is specified. Max
            upload size is 30 MB.
        filename:
          type: string
          description: The name of the attached file.
        ftype:
          $ref: '#/components/schemas/type_:FileContentFtype'
          description: The MIME type of the file (if content is provided)
        furl:
          type: string
          description: Optional URL provided to show or download the file remotely
      description: Contains details about a file. Max upload size is 30 MB.
      title: FileContent
    type_:Attachments:
      type: array
      items:
        $ref: '#/components/schemas/type_:FileContent'
      description: >-
        Array of `fileContent` objects with attached documents. Max upload size
        is 30 MB.
      title: Attachments
    type_:Discount:
      type: number
      format: double
      description: Discount applied to the invoice.
      title: Discount
    type_:DutyAmount:
      type: number
      format: double
      description: Duty amount.
      title: DutyAmount
    type_:FreightAmount:
      type: number
      format: double
      description: Freight/shipping amount.
      title: FreightAmount
    type_:Frequency:
      type: string
      enum:
        - onetime
        - weekly
        - every2weeks
        - every6months
        - monthly
        - every3months
        - annually
      description: Frequency for operation.
      title: Frequency
    type_:InvoiceAmount:
      type: number
      format: double
      description: Invoice total amount.
      title: InvoiceAmount
    type_:InvoiceNumber:
      type: string
      description: >-
        Custom number identifying the bill or invoice. Must be unique in
        paypoint.
      title: InvoiceNumber
    type_:Invoicestatus:
      type: integer
      description: |-
        Status for invoice.

        The accepted status values are: 

          - 0 draft  
          - 1 active  
          - 2 partially paid  
          - 4 paid/complete  
          - 99 cancelled
      title: Invoicestatus
    type_:InvoiceType:
      type: integer
      description: Type of invoice. Only `0` for one-time invoices is currently supported.
      title: InvoiceType
    type_:ItemCommodityCode:
      type: string
      description: Item or product commodity code. Max length of 250 characters.
      title: ItemCommodityCode
    type_:ItemDescription:
      type: string
      description: Item or product description. Max length of 250 characters.
      title: ItemDescription
    type_:ItemProductCode:
      type: string
      description: Item or product code. Max length of 250 characters.
      title: ItemProductCode
    type_:ItemProductName:
      type: string
      description: Item or product name. Max length of 250 characters.
      title: ItemProductName
    type_:ItemUnitofMeasure:
      type: string
      description: Unit of measurement. Max length of 100 characters.
      title: ItemUnitofMeasure
    type_:BillItem:
      type: object
      properties:
        itemCategories:
          type: array
          items:
            type: string
          description: Array of tags classifying item or product.
        itemCommodityCode:
          $ref: '#/components/schemas/type_:ItemCommodityCode'
        itemCost:
          type: number
          format: double
          description: Item or product price per unit.
        itemDescription:
          $ref: '#/components/schemas/type_:ItemDescription'
        itemMode:
          type: integer
          description: >-
            Internal class of item or product: value '0' is only for invoices ,
            '1' for bills and, '2' common for both.
        itemProductCode:
          $ref: '#/components/schemas/type_:ItemProductCode'
        itemProductName:
          $ref: '#/components/schemas/type_:ItemProductName'
        itemQty:
          type: integer
          description: Quantity of item or product.
        itemTaxAmount:
          type: number
          format: double
          description: Tax amount applied to item or product.
        itemTaxRate:
          type: number
          format: double
          description: Tax rate applied to item or product.
        itemTotalAmount:
          type: number
          format: double
          description: Total amount in item or product.
        itemUnitOfMeasure:
          $ref: '#/components/schemas/type_:ItemUnitofMeasure'
      required:
        - itemCost
      title: BillItem
    type_:BillDataPaymentTerms:
      type: string
      enum:
        - PIA
        - CIA
        - UR
        - NET10
        - NET20
        - NET30
        - NET45
        - NET60
        - NET90
        - EOM
        - MFI
        - 5MFI
        - 10MFI
        - 15MFI
        - 20MFI
        - 2/10NET30
        - UF
        - 10UF
        - 20UF
        - 25UF
        - 50UF
      description: >-
        Payment terms for invoice. If no terms are defined, then response data
        for this field defaults to `NET30`.


        **Available Values:**


        - `PIA`: Payment in advance


        - `CIA`: Cash in advance


        - `UR`: Upon receipt


        - `NET10`: 10 days after invoice date


        - `NET20`: 20 days after invoice date


        - `NET30`: 30 days after invoice date


        - `NET45`: 45 days after invoice date


        - `NET60`: 60 days after invoice date


        - `NET90`: 90 days after invoice date


        - `EOM`: Due end of this month


        - `MFI`: 1st of the month following the invoice date


        - `5MFI`: 5th of the month following the invoice date


        - `10MFI`: 10th of the month following the invoice date


        - `15MFI`: 15th of the month following the invoice date


        - `20MFI`: 20th of the month following the invoice date


        - `2/10NET30`: 2% discount if paid within 10 days, otherwise net 30 days


        - `UF`: Until further notice


        - `10UF`: 10 days until further notice


        - `20UF`: 20 days until further notice


        - `25UF`: 25 days until further notice


        - `50UF`: 50 days until further notice
      title: BillDataPaymentTerms
    type_:PurchaseOrder:
      type: string
      description: Purchase order number.
      title: PurchaseOrder
    type_:ShippingFromZip:
      type: string
      description: Sender shipping ZIP code.
      title: ShippingFromZip
    type_:SummaryCommodityCode:
      type: string
      description: Commodity code.
      title: SummaryCommodityCode
    type_:Tax:
      type: number
      format: double
      description: Tax rate in percent applied to the invoice.
      title: Tax
    type_:TermsConditions:
      type: string
      description: Custom terms and conditions included in the invoice.
      title: TermsConditions
    type_:BillData:
      type: object
      properties:
        AdditionalData:
          $ref: '#/components/schemas/type_:AdditionalDataMap'
        attachments:
          $ref: '#/components/schemas/type_:Attachments'
        company:
          type: string
          description: Company name of the recipient of the invoice.
        discount:
          $ref: '#/components/schemas/type_:Discount'
        dutyAmount:
          $ref: '#/components/schemas/type_:DutyAmount'
        firstName:
          type: string
          description: First name of the recipient of the invoice.
        freightAmount:
          $ref: '#/components/schemas/type_:FreightAmount'
        frequency:
          $ref: '#/components/schemas/type_:Frequency'
          description: Frequency of scheduled invoice.
        invoiceAmount:
          $ref: '#/components/schemas/type_:InvoiceAmount'
        invoiceDate:
          type: string
          format: date
          description: 'Invoice date in any of the accepted formats: YYYY-MM-DD, MM/DD/YYYY.'
        invoiceDueDate:
          type: string
          format: date
          description: >-
            Invoice due date in one of the accepted formats: YYYY-MM-DD,
            MM/DD/YYYY.
        invoiceEndDate:
          type: string
          format: date
          description: >-
            Indicate the date to finish a scheduled invoice cycle
            (`invoiceType`` = 1) in any of the accepted formats: YYYY-MM-DD,
            MM/DD/YYYY.
        invoiceNumber:
          $ref: '#/components/schemas/type_:InvoiceNumber'
          description: Invoice number. Identifies the invoice under a paypoint.
        invoiceStatus:
          $ref: '#/components/schemas/type_:Invoicestatus'
        invoiceType:
          $ref: '#/components/schemas/type_:InvoiceType'
        items:
          type: array
          items:
            $ref: '#/components/schemas/type_:BillItem'
          description: Array of line items included in the invoice.
        lastName:
          type: string
          description: Last name of the recipient of the invoice.
        notes:
          type: string
          description: Notes included in the invoice.
        paymentTerms:
          $ref: '#/components/schemas/type_:BillDataPaymentTerms'
        purchaseOrder:
          $ref: '#/components/schemas/type_:PurchaseOrder'
        shippingAddress1:
          $ref: '#/components/schemas/type_:Shippingaddress'
        shippingAddress2:
          $ref: '#/components/schemas/type_:Shippingaddressadditional'
        shippingCity:
          $ref: '#/components/schemas/type_:Shippingcity'
        shippingCountry:
          $ref: '#/components/schemas/type_:Shippingcountry'
        shippingEmail:
          $ref: '#/components/schemas/type_:Email'
          description: Shipping recipient's contact email address.
        shippingFromZip:
          $ref: '#/components/schemas/type_:ShippingFromZip'
        shippingPhone:
          type: string
          description: Recipient phone number.
        shippingState:
          $ref: '#/components/schemas/type_:Shippingstate'
        shippingZip:
          $ref: '#/components/schemas/type_:Shippingzip'
        summaryCommodityCode:
          $ref: '#/components/schemas/type_:SummaryCommodityCode'
        tax:
          $ref: '#/components/schemas/type_:Tax'
        termsConditions:
          $ref: '#/components/schemas/type_:TermsConditions'
      title: BillData
    type_:LastModified:
      type: string
      format: date-time
      description: Timestamp of when record was last updated, in UTC.
      title: LastModified
    type_:Netamountnullable:
      type: number
      format: double
      description: Net amount.
      title: Netamountnullable
    type_:OrgParentName:
      type: string
      description: The name of the parent organization.
      title: OrgParentName
    type_:Accountexp:
      type: string
      description: Expiration date of card used in transaction.
      title: Accountexp
    type_:AccountId:
      type: string
      description: Custom identifier for payment connector.
      title: AccountId
    type_:Accounttype:
      type: string
      description: Bank account type or card brand.
      title: Accounttype
    type_:Accountzip:
      type: string
      description: ZIP code for card used in transaction.
      title: Accountzip
    type_:BinData:
      type: object
      properties:
        binMatchedLength:
          type: string
          description: |-
            The number of characters from the beginning of the card number that
            were matched against a Bank Identification Number (BIN) or the Card
            Range table.
        binCardBrand:
          type: string
          description: |-
            The card brand. For example, Visa, Mastercard, American Express,
            Discover.
        binCardType:
          type: string
          description: 'The type of card: Credit or Debit.'
        binCardCategory:
          type: string
          description: >-
            The category of the card, which indicates the card product. For
            example: Standard, Gold, Platinum, etc. The binCardCategory for
            prepaid cards is marked `PREPAID`.
        binCardIssuer:
          type: string
          description: The name of the financial institution that issued the card.
        binCardIssuerCountry:
          type: string
          description: The issuing financial institution's country name.
        binCardIssuerCountryCodeA2:
          type: string
          description: >-
            The issuing financial institution's two-character ISO country code.
            See [this resource](https://www.iso.org/obp/ui/#search) for a list
            of codes.
        binCardIssuerCountryNumber:
          type: string
          description: >-
            The issuing financial institution's ISO standard numeric country
            code. See [this resource](https://www.iso.org/obp/ui/#search) for a
            list of codes.
        binCardIsRegulated:
          type: string
          description: Indicates whether the card is regulated.
        binCardUseCategory:
          type: string
          description: The use category classification for the card.
        binCardIssuerCountryCodeA3:
          type: string
          description: >-
            The issuing financial institution's three-character ISO country
            code.

            See [this resource](https://www.iso.org/obp/ui/#search) for a list
            of

            codes.
      description: >-
        Object containing information related to the card. This object is `null`

        unless the payment method is card. If the payment method is Apple Pay,
        the

        binData will be related to the DPAN (device primary account number), not

        the card connected to Apple Pay.
      title: BinData
    type_:Holdername:
      type: string
      description: Account holder name for the method.
      title: Holdername
    type_:Initiator:
      type: string
      description: >-
        **Strongly recommended** The cardholder-initiated transaction (CIT) or
        merchant-initiated transaction (MIT) indicator for the transaction. If
        you don't specify a value, Payabli defaults to `merchant`.


        Available values: 
          - `payor`: For cardholder-initiated transactions
          - `merchant`: For merchant-initiated transactions

          See [Understanding CIT and MIT Indicators](/guides/pay-in-transactions-cit-mit-overview) for more information.
      title: Initiator
    type_:Maskedaccount:
      type: string
      description: >-
        Masked card or bank account used in transaction. In the case of Apple
        Pay, this is a masked DPAN (device primary account number).
      title: Maskedaccount
    type_:Orderdescription:
      type: string
      description: Text description of the transaction.
      title: Orderdescription
    type_:PaymentCategories:
      type: object
      properties:
        amount:
          type: number
          format: double
          description: Price/cost per unit of item or category.
        description:
          type: string
          description: Description of item or category
        label:
          type: string
          description: Name of item or category.
        qty:
          type: integer
          default: 1
          description: Quantity of item or category
      required:
        - amount
        - label
      title: PaymentCategories
    type_:SplitFundingContent:
      type: object
      properties:
        accountId:
          type: string
          description: The accountId for the account the split should be sent to.
        amount:
          type: number
          format: double
          description: Amount from the transaction to send to this recipient.
        description:
          type: string
          description: A description for the split.
        recipientEntryPoint:
          type: string
          description: The entrypoint the split should be sent to.
      title: SplitFundingContent
    type_:SplitFunding:
      type: array
      items:
        $ref: '#/components/schemas/type_:SplitFundingContent'
      description: >-
        Split funding instructions for the transaction. The total amount of the
        splits must match the total amount of the transaction.
      title: SplitFunding
    type_:PaymentDetail:
      type: object
      properties:
        categories:
          type: array
          items:
            $ref: '#/components/schemas/type_:PaymentCategories'
          description: >-
            Array of payment categories/line items describing the amount to be
            paid.

            **Note**: These categories are for information only and aren't
            validated against the total amount provided.
        checkImage:
          type: object
          additionalProperties:
            description: Any type
          description: Object containing image of paper check.
        checkNumber:
          type: string
          description: >-
            A check number to be used in the ach transaction. **Required** for
            payment method = 'check'.
        currency:
          type: string
          description: >-
            The currency for the transaction, `USD` or `CAD`. If your paypoint
            is configured for CAD, you must send the `CAD` value in this field,
            otherwise it defaults to USD, which will cause the transaction to
            fail.
        serviceFee:
          type: number
          format: double
          description: >-
            Service fee to be deducted from the total amount. This amount must
            be a number, percentages aren't accepted. If you are using a
            percentage-based fee schedule, you must calculate the value
            manually.
        splitFunding:
          $ref: '#/components/schemas/type_:SplitFunding'
          description: >-
            Split funding instructions for the transaction. See [Split a
            Transaction](/developers/developer-guides/money-in-split-funding)
            for more.
        checkUniqueId:
          type: string
          description: >-
            Unique identifier for a processed check image. Required for RDC
            (Remote Deposit Capture) transactions where `achCode` is `BOC`. Use
            the `id` value from the [check
            processing](/developers/api-reference/moneyin/check-capture)
            response.
        totalAmount:
          type: number
          format: double
          description: >-
            Total amount to be charged. If a service fee is sent, then this
            amount should include the service fee."
      required:
        - totalAmount
      description: Details about the payment.
      title: PaymentDetail
    type_:Sequence:
      type: string
      description: >-
        The order of the transaction for cardholder-initiated transaction (CIT)
        and merchant-initiated transaction (MIT) purposes. This field is
        automatically detected and populated by Payabli.


        Available values: 
          - `first`: The first use of the payment method. This is almost always a cardholder-initiated transaction.
          - `subsequent`: For merchant-initiated transactions after the first use of the payment method.

          See [Understanding CIT and MIT Indicators](/guides/pay-in-transactions-cit-mit-overview) for more information.
      title: Sequence
    type_:Signaturedata:
      type: string
      title: Signaturedata
    type_:Storedmethodid:
      type: string
      description: >-
        Payabli identifier of a tokenized payment method. If this field is used
        in a request, the `method` field is overridden and the payment is made
        using the payment token.
      title: Storedmethodid
    type_:StoredMethodUsageType:
      type: string
      description: >-
        **Strongly recommended** The usage type for the stored method, used for
        merchant-initiated transactions (MIT). If you don't specify a value,
        Payabli defaults to `unscheduled`.

        Available values: 
          - `unscheduled`: This type is used for transactions that are one-time or otherwise not pre-scheduled.
          - `subscription`: This type is used for subscription payments. For example, monthly rental fees or ongoing service subscriptions.
          - `recurring`: This type is used for recurring payments that occur per a set plan. For example, splitting an HOA special assessment over 6 monthly payments. 

        See [Understanding CIT and MIT
        Indicators](/guides/pay-in-transactions-cit-mit-overview) for more
        information.
      title: StoredMethodUsageType
    type_:QueryPaymentData:
      type: object
      properties:
        AccountExp:
          $ref: '#/components/schemas/type_:Accountexp'
        accountId:
          $ref: '#/components/schemas/type_:AccountId'
        AccountType:
          $ref: '#/components/schemas/type_:Accounttype'
        AccountZip:
          $ref: '#/components/schemas/type_:Accountzip'
        binData:
          $ref: '#/components/schemas/type_:BinData'
        HolderName:
          $ref: '#/components/schemas/type_:Holdername'
        Initiator:
          $ref: '#/components/schemas/type_:Initiator'
        MaskedAccount:
          $ref: '#/components/schemas/type_:Maskedaccount'
        orderDescription:
          $ref: '#/components/schemas/type_:Orderdescription'
        paymentDetails:
          $ref: '#/components/schemas/type_:PaymentDetail'
        Sequence:
          $ref: '#/components/schemas/type_:Sequence'
        SignatureData:
          $ref: '#/components/schemas/type_:Signaturedata'
        StoredId:
          $ref: '#/components/schemas/type_:Storedmethodid'
          description: Identifier of stored payment method used in transaction.
        StoredMethodUsageType:
          $ref: '#/components/schemas/type_:StoredMethodUsageType'
      title: QueryPaymentData
    type_:Dbaname:
      type: string
      description: >-
        The alternate or common name that this business is doing business under
        usually referred to as a DBA name.
      title: Dbaname
    type_:PaypointId:
      type: integer
      format: int64
      description: The paypoint's ID. Note that this is different than the entryname.
      title: PaypointId
    type_:Legalname:
      type: string
      description: Business legal name.
      title: Legalname
    type_:Source:
      type: string
      description: Custom identifier to indicate the transaction or request source.
      title: Source
    type_:GeneralEvents:
      type: object
      properties:
        description:
          type: string
          description: Event description.
        eventTime:
          type: string
          format: date-time
          description: Event timestamp, in UTC.
        extraData:
          type: object
          additionalProperties:
            description: Any type
          description: Extra data.
        refData:
          type: string
          description: Reference data.
        source:
          $ref: '#/components/schemas/type_:Source'
          description: The event source.
      title: GeneralEvents
    type_:SubscriptionQueryRecords:
      type: object
      properties:
        CreatedAt:
          $ref: '#/components/schemas/type_:CreatedAt'
          description: Timestamp of when the subscription ws created, in UTC.
        Customer:
          $ref: '#/components/schemas/type_:QueryTransactionPayorData'
        EndDate:
          type:
            - string
            - 'null'
          format: date-time
          description: The subscription's end date.
        EntrypageId:
          $ref: '#/components/schemas/type_:EntrypageId'
        ExternalPaypointID:
          $ref: '#/components/schemas/type_:ExternalPaypointId'
        FeeAmount:
          type: number
          format: double
          description: Fee applied to the subscription.
        Frequency:
          type: string
          description: The subscription's frequency.
        IdSub:
          type: integer
          format: int64
          description: The subscription's ID.
        InvoiceData:
          $ref: '#/components/schemas/type_:BillData'
        LastRun:
          type:
            - string
            - 'null'
          format: date-time
          description: The last time the subscription was processed.
        LastUpdated:
          $ref: '#/components/schemas/type_:LastModified'
          description: The last date and time the subscription was updated.
        LeftCycles:
          type: integer
          description: The number of cycles the subscription has left.
        Method:
          type: string
          description: The subscription's payment method.
        NetAmount:
          $ref: '#/components/schemas/type_:Netamountnullable'
          description: The subscription amount, minus any fees.
        NextDate:
          type:
            - string
            - 'null'
          format: date-time
          description: The next date the subscription will be processed.
        ParentOrgName:
          $ref: '#/components/schemas/type_:OrgParentName'
        PaymentData:
          $ref: '#/components/schemas/type_:QueryPaymentData'
        PaypointDbaname:
          $ref: '#/components/schemas/type_:Dbaname'
          description: The paypoint's DBA name.
        PaypointEntryname:
          $ref: '#/components/schemas/type_:Entrypointfield'
          description: The paypoint's entryname.
        PaypointId:
          $ref: '#/components/schemas/type_:PaypointId'
        PaypointLegalname:
          $ref: '#/components/schemas/type_:Legalname'
          description: The paypoint's legal name.
        PlanId:
          type: integer
          description: Payment plan ID.
        Source:
          $ref: '#/components/schemas/type_:Source'
        StartDate:
          type:
            - string
            - 'null'
          format: date-time
          description: The subscription start date.
        SubEvents:
          type: array
          items:
            $ref: '#/components/schemas/type_:GeneralEvents'
          description: Events associated with the subscription.
        SubStatus:
          type: integer
          description: |-
            The subscription's status.
            - 0: Paused
            - 1: Active
        TotalAmount:
          type: number
          format: double
          description: The subscription amount, including any fees.
        TotalCycles:
          type: integer
          description: The total number of cycles the subscription is set to run.
        UntilCancelled:
          type: boolean
          description: >-
            When `true`, the subscription has no explicit end date and will run
            until canceled.
      required:
        - EndDate
        - LastRun
        - NextDate
        - StartDate
      title: SubscriptionQueryRecords
    type_:Descriptor:
      type: string
      description: >-
        When the method is a card, this field displays card brand. When the
        method is ACH, this field displays the account type for ACH (checking or
        savings).
      title: Descriptor
    type_:MethodQueryRecords:
      type: object
      properties:
        bin:
          type: string
          description: The bank identification number (BIN). Null when method is ACH.
        binData:
          $ref: '#/components/schemas/type_:BinData'
        descriptor:
          $ref: '#/components/schemas/type_:Descriptor'
        expDate:
          type: string
          description: >-
            Expiration date associated to the method (only for card) in format
            MMYY.
        holderName:
          $ref: '#/components/schemas/type_:Holdername'
        idPmethod:
          type: string
          description: Method internal ID
        lastUpdated:
          $ref: '#/components/schemas/type_:LastModified'
          description: Date of last update
        maskedAccount:
          $ref: '#/components/schemas/type_:Maskedaccount'
        method:
          type: string
          description: 'Type of payment vehicle: **ach** or **card**'
      title: MethodQueryRecords
    type_:AchHolderType:
      type: string
      enum:
        - personal
        - business
      default: personal
      description: 'The bank''s accountholder type: personal or business.'
      title: AchHolderType
    type_:AchSecCode:
      type: string
      description: >-
        Standard Entry Class (SEC) code is a three letter code that describes
        how an ACH payment was authorized. Supported values are: 
          - PPD (Prearranged Payment and Deposit) - Used for credits or debits where an accountholder authorizes a company to initiate either a single or recurring transaction to their personal bank account. Common examples include direct deposit of payroll, mortgage payments, or utility bills. This is the default value for subscription payments.
          - WEB (Internet-Initiated/Mobile Entry) - Used for debit entries when authorization is obtained from an accountholder via the internet or a wireless network. Common examples are online bill payments, ecommerce purchases, and mobile app payments where the consumer enters their banking information online.
          - TEL (Telephone-Initiated Entry) - Used for one-time debit entries where authorization is obtained from a consumer via telephone. Common examples are phone-based purchases or bill payments where the consumer provides their banking information over the phone.
          - CCD (Corporate Credit or Debit) - Used for fund transfers between business accounts. This code is specifically for business-to-business transactions. Common examples include vendor payments and other business-to-business payments.
          - BOC (Back Office Conversion) - Used to convert paper checks received in-person at a point-of-sale or staffed payment location into electronic ACH debits. Required for Remote Deposit Capture (RDC) transactions. Only supports consumer checks; business, government, and mailed checks aren't eligible.
      title: AchSecCode
    type_:BatchNumber:
      type: string
      description: >-
        A unique identifier for the batch. This is generated by Payabli when the
        batch is created, and follows this format: 
          `paypointId + "_" + serviceName + "_" + batchDate:yyyyMMdd + "_" + Guid.NewGuid()`. Payabli generates the GUID to ensure that the batch number is unique.

          For example, in this batch number: `123_card_20251008_3f2504e0-4f89-11d3-9a0c-0305e82c3301`, the paypointID is "123", the service is "card", the batch date is "2025-10-08", and the GUID is "3f2504e0-4f89-11d3-9a0c-0305e82c3301".
      title: BatchNumber
    type_:TransactionTime:
      type: string
      format: date-time
      description: Timestamp when transaction was submitted, in UTC.
      title: TransactionTime
    type_:QueryCFeeTransaction:
      type: object
      properties:
        cFeeTransid:
          type: string
        feeAmount:
          type: number
          format: double
        operation:
          type: string
        refundId:
          type: integer
          format: int64
        responseData:
          type: object
          additionalProperties:
            description: Any type
        settlementStatus:
          type: integer
        transactionTime:
          $ref: '#/components/schemas/type_:TransactionTime'
        transStatus:
          type: integer
      title: QueryCFeeTransaction
    type_:Device:
      type: string
      description: Identifier of registered cloud device used in the transaction.
      title: Device
    type_:ExternalProcessorInformation:
      type: string
      description: >-
        Processor information, used for troubleshooting and reporting. This
        field contains a value when the API key used to make the request has
        management permissions.
      title: ExternalProcessorInformation
    type_:FeeAmount:
      type: number
      format: double
      description: Service fee or sub-charge applied.
      title: FeeAmount
    type_:Operation:
      type: string
      description: The transaction's operation.
      title: Operation
    type_:OrderId:
      type: string
      description: Custom identifier for the transaction.
      title: OrderId
    type_:Orgid:
      type: integer
      format: int64
      description: Organization ID. Unique identifier assigned to an org by Payabli.
      title: Orgid
    type_:PayorId:
      type: integer
      format: int64
      description: >-
        Unique ID for the customer linked to the transaction. This is the same
        value as the `customerId` used when creating or referencing a customer.
      title: PayorId
    type_:PendingFeeAmount:
      type: number
      format: double
      description: >-

        The difference between the configured pass-through fee and the fee
        amount sent in the request. When transferring funds, Payabli uses this
        field to deduct the fee difference and transfer the correct amount to
        the merchant.


        When a paypoint is set up to absorb fees, and the pass-through fee sent
        with the request is less than the configured amount, the difference must
        be covered by the merchant. See [Fee
        Configuration](/guides/pay-in-fees-passthrough-overview#fee-configuration)
        to learn more about pass-through fee settings.
      title: PendingFeeAmount
    type_:RefundId:
      type: integer
      format: int64
      description: Identifier of refund transaction linked to this payment.
      title: RefundId
    type_:Authcode:
      type: string
      description: Authorization code for the transaction.
      title: Authcode
    type_:AvsResponse:
      type: string
      description: >-
        Text code describing the result for address validation (applies only for
        card transactions).
      title: AvsResponse
    type_:AvsResponseText:
      type: string
      description: >-
        Text code describing the result for address validation (applies only for
        card transactions).
      title: AvsResponseText
    type_:CvvResponse:
      type: string
      description: >-
        Text code describing the result for CVV validation (applies only for
        card transactions).
      title: CvvResponse
    type_:CvvResponseText:
      type: string
      description: >-
        Text code describing the result for CVV validation (applies only for
        card transactions).
      title: CvvResponseText
    type_:EmvAuthResponseData:
      type: string
      description: EMV authorization response data, applicable for card transactions.
      title: EmvAuthResponseData
    type_:ResultCodev2:
      type: string
      description: >-
        Unified result code for the transaction. See [Pay In unified response
        codes](/developers/references/pay-in-unified-response-codes-reference)
        for more information.
      title: ResultCodev2
    type_:ResultCodeText:
      type: string
      description: >-
        Description of the result code. See [Pay In unified response
        codes](/developers/references/pay-in-unified-response-codes-reference)
        for more information.
      title: ResultCodeText
    type_:QueryResponseData:
      type: object
      properties:
        authcode:
          $ref: '#/components/schemas/type_:Authcode'
        avsresponse:
          $ref: '#/components/schemas/type_:AvsResponse'
        avsresponse_text:
          $ref: '#/components/schemas/type_:AvsResponseText'
        cvvresponse:
          $ref: '#/components/schemas/type_:CvvResponse'
        cvvresponse_text:
          $ref: '#/components/schemas/type_:CvvResponseText'
        emv_auth_response_data:
          $ref: '#/components/schemas/type_:EmvAuthResponseData'
        orderid:
          $ref: '#/components/schemas/type_:OrderId'
        response:
          type: string
          description: 'Response text for operation: ''Success'' or ''Declined''.'
        response_code:
          type: string
          description: >-
            Internal result code processing the transaction. Value 1 indicates
            successful operation, values 2 and 3 indicate errors.
        response_code_text:
          type: string
          description: >-
            Text describing the result. If resultCode = 1, will return
            'Approved' or a general success message. If resultCode = 2 or 3,
            will contain the cause of the decline.
        responsetext:
          type: string
          description: >-
            Text describing the result. If resultCode = 1, will return
            'Approved' or a general success message. If resultCode = 2 or 3,
            will contain the cause of the decline.
        resultCode:
          $ref: '#/components/schemas/type_:ResultCodev2'
        resultCodeText:
          $ref: '#/components/schemas/type_:ResultCodeText'
        transactionid:
          type: string
          description: The transaction identifier in Payabli.
        type:
          type: string
          description: Type of transaction or operation.
      description: The transaction's response data.
      title: QueryResponseData
    type_:ReturnedId:
      type: integer
      format: int64
      description: Identifier of return/chargeback transaction linked to this payment.
      title: ReturnedId
    type_:QueryTransactionEventsEventData:
      oneOf:
        - type: object
          additionalProperties:
            description: Any type
        - type: string
      description: >-
        Any data associated to the event received from processor. Contents vary
        by event type.
      title: QueryTransactionEventsEventData
    type_:QueryTransactionEvents:
      type: object
      properties:
        EventData:
          $ref: '#/components/schemas/type_:QueryTransactionEventsEventData'
          description: >-
            Any data associated to the event received from processor. Contents
            vary by event type.
        EventTime:
          type: string
          format: date-time
          description: Date and time of event.
        TransEvent:
          type: string
          description: >-
            Event descriptor. See [TransEvent
            Reference](/guides/pay-in-transevents-reference) for more details.
      title: QueryTransactionEvents
    type_:TransactionQueryRecords:
      type: object
      properties:
        AchHolderType:
          $ref: '#/components/schemas/type_:AchHolderType'
        AchSecCode:
          $ref: '#/components/schemas/type_:AchSecCode'
        BatchAmount:
          type: number
          format: double
          description: Batch amount.
        BatchNumber:
          $ref: '#/components/schemas/type_:BatchNumber'
        CfeeTransactions:
          type: array
          items:
            $ref: '#/components/schemas/type_:QueryCFeeTransaction'
          description: >-
            Service Fee or sub-charge transaction associated to the main
            transaction.
        ConnectorName:
          type: string
          description: Connector used for transaction.
        Customer:
          $ref: '#/components/schemas/type_:QueryTransactionPayorData'
        DeviceId:
          $ref: '#/components/schemas/type_:Device'
        EntrypageId:
          $ref: '#/components/schemas/type_:EntrypageId'
        ExternalProcessorInformation:
          $ref: '#/components/schemas/type_:ExternalProcessorInformation'
        FeeAmount:
          $ref: '#/components/schemas/type_:FeeAmount'
        GatewayTransId:
          type: string
          description: Internal identifier used for processing.
        InvoiceData:
          $ref: '#/components/schemas/type_:BillData'
        Method:
          type: string
          description: 'Payment method used: card, ach, or wallet.'
        NetAmount:
          $ref: '#/components/schemas/type_:Netamountnullable'
          description: Net amount paid.
        Operation:
          $ref: '#/components/schemas/type_:Operation'
        OrderId:
          $ref: '#/components/schemas/type_:OrderId'
        OrgId:
          $ref: '#/components/schemas/type_:Orgid'
          description: ID of immediate parent organization.
        ParentOrgName:
          $ref: '#/components/schemas/type_:OrgParentName'
        PaymentData:
          $ref: '#/components/schemas/type_:QueryPaymentData'
        PaymentTransId:
          type: string
          description: Unique Transaction ID.
        PayorId:
          $ref: '#/components/schemas/type_:PayorId'
        PaypointDbaname:
          $ref: '#/components/schemas/type_:Dbaname'
          description: Paypoint's DBA name.
        PaypointEntryname:
          $ref: '#/components/schemas/type_:Entrypointfield'
          description: Paypoint's entryname.
        PaypointId:
          type: integer
          format: int64
          description: InternalId for paypoint.
        PaypointLegalname:
          $ref: '#/components/schemas/type_:Legalname'
          description: Paypoint's legal name.
        PendingFeeAmount:
          $ref: '#/components/schemas/type_:PendingFeeAmount'
        RefundId:
          $ref: '#/components/schemas/type_:RefundId'
        ResponseData:
          $ref: '#/components/schemas/type_:QueryResponseData'
        ReturnedId:
          $ref: '#/components/schemas/type_:ReturnedId'
        ScheduleReference:
          type: integer
          format: int64
          description: Reference to the subscription that originated the transaction.
        SettlementStatus:
          type: integer
          description: >-
            Settlement status for transaction. See [the
            docs](/developers/references/money-in-statuses#payment-funding-status)
            for a full reference.
        Source:
          $ref: '#/components/schemas/type_:Source'
        splitFundingInstructions:
          $ref: '#/components/schemas/type_:SplitFunding'
        TotalAmount:
          type: number
          format: double
          description: Transaction total amount (including service fee or sub-charge)
        TransactionEvents:
          type: array
          items:
            $ref: '#/components/schemas/type_:QueryTransactionEvents'
          description: Events associated with this transaction.
        TransactionTime:
          type:
            - string
            - 'null'
          format: date-time
          description: Transaction date and time, in UTC.
        TransAdditionalData:
          description: Any type
        TransStatus:
          type: integer
          description: >-
            Status of transaction. See [the
            docs](/developers/references/money-in-statuses#money-in-transaction-status)
            for a full reference.
      required:
        - TransactionTime
      title: TransactionQueryRecords
    type_:CustomerSummaryRecord:
      type: object
      properties:
        numberofTransactions:
          type: integer
          description: Number total of transactions or payments
        recentTransactions:
          type: array
          items:
            $ref: '#/components/schemas/type_:TransactionQueryRecords'
          description: List of more recent 5 transactions belonging to the customer
        totalAmountTransactions:
          type: number
          format: double
          description: Total amount in transactions
        totalNetAmountTransactions:
          type: number
          format: double
          description: Total net amount in transactions
      title: CustomerSummaryRecord
    type_:OrgParentId:
      type: integer
      format: int64
      description: The ID of the org's parent organization.
      title: OrgParentId
    type_:PageIdentifier:
      type: string
      description: Auxiliary validation used internally by payment pages and components.
      title: PageIdentifier
    type_:OptinStatus:
      type: integer
      description: |-
        Customer's consent status. 
        Allowed status:
          
          - 0: Customer hasn't opted in to communications

          - -1: Customer opt in pending
          
          - 1: Customer has opted in to communications
      title: OptinStatus
    type_:CustomerQueryRecordsCustomerConsentECommunication:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/type_:OptinStatus'
        updatedAt:
          $ref: '#/components/schemas/type_:LastModified'
      description: Describes the customer's email communications consent status.
      title: CustomerQueryRecordsCustomerConsentECommunication
    type_:CustomerQueryRecordsCustomerConsentSms:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/type_:OptinStatus'
        updatedAt:
          $ref: '#/components/schemas/type_:LastModified'
      description: Describes the customer's SMS communications consent status.
      title: CustomerQueryRecordsCustomerConsentSms
    type_:CustomerQueryRecordsCustomerConsent:
      type: object
      properties:
        eCommunication:
          $ref: >-
            #/components/schemas/type_:CustomerQueryRecordsCustomerConsentECommunication
          description: Describes the customer's email communications consent status.
        sms:
          $ref: '#/components/schemas/type_:CustomerQueryRecordsCustomerConsentSms'
          description: Describes the customer's SMS communications consent status.
      title: CustomerQueryRecordsCustomerConsent
    type_:CustomerQueryRecords:
      type: object
      properties:
        customerId:
          $ref: '#/components/schemas/type_:CustomerId'
        customerNumber:
          $ref: '#/components/schemas/type_:CustomerNumberNullable'
        customerUsername:
          type: string
          description: Username for customer.
        customerStatus:
          $ref: '#/components/schemas/type_:CustomerStatus'
        Company:
          type: string
          description: Company name.
        Firstname:
          type: string
          description: Customer first name.
        Lastname:
          type: string
          description: Customer last name.
        Phone:
          type: string
          description: Customer phone number.
        Email:
          $ref: '#/components/schemas/type_:Email'
          description: Customer email address.
        Address:
          type: string
          description: Customer address.
        Address1:
          type: string
          description: Additional line for customer address.
        City:
          type: string
          description: Customer city.
        State:
          type: string
          description: Customer state.
        Zip:
          type: string
          description: Customer postal code.
        Country:
          type: string
          description: Customer country.
        ShippingAddress:
          $ref: '#/components/schemas/type_:Shippingaddress'
        ShippingAddress1:
          $ref: '#/components/schemas/type_:Shippingaddressadditional'
        ShippingCity:
          $ref: '#/components/schemas/type_:Shippingcity'
        ShippingState:
          $ref: '#/components/schemas/type_:Shippingstate'
        ShippingZip:
          $ref: '#/components/schemas/type_:Shippingzip'
        ShippingCountry:
          $ref: '#/components/schemas/type_:Shippingcountry'
        Balance:
          type: number
          format: double
          description: Customer balance.
        TimeZone:
          $ref: '#/components/schemas/type_:Timezone'
        MFA:
          $ref: '#/components/schemas/type_:Mfa'
        MFAMode:
          $ref: '#/components/schemas/type_:MfaMode'
        snProvider:
          type: string
          description: |-
            Social network linked to customer. Possible values:

            - `facebook`

            - `google`

            - `twitter`

            - `microsoft`
        snIdentifier:
          type: string
          description: Identifier or token for customer in linked social network.
        snData:
          type: string
          description: >-
            Additional data provided by the social network related to the
            customer.
        LastUpdated:
          type: string
          format: date-time
          description: Date and time of last update.
        Created:
          type: string
          format: date-time
          description: Date and time created.
        AdditionalFields:
          type: object
          additionalProperties:
            type: string
          description: List of additional custom fields in format key:value.
        IdentifierFields:
          $ref: '#/components/schemas/type_:Identifierfields'
        Subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/type_:SubscriptionQueryRecords'
          description: List of subscriptions associated to the customer.
        StoredMethods:
          type: array
          items:
            $ref: '#/components/schemas/type_:MethodQueryRecords'
          description: List of payment methods associated to the customer.
        customerSummary:
          $ref: '#/components/schemas/type_:CustomerSummaryRecord'
        PaypointLegalname:
          $ref: '#/components/schemas/type_:Legalname'
          description: Paypoint legal name.
        PaypointDbaname:
          $ref: '#/components/schemas/type_:Dbaname'
          description: Paypoint DBA name.
        ParentOrgName:
          $ref: '#/components/schemas/type_:OrgParentName'
        ParentOrgId:
          $ref: '#/components/schemas/type_:OrgParentId'
        PaypointEntryname:
          $ref: '#/components/schemas/type_:Entrypointfield'
        pageidentifier:
          $ref: '#/components/schemas/type_:PageIdentifier'
        externalPaypointID:
          $ref: '#/components/schemas/type_:ExternalPaypointId'
        customerConsent:
          $ref: '#/components/schemas/type_:CustomerQueryRecordsCustomerConsent'
      title: CustomerQueryRecords
    type_:ResponseText:
      type: string
      description: 'Response text for operation: ''Success'' or ''Declined''.'
      title: ResponseText
    type_:PayabliApiResponseCustomerQuery:
      type: object
      properties:
        isSuccess:
          $ref: '#/components/schemas/type_:IsSuccess'
        responseData:
          $ref: '#/components/schemas/type_:CustomerQueryRecords'
        responseText:
          $ref: '#/components/schemas/type_:ResponseText'
      required:
        - responseText
      title: PayabliApiResponseCustomerQuery
    type_:Responsedata:
      type: object
      additionalProperties:
        description: Any type
      description: The object containing the response data.
      title: Responsedata
    type_:PayabliApiResponse:
      type: object
      properties:
        isSuccess:
          $ref: '#/components/schemas/type_:IsSuccess'
        responseData:
          $ref: '#/components/schemas/type_:Responsedata'
        responseText:
          $ref: '#/components/schemas/type_:ResponseText'
      required:
        - responseText
      title: PayabliApiResponse
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: requestToken

```

## SDK Code Examples

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

async function main() {
    const client = new PayabliClient({
        apiKey: "YOUR_API_KEY_HERE",
    });
    await client.customer.addCustomer("8cfec329267", {
        body: {
            customerNumber: "12356ACB",
            firstname: "Irene",
            lastname: "Canizales",
            email: "irene@canizalesconcrete.com",
            address1: "123 Bishop's Trail",
            city: "Mountain City",
            state: "TN",
            zip: "37612",
            country: "US",
            timeZone: -5,
            identifierFields: [
                "email",
            ],
        },
    });
}
main();

```

```python CreateCustomer
from payabli import payabli

client = payabli(
    api_key="YOUR_API_KEY_HERE",
)

client.customer.add_customer(
    entry="8cfec329267",
    customer_number="12356ACB",
    firstname="Irene",
    lastname="Canizales",
    email="irene@canizalesconcrete.com",
    address_1="123 Bishop\'s Trail",
    city="Mountain City",
    state="TN",
    zip="37612",
    country="US",
    time_zone=-5,
    identifier_fields=[
        "email"
    ],
)

```

```csharp CreateCustomer
using PayabliPayabliApi;
using System.Threading.Tasks;
using System.Collections.Generic;

namespace Usage;

public class Example
{
    public async Task Do() {
        var client = new PayabliPayabliApiClient(
            apiKey: "YOUR_API_KEY_HERE"
        );

        await client.Customer.AddCustomerAsync(
            "8cfec329267",
            new AddCustomerRequest {
                Body = new CustomerData {
                    CustomerNumber = "12356ACB",
                    Firstname = "Irene",
                    Lastname = "Canizales",
                    Email = "irene@canizalesconcrete.com",
                    Address1 = "123 Bishop's Trail",
                    City = "Mountain City",
                    State = "TN",
                    Zip = "37612",
                    Country = "US",
                    TimeZone = -5,
                    IdentifierFields = new List<string>(){
                        "email",
                    }

                }
            }
        );
    }

}

```

```go CreateCustomer
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api-sandbox.payabli.com/api/Customer/single/8cfec329267"

	payload := strings.NewReader("{\n  \"customerNumber\": \"12356ACB\",\n  \"firstname\": \"Irene\",\n  \"lastname\": \"Canizales\",\n  \"email\": \"irene@canizalesconcrete.com\",\n  \"address1\": \"123 Bishop's Trail\",\n  \"city\": \"Mountain City\",\n  \"state\": \"TN\",\n  \"zip\": \"37612\",\n  \"country\": \"US\",\n  \"timeZone\": -5,\n  \"identifierFields\": [\n    \"email\"\n  ]\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("requestToken", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby CreateCustomer
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/Customer/single/8cfec329267")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["requestToken"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"customerNumber\": \"12356ACB\",\n  \"firstname\": \"Irene\",\n  \"lastname\": \"Canizales\",\n  \"email\": \"irene@canizalesconcrete.com\",\n  \"address1\": \"123 Bishop's Trail\",\n  \"city\": \"Mountain City\",\n  \"state\": \"TN\",\n  \"zip\": \"37612\",\n  \"country\": \"US\",\n  \"timeZone\": -5,\n  \"identifierFields\": [\n    \"email\"\n  ]\n}"

response = http.request(request)
puts response.read_body
```

```java CreateCustomer
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api-sandbox.payabli.com/api/Customer/single/8cfec329267")
  .header("requestToken", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"customerNumber\": \"12356ACB\",\n  \"firstname\": \"Irene\",\n  \"lastname\": \"Canizales\",\n  \"email\": \"irene@canizalesconcrete.com\",\n  \"address1\": \"123 Bishop's Trail\",\n  \"city\": \"Mountain City\",\n  \"state\": \"TN\",\n  \"zip\": \"37612\",\n  \"country\": \"US\",\n  \"timeZone\": -5,\n  \"identifierFields\": [\n    \"email\"\n  ]\n}")
  .asString();
```

```php CreateCustomer
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api-sandbox.payabli.com/api/Customer/single/8cfec329267', [
  'body' => '{
  "customerNumber": "12356ACB",
  "firstname": "Irene",
  "lastname": "Canizales",
  "email": "irene@canizalesconcrete.com",
  "address1": "123 Bishop\'s Trail",
  "city": "Mountain City",
  "state": "TN",
  "zip": "37612",
  "country": "US",
  "timeZone": -5,
  "identifierFields": [
    "email"
  ]
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'requestToken' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```swift CreateCustomer
import Foundation

let headers = [
  "requestToken": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "customerNumber": "12356ACB",
  "firstname": "Irene",
  "lastname": "Canizales",
  "email": "irene@canizalesconcrete.com",
  "address1": "123 Bishop's Trail",
  "city": "Mountain City",
  "state": "TN",
  "zip": "37612",
  "country": "US",
  "timeZone": -5,
  "identifierFields": ["email"]
] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/Customer/single/8cfec329267")! 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()
```