---
title: "Make a transaction"
method: POST
path: "/MoneyIn/getpaid"
tags: ["moneyIn"]
deprecated: true
---

# Make a transaction

`POST /MoneyIn/getpaid`

## Request

- Base URL: `https://api-sandbox.payabli.com/api`
- URL: `https://api-sandbox.payabli.com/api/MoneyIn/getpaid`
- Auth: HTTP bearer

> **Deprecated.**

<Warning>
  This endpoint is deprecated. New integrations should use the [Make a transaction endpoint](/developers/api-reference/moneyinV2/make-a-transaction) and manage the resulting transaction with the corresponding void or refund endpoints. Transactions created with this legacy endpoint must be managed with the legacy lifecycle endpoints — they aren't interchangeable with the current ones.
</Warning>

Make a single transaction. This method authorizes and captures a payment in one step.

## Query parameters

- `achValidation` boolean: When `true`, enables real-time validation of ACH account and routing numbers. This is an add-on feature, contact Payabli for more information.
- `forceCustomerCreation` boolean: When `true`, the request creates a new customer record, regardless of whether customer identifiers match an existing customer. Defaults to `false`.
- `includeDetails` boolean

## Headers

- `idempotencyKey` string: _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. The key persists for 2 minutes. After 2 minutes, you can reuse the key if needed.
- `validationCode` string

## Request body

- TransRequestBody
  - `accountId` string: Custom identifier for payment connector.
  - `customerData` PayorDataRequest: Customer information. May be required, depending on the paypoint's settings. Required for subscriptions.
    - `additionalData` AdditionalData: Custom dictionary of key:value pairs. You can use this field to store any data related to the object or for your system. If you are using [custom identifiers](/developers/developer-guides/entities-customers), pass those in this object. Max length for a value is 100 characters. Example usage: ```json { "additionalData": { "key1": "value1", "key2": "value2", "key3": "value3" } } ```
    - `billingAddress1` string: Billing address.
    - `billingAddress2` string: Additional line for the billing address.
    - `billingCity` string: Billing city.
    - `billingCountry` string: Billing address country.
    - `billingEmail` string, email: Email address.
    - `billingPhone` string: Phone number.
    - `billingState` string: Billing state. Must be a 2-letter state code for addresses in the US.
    - `billingZip` string: Billing address ZIP code.
    - `company` string: Customer's company name.
    - `customerId` integer: The Payabli-generated unique ID for the customer.
    - `customerNumber` string: User-provided unique identifier for the customer. This is typically the customer ID from your own system.
    - `firstName` string: Customer/Payor first name.
    - `identifierFields` string[]: List of fields acting as customer identifiers, to be used instead of CustomerNumber.
    - `lastName` string: Customer/Payor last name.
    - `shippingAddress1` string: The shipping address.
    - `shippingAddress2` string: Additional line for shipping address.
    - `shippingCity` string: Shipping city.
    - `shippingCountry` string: Shipping address country.
    - `shippingState` string: Shipping state or province.
    - `shippingZip` string: 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`.
  - `entryPoint` string: The entrypoint identifier.
  - `invoiceData` BillData
    - `AdditionalData` AdditionalDataMap: Custom dictionary of key:value pairs. You can use this field to store any data related to the object or for your system. If you are using [custom identifiers](/developers/developer-guides/entities-customers), pass those in this object. Max length for a value is 100 characters. ```json { "additionalData": { "key1": "value1", "key2": "value2", "key3": "value3" } } ```
    - `attachments` FileContent[]: Array of `fileContent` objects with attached documents. Max upload size is 30 MB.
      - `fContent` string: Content of file, Base64-encoded. Ignored if `furl` is specified. Max upload size is 30 MB.
      - `filename` string: The name of the attached file.
      - `ftype` 'pdf' | 'doc' | 'docx' | 'jpg' | 'jpeg' | 'png' | 'gif' | 'txt': The MIME type of the file (if content is provided).
      - `furl` string: Optional URL provided to show or download the file remotely.
    - `company` string: Company name of the recipient of the invoice.
    - `discount` number, double: Discount applied to the invoice.
    - `dutyAmount` number, double: Duty amount.
    - `firstName` string: First name of the recipient of the invoice.
    - `freightAmount` number, double: Freight/shipping amount.
    - `frequency` 'onetime' | 'weekly' | 'every2weeks' | 'every6months' | 'monthly' | 'every3months' | 'annually' | 'firstofmonth' | 'fifteenthofmonth' | 'endofmonth': Frequency for operation. The `firstofmonth`, `fifteenthofmonth`, and `endofmonth` values are only valid on subscriptions — they aren't accepted by other endpoints (such as invoice scheduling) that use this enum.
    - `invoiceAmount` number, double: The invoice amount.
    - `invoiceDate` string, date: Invoice date in any of the accepted formats: YYYY-MM-DD, MM/DD/YYYY.
    - `invoiceDueDate` string, date: Invoice due date in one of the accepted formats: YYYY-MM-DD, MM/DD/YYYY.
    - `invoiceEndDate` string, date: Indicate the date to finish a scheduled invoice cycle (`invoiceType`` = 1) in any of the accepted formats: YYYY-MM-DD, MM/DD/YYYY.
    - `invoiceNumber` string: Invoice number. Identifies the invoice under a paypoint.
    - `invoiceStatus` integer: Invoice status code.
    - `invoiceType` integer: Invoice type. Value `0` is for single/one-time invoices, `1` for scheduled invoices.
    - `items` BillItem[]: Array of line items included in the invoice.
      - `itemCategories` string[]: Array of tags classifying item or product.
      - `itemCommodityCode` string: Item or product commodity code. Max length of 250 characters.
      - `itemCost` number, double: Item or product price per unit.
      - `itemDescription` string: Item or product description. Max length of 250 characters.
      - `itemMode` integer: Internal class of item or product: value `0` is only for invoices, `1` for bills, and `2` is common for both. Required on invoice line items — invoice creation fails with `Invalid item data` if it's omitted.
      - `itemProductCode` string: Item or product code. Max length of 250 characters.
      - `itemProductName` string: Item or product name. Max length of 250 characters.
      - `itemQty` integer: Quantity of item or product.
      - `itemTaxAmount` number, double: Tax amount applied to item or product.
      - `itemTaxRate` number, double: Tax rate applied to item or product.
      - `itemTotalAmount` number, double: Per-line total for this item (unit cost times quantity). Distinct from the invoice's overall total, `invoiceAmount`. Required on invoice line items.
      - `itemUnitOfMeasure` string: Unit of measurement. Max length of 100 characters.
    - `lastName` string: Last name of the recipient of the invoice.
    - `notes` string: Notes included in the invoice.
    - `paymentTerms` 'PIA' | 'CIA' | 'UR' | 'NET10' | 'NET20' | 'NET30' | 'NET45' | 'NET60' | 'NET90' | 'EOM' | 'MFI' | '5MFI' | '10MFI' | '15MFI' | '20MFI' | '2/10NET30' | 'UF' | '10UF' | '20UF' | '25UF' | '50UF': Payment terms for invoice. If no terms are defined, then response data for this field defaults to `NET30`. Mirrors the values in [`Terms`](#schema-terms).
    - `purchaseOrder` string: Purchase order number.
    - `shippingAddress1` string: The shipping address.
    - `shippingAddress2` string: Additional line for shipping address.
    - `shippingCity` string: Shipping city.
    - `shippingCountry` string: Shipping address country.
    - `shippingEmail` string, email: Email address.
    - `shippingFromZip` string: Sender shipping ZIP code.
    - `shippingPhone` string: Recipient phone number.
    - `shippingState` string: Shipping state or province.
    - `shippingZip` string: 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`.
    - `summaryCommodityCode` string: Commodity code.
    - `tax` number, double: Tax rate in percent applied to the invoice.
    - `termsConditions` string: Custom terms and conditions included in the invoice.
  - `ipaddress` string: The IP address associated with the transaction.
  - `orderDescription` string: Text description of the transaction.
  - `orderId` string: Custom identifier for the transaction.
  - `paymentDetails` PaymentDetail, required: Details about the payment.
    - `categories` PaymentCategories[]: 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.
      - `amount` number, double, required: Price/cost per unit of item or category.
      - `description` string: Description of item or category
      - `label` string, required: Name of item or category.
      - `qty` integer: Quantity of item or category
    - `checkImage` object: Object containing image of paper check.
    - `checkNumber` string: A check number to be used in the ach transaction. **Required** for payment method = 'check'.
    - `currency` string: 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` number, double: 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` SplitFundingContent[]: Split funding instructions for the transaction. The total amount of the splits must match the total amount of the transaction.
      - `accountId` string: The accountId for the account the split should be sent to.
      - `amount` number, double: Amount from the transaction to send to this recipient.
      - `description` string: A description for the split.
      - `recipientEntryPoint` string: The entrypoint the split should be sent to.
    - `checkUniqueId` string: 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` number, double, required: Total amount to be charged. If a service fee is sent, then this amount should include the service fee."
  - `paymentMethod` union, required: Information about the payment method for the transaction.
    - PayMethodCredit
      - `cardcvv` string: Card Verification Value (CVV) associated with the card number. We **strongly recommend** that you include this field when using `card` as a method.
      - `cardexp` string, required: Card expiration date in format MMYY or MM/YY. Required for card transactions.
      - `cardHolder` string: Cardholder name.
      - `cardnumber` string, required: The card number. Required when method is `card` and a `storedMethodId` isn't included.
      - `cardzip` string: ZIP or postal code for the billing address of cardholder. We **strongly recommend** that you include this field when using `card` as a method.
      - `initiator` string: The transaction's initiator. Indicates who initiated the transaction.
      - `method` 'card', required: Method to use for the transaction. For transactions with a credit or debit card, or a tokenized card, use `card`.
      - `saveIfSuccess` boolean: When `true`, Payabli saves the payment method if the transaction is successful. The payment method ID is returned in the response as `methodReferenceId`. Defaults to `false`.
    - PayMethodACH
      - `achAccount` string, required: Bank account number.
      - `achAccountType` 'Checking' | 'Savings': Bank account type: Checking or Savings.
      - `achCode` string: 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.
      - `achHolder` string, required: Bank account holder. This field is **required** when `method` is `ach` or `check`.
      - `achHolderType` 'personal' | 'business': The bank's accountholder type: personal or business.
      - `achRouting` string, required: ABA/routing number of Bank account.
      - `device` string: Identifier of the registered device used in the transaction.
      - `method` 'ach', required
    - PayMethodStoredMethod: The required and recommended fields for a payment made with a stored payment method.
      - `initiator` string: The transaction's initiator. Indicates who initiated the transaction.
      - `method` 'card' | 'ach' | 'wallet', required: Method to use for the transaction. Use `card`, `ach`, or `wallet` depending on what kind of method was tokenized to use a saved payment method for this transaction.
      - `storedMethodId` string: 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.
      - `storedMethodUsageType` string: **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`: One-time or otherwise not pre-scheduled. - `subscription`: Subscription payments. For example, monthly rental fees or ongoing service subscriptions. - `recurring`: Recurring payments 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.
    - PayMethodCloud
      - `device` string: Identifier of the registered device used in the transaction.
      - `method` 'cloud', required: Method to use for the transaction. For cloud device transactions, the method is `cloud`.
    - PayMethodDevice: The required fields for a payment made with a semi-integrated device.
      - `device` string, required: Identifier of the registered device used in the transaction.
      - `method` 'device', required: Method to use for the transaction. For semi-integrated device transactions, the method is `device`.
      - `saveIfSuccess` boolean: When `true`, Payabli saves the payment method if the transaction is successful. The payment method ID is returned in the response as `methodReferenceId`. Defaults to `false`.
    - Check
      - `achHolder` string, required: Bank account holder. This field is **required** when `method` is `ach` or `check`.
      - `method` 'check', required: Method to use for the transaction. Use `check` for a paper check transaction. When the method is `check`, then `paymentDetails.checkNumber` is required.
    - Cash
      - `method` 'cash', required: Method to use for the transaction. For cash transactions, use `cash`.
    - PayMethodBodyAllFields: Model for the PaymentMethod object, includes all method types.
      - `achAccount` string, required: Bank account number.
      - `achAccountType` 'Checking' | 'Savings': Bank account type: Checking or Savings.
      - `achCode` string: 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.
      - `achHolder` string, required: Bank account holder. This field is **required** when `method` is `ach` or `check`.
      - `achRouting` string, required: ABA/routing number of Bank account.
      - `cardcvv` string: Card Verification Value (CVV) associated with the card number. We **strongly recommend** that you include this field when using `card` as a method.
      - `cardexp` string: Card expiration date in format MMYY or MM/YY. Required for card transactions.
      - `cardHolder` string: Cardholder name.
      - `cardnumber` string: The card number. Required when method is `card` and a `storedMethodId` isn't included.
      - `cardzip` string: ZIP or postal code for the billing address of cardholder. We **strongly recommend** that you include this field when using `card` as a method.
      - `device` string: Identifier of the registered device used in the transaction.
      - `initiator` string: The transaction's initiator. Indicates who initiated the transaction.
      - `method` 'card' | 'ach' | 'cloud' | 'device' | 'check' | 'cash': Method to use for the transaction.
      - `saveIfSuccess` boolean: When `true`, Payabli saves the payment method if the transaction is successful. The payment method ID is returned in the response as `methodReferenceId`. Defaults to `false`.
      - `storedMethodId` string: 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.
      - `storedMethodUsageType` string: **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`: One-time or otherwise not pre-scheduled. - `subscription`: Subscription payments. For example, monthly rental fees or ongoing service subscriptions. - `recurring`: Recurring payments 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.
  - `source` string: Custom identifier to indicate the transaction or request source.
  - `subdomain` string: Refers to the payment page identifier. If provided, then the transaction is linked to the payment page.
  - `subscriptionId` integer: Payabli identifier of the subscription associated with the transaction.

## Response `200`

Ok

- PayabliAPIResponseGetPaid: General response for GetPaid endpoint supporting multiple payment methods
  - `responseText` string, required: Response text for operation: 'Success' or 'Declined'.
  - `isSuccess` boolean, required: Boolean indicating whether the operation was successful. A `true` value indicates success. A `false` value indicates failure.
  - `pageIdentifier` string
  - `responseData` GetPaidResponseData, required: Response data for GetPaid transactions
    - `authCode` string, required: Authorization code for the transaction.
    - `transactionDetails` TransactionDetailRecord: Complete transaction details including payment information, customer data, and processing metadata. This is returned when includeDetails=true.
      - `parentOrgName` string, required: The name of the parent organization.
      - `paypointDbaname` string, required: The alternate or common name that this business is doing business under, usually referred to as a DBA name.
      - `paypointLegalname` string, required: Business legal name.
      - `paypointEntryname` string, required: The entrypoint identifier.
      - `paymentTransId` string, required
      - `connectorName` string, required
      - `externalProcessorInformation` string, required: Information from the external processor about the transaction.
      - `gatewayTransId` string, required
      - `orderId` string, required: Custom identifier for the transaction.
      - `method` 'ach' | 'card', required: Payment method used for the transaction
      - `batchNumber` string, required: 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`.
      - `batchAmount` number, double, required
      - `payorId` integer, required: Unique ID for the customer linked to the transaction. This is the same value as the `customerId` used when creating or referencing a customer.
      - `paymentData` TransactionDetailPaymentData, required: Payment method and transaction details
        - `maskedAccount` string, required: Masked card or bank account used in transaction. In the case of Apple Pay, this is a masked DPAN (device primary account number).
        - `accountType` string, required: Bank account type or card brand.
        - `accountExp` string, required: Expiration date of card used in transaction.
        - `holderName` string, required: The cardholder name.
        - `storedId` string, required: 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.
        - `initiator` string, required: The transaction's initiator. Indicates who initiated the transaction.
        - `storedMethodUsageType` string, required: **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`: One-time or otherwise not pre-scheduled. - `subscription`: Subscription payments. For example, monthly rental fees or ongoing service subscriptions. - `recurring`: Recurring payments 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.
        - `sequence` string, required: 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.
        - `orderDescription` string, required: Text description of the transaction.
        - `accountId` string, required: Custom identifier for payment connector.
        - `signatureData` string, required
        - `binData` BinData, required: 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.
          - `binMatchedLength` string: 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` string: The card brand. For example, Visa, Mastercard, American Express, Discover.
          - `binCardType` string: The type of card: `Credit` or `Debit`. Case can vary between processors, so compare this value case-insensitively.
          - `binCardCategory` string: 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` string: The name of the financial institution that issued the card.
          - `binCardIssuerCountry` string: The issuing financial institution's country name.
          - `binCardIssuerCountryCodeA2` string: 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` string: 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` string: Indicates whether the card is regulated.
          - `binCardUseCategory` string: The use category classification for the card.
          - `binCardIssuerCountryCodeA3` string: 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.
        - `paymentDetails` TransactionDetailPaymentDetails, required: Detailed breakdown of payment amounts and identifiers
          - `totalAmount` number, double, required
          - `serviceFee` number, double, required
          - `checkNumber` string, nullable, required
          - `checkUniqueId` string, required
          - `currency` string, required
          - `orderDescription` string, required: Text description of the transaction.
          - `orderId` string, required: Custom identifier for the transaction.
          - `orderIdAlternative` string, nullable, required
          - `paymentDescription` string, nullable, required
          - `groupNumber` string, nullable, required
          - `source` string, required: Custom identifier to indicate the transaction or request source.
          - `payabliTransId` string, nullable, required
          - `categories` unknown[], required
            - unknown
          - `splitFunding` unknown[], required
            - unknown
      - `transStatus` integer, required: Status of transaction. See [the docs](/developers/references/money-in-statuses#money-in-transaction-status) for a full reference.
      - `paypointId` integer, required: The paypoint's ID. Note that this is different than the entryname.
      - `totalAmount` number, double, required
      - `netAmount` number, double, required
      - `feeAmount` number, double, required: Service fee or sub-charge applied.
      - `settlementStatus` integer, required: Settlement status for transaction. See [the docs](/developers/references/money-in-statuses#payment-funding-status) for a full reference.
      - `operation` string, required: The transaction's operation.
      - `responseData` TransactionDetailResponseData, required: Response data from payment processor
        - `resultCode` string: Unified result code for the transaction. See [Pay In unified response codes](/guides/pay-in-unified-response-codes-reference) for more information.
        - `resultCodeText` string: Description of the result code. See [Pay In unified response codes](/guides/pay-in-unified-response-codes-reference) for more information.
        - `response` string, nullable, required
        - `responsetext` string, required: 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 error or decline.
        - `authcode` string, required: Authorization code for the transaction.
        - `transactionid` string, required
        - `avsresponse` string, nullable, required
        - `avsresponse_text` string, required: Text code describing the result for address validation (applies only for card transactions).
        - `cvvresponse` string, nullable, required
        - `cvvresponse_text` string, required: Text code describing the result for CVV validation (applies only for card transactions).
        - `orderid` string, required: Custom identifier for the transaction.
        - `type` string, nullable, required
        - `response_code` string, required
        - `response_code_text` string, required
        - `customer_vault_id` string, nullable, required
        - `emv_auth_response_data` string, required: EMV authorization response data, applicable for card transactions.
      - `source` string, required: Custom identifier to indicate the transaction or request source.
      - `scheduleReference` integer, required
      - `orgId` integer, required: Organization ID. Unique identifier assigned to an org by Payabli.
      - `refundId` integer, required: Identifier of refund transaction linked to this payment.
      - `returnedId` integer, required: Identifier of return/chargeback transaction linked to this payment.
      - `chargebackId` integer, required: Identifier of chargeback transaction.
      - `retrievalId` integer, required: Identifier of retrieval request.
      - `invoiceData` TransactionDetailInvoiceData, required: Invoice information if transaction is associated with an invoice
        - `invoiceNumber` string, required: Invoice number. Identifies the invoice under a paypoint.
        - `invoiceDate` string, date, nullable, required
        - `invoiceDueDate` string, date, nullable, required
        - `invoiceEndDate` string, date, nullable, required
        - `invoiceStatus` integer, required: Invoice status code.
        - `invoiceType` integer, required: Invoice type. Value `0` is for single/one-time invoices, `1` for scheduled invoices.
        - `frequency` 'onetime' | 'weekly' | 'every2weeks' | 'every6months' | 'monthly' | 'every3months' | 'annually' | 'firstofmonth' | 'fifteenthofmonth' | 'endofmonth', required: Frequency for operation. The `firstofmonth`, `fifteenthofmonth`, and `endofmonth` values are only valid on subscriptions — they aren't accepted by other endpoints (such as invoice scheduling) that use this enum.
        - `paymentTerms` string, nullable, required
        - `termsConditions` string, required: Custom terms and conditions included in the invoice.
        - `notes` string, nullable, required
        - `tax` number, double, required: Tax rate in percent applied to the invoice.
        - `discount` number, double, required: Discount applied to the invoice.
        - `invoiceAmount` number, double, required: The invoice amount.
        - `freightAmount` number, double, required: Freight/shipping amount.
        - `dutyAmount` number, double, required: Duty amount.
        - `purchaseOrder` string, required: Purchase order number.
        - `firstName` string, nullable, required
        - `lastName` string, nullable, required
        - `company` string, nullable, required
        - `shippingAddress1` string, required: The shipping address.
        - `shippingAddress2` string, required: Additional line for shipping address.
        - `shippingCity` string, required: Shipping city.
        - `shippingState` string, required: Shipping state or province.
        - `shippingZip` string, required: 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`.
        - `shippingCountry` string, required: Shipping address country.
        - `shippingEmail` string, email, required: Email address.
        - `shippingPhone` string, nullable, required
        - `shippingFromZip` string, required: Sender shipping ZIP code.
        - `summaryCommodityCode` string, required: Commodity code.
        - `items` BillItem[], nullable, required
          - `itemCategories` string[]: Array of tags classifying item or product.
          - `itemCommodityCode` string: Item or product commodity code. Max length of 250 characters.
          - `itemCost` number, double: Item or product price per unit.
          - `itemDescription` string: Item or product description. Max length of 250 characters.
          - `itemMode` integer: Internal class of item or product: value `0` is only for invoices, `1` for bills, and `2` is common for both. Required on invoice line items — invoice creation fails with `Invalid item data` if it's omitted.
          - `itemProductCode` string: Item or product code. Max length of 250 characters.
          - `itemProductName` string: Item or product name. Max length of 250 characters.
          - `itemQty` integer: Quantity of item or product.
          - `itemTaxAmount` number, double: Tax amount applied to item or product.
          - `itemTaxRate` number, double: Tax rate applied to item or product.
          - `itemTotalAmount` number, double: Per-line total for this item (unit cost times quantity). Distinct from the invoice's overall total, `invoiceAmount`. Required on invoice line items.
          - `itemUnitOfMeasure` string: Unit of measurement. Max length of 100 characters.
        - `attachments` FileContent[], required: Array of `fileContent` objects with attached documents. Max upload size is 30 MB.
          - `fContent` string: Content of file, Base64-encoded. Ignored if `furl` is specified. Max upload size is 30 MB.
          - `filename` string: The name of the attached file.
          - `ftype` 'pdf' | 'doc' | 'docx' | 'jpg' | 'jpeg' | 'png' | 'gif' | 'txt': The MIME type of the file (if content is provided).
          - `furl` string: Optional URL provided to show or download the file remotely.
        - `additionalData` AdditionalDataMap, required: Custom dictionary of key:value pairs. You can use this field to store any data related to the object or for your system. If you are using [custom identifiers](/developers/developer-guides/entities-customers), pass those in this object. Max length for a value is 100 characters. ```json { "additionalData": { "key1": "value1", "key2": "value2", "key3": "value3" } } ```
      - `entrypageId` integer, required: If applicable, the internal reference ID to the payment page associated with the transaction.
      - `externalPaypointID` string, required: A custom identifier for the paypoint, if applicable.
      - `isValidatedACH` boolean, required
      - `transactionTime` string, required
      - `customer` TransactionDetailCustomer, required: Customer information associated with the transaction
        - `identifiers` string[], required: List of fields acting as customer identifiers, to be used instead of CustomerNumber.
        - `firstName` string, required
        - `lastName` string, required
        - `companyName` string, nullable, required
        - `billingAddress1` string, required: Billing address.
        - `billingAddress2` string, required: Additional line for the billing address.
        - `billingCity` string, required: Billing city.
        - `billingState` string, required: Billing state. Must be a 2-letter state code for addresses in the US.
        - `billingZip` string, required: Billing address ZIP code.
        - `billingCountry` string, required: Billing address country.
        - `billingPhone` string, required: Phone number.
        - `billingEmail` string, email, required: Email address.
        - `customerNumber` string, required: User-provided unique identifier for the customer. This is typically the customer ID from your own system.
        - `shippingAddress1` string, required: The shipping address.
        - `shippingAddress2` string, required: Additional line for shipping address.
        - `shippingCity` string, required: Shipping city.
        - `shippingState` string, required: Shipping state or province.
        - `shippingZip` string, required: 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`.
        - `shippingCountry` string, required: Shipping address country.
        - `customerId` integer, required: The Payabli-generated unique ID for the customer.
        - `customerStatus` integer, required: Customer Status. Possible values: - `-99` Deleted - `0` Inactive - `1` Active - `85` Locked (typically due to multiple failed login attempts)
        - `additionalData` AdditionalDataMap, required: Custom dictionary of key:value pairs. You can use this field to store any data related to the object or for your system. If you are using [custom identifiers](/developers/developer-guides/entities-customers), pass those in this object. Max length for a value is 100 characters. ```json { "additionalData": { "key1": "value1", "key2": "value2", "key3": "value3" } } ```
      - `splitFundingInstructions` SplitFundingContent[], required: Split funding instructions for the transaction. The total amount of the splits must match the total amount of the transaction.
        - `accountId` string: The accountId for the account the split should be sent to.
        - `amount` number, double: Amount from the transaction to send to this recipient.
        - `description` string: A description for the split.
        - `recipientEntryPoint` string: The entrypoint the split should be sent to.
      - `cfeeTransactions` QueryCFeeTransaction[], required
        - `cFeeTransid` string
        - `feeAmount` number, double
        - `operation` string
        - `refundId` integer
        - `responseData` object
        - `settlementStatus` integer
        - `transactionTime` string, date-time: Timestamp when transaction was submitted, in UTC.
        - `transStatus` integer
      - `transactionEvents` TransactionDetailEvent[], required
        - `transEvent` string, required
        - `eventData` string, required
        - `eventTime` string, required
      - `pendingFeeAmount` number, double: 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-payor-fees-overview#fee-configuration) to learn more about pass-through fee settings.
      - `riskFlagged` boolean: Indicates if the transaction was flagged for risk.
      - `riskFlaggedOn` string, date-time: Timestamp when the transaction was flagged for risk.
      - `riskStatus` string, required: Current risk status of the transaction.
      - `riskReason` string, required: Reason for risk flagging.
      - `riskAction` string, required: Action taken due to risk assessment.
      - `riskActionCode` integer: Numeric code representing the risk action.
      - `deviceId` string, required: Identifier of the registered device used in the transaction.
      - `achSecCode` string, required: 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.
      - `achHolderType` 'personal' | 'business', required: The bank's accountholder type: personal or business.
      - `ipAddress` string, required: The IP address associated with the transaction.
      - `isSameDayACH` boolean, required
      - `walletType` string, nullable, required
    - `referenceId` string, required: The transaction identifier in Payabli.
    - `resultCode` integer, required: Result code for the operation. Value `1` indicates a successful operation, values `2` and `3` indicate errors. A value of `10` indicates that an operation has been initiated and is pending.
    - `resultText` string, required: 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 error or decline.
    - `avsResponseText` string, required: Text code describing the result for address validation (applies only for card transactions).
    - `cvvResponseText` string, required: Text code describing the result for CVV validation (applies only for card transactions).
    - `customerId` integer, required: Payabli-generated unique ID of customer owner of transaction. Returns `0` if the transaction wasn't assigned to an existing customer or no customer was created.
    - `methodReferenceId` string: The stored method's identifier (sometimes referred to as 'token') in Payabli. When `null`, the method wasn't created, or doesn't exist, depending on the operation performed.

## Other responses

- `400`: Bad request / invalid data.
- `401`: Unauthorized request.
- `500`: Internal server error.
- `503`: Database connection error.

---

[API](https://skmtc.dev/payabli/apis/payabli.md) - [All operations](https://skmtc.dev/payabli/apis/payabli/llms.txt) - [OpenAPI document](https://skmtc.dev/payabli/apis/payabli/revisions/67edff30d4b4?raw)
