v48

latestOpenAPI 3.1.0raw.githubusercontent.com2026-07-262621423.8 MB

Create a receive-payment

Records a customer payment and optionally applies it to specific invoices, discounts, or credits. All allocations must target the same accounts receivable account as those invoices, and each one has to include a payment amount, discount, or credit so QuickBooks can close out the balance.

post/quickbooks-desktop/receive-payments

Headers

Conductor-End-User-Idstring required

The ID of the End-User to receive this request.

Example:end_usr_1234567abcdefg

The ID of the End-User to receive this request.

Request body

customerIdstring required

The customer or customer-job to which the payment for this receive-payment is credited.

receivablesAccountIdstring

The Accounts-Receivable (A/R) account to which this receive-payment is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file.

IMPORTANT: If this receive-payment is linked to other transactions, this A/R account must match the receivablesAccount used in all linked transactions.

transactionDatestring date required

The date of this receive-payment, in ISO 8601 format (YYYY-MM-DD).

refNumberstring

The case-sensitive user-defined reference number for this receive-payment, which can be used to identify the transaction in QuickBooks. This value is not required to be unique and can be arbitrarily changed by the QuickBooks user. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does not auto-increment).

Maximum length: 20 characters.

totalAmountstring required

The total monetary amount of this receive-payment, represented as a decimal string.

NOTE: The sum of the paymentAmount amounts in the applyToTransactions array cannot exceed the totalAmount, or you will receive an error.

Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45").

exchangeRatenumber

The market exchange rate between this receive-payment's currency and the home currency in QuickBooks at the time of this transaction. Represented as a decimal value (e.g., 1.2345 for 1 EUR = 1.2345 USD if USD is the home currency).

paymentMethodIdstring

The receive-payment's payment method (e.g., cash, check, credit card).

NOTE: If this receive-payment contains credit card transaction data supplied from QuickBooks Merchant Services (QBMS) transaction responses, you must specify a credit card payment method (e.g., "Visa", "MasterCard", etc.).

memostring

A memo or note for this receive-payment that will be displayed at the beginning of reports containing details about this receive-payment.

depositToAccountIdstring

The account where the funds for this receive-payment will be or have been deposited. If omitted, QuickBooks Desktop uses the default Undeposited Funds account configured in the company file.

externalIdstring uuid

A globally unique identifier (GUID) you, the developer, can provide for tracking this object in your external system. This field is immutable and can only be set during object creation.

IMPORTANT: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error.

isAutoApplyboolean

When true, QuickBooks applies totalAmount to any outstanding transaction that exactly matches totalAmount. If no exact match is found, this receive-payment is applied to the oldest outstanding transaction for the customer-job. When false, QuickBooks records the payment but does not apply it to any specific transaction, causing the amount to appear as a credit on the customer-job's next transaction.

IMPORTANT: You must specify either isAutoApply or applyToTransactions when creating a receive-payment, but never both.

Example request

{
  "customerId": "80000001-1234567890",
  "receivablesAccountId": "80000001-1234567890",
  "transactionDate": "2024-10-01",
  "refNumber": "PAYMENT-1234",
  "totalAmount": "1000.00",
  "exchangeRate": 1.2345,
  "paymentMethodId": "80000001-1234567890",
  "memo": "Payment received at store location - cash",
  "depositToAccountId": "80000001-1234567890",
  "creditCardTransaction": {
    "request": {
      "number": "xxxxxxxxxxxx1234",
      "expirationMonth": 12,
      "expirationYear": 2024,
      "name": "John Doe",
      "address": "1234 Main St, Anytown, USA, 12345",
      "postalCode": "12345",
      "commercialCardCode": "corporate",
      "transactionMode": "card_not_present",
      "transactionType": "charge"
    },
    "response": {
      "statusMessage": "Success",
      "creditCardTransactionId": "1234567890",
      "merchantAccountNumber": "1234567890",
      "authorizationCode": "1234567890",
      "avsStreetStatus": "pass",
      "avsZipStatus": "pass",
      "cardSecurityCodeMatch": "pass",
      "reconBatchId": "1234567890",
      "paymentGroupingCode": 2,
      "paymentStatus": "completed",
      "transactionAuthorizedAt": "2024-01-01T12:34:56Z",
      "transactionAuthorizationStamp": 2,
      "clientTransactionId": "1234567890"
    }
  },
  "externalId": "12345678-abcd-1234-abcd-1234567890ab",
  "applyToTransactions": [
    {
      "transactionId": "123ABC-1234567890",
      "paymentAmount": "25.00",
      "applyCredits": [
        {
          "creditTransactionId": "ABCDEF-1234567890",
          "appliedAmount": "100.00"
        }
      ],
      "discountAmount": "50.00",
      "discountAccountId": "80000001-1234567890",
      "discountClassId": "80000001-1234567890"
    }
  ]
}

Response

Returns the newly created receive-payment.

idstring required

The unique identifier assigned by QuickBooks to this receive-payment. This ID is unique across all transaction types.

objectType'qbd_receive_payment' required

The type of object. This value is always "qbd_receive_payment".

createdAtstring required

The date and time when this receive-payment was created, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.

updatedAtstring required

The date and time when this receive-payment was last updated, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.

revisionNumberstring required

The current QuickBooks-assigned revision number of this receive-payment object, which changes each time the object is modified. When updating this object, you must provide the most recent revisionNumber to ensure you're working with the latest data; otherwise, the update will return an error.

transactionDatestring date required

The date of this receive-payment, in ISO 8601 format (YYYY-MM-DD).

refNumberstring nullable required

The case-sensitive user-defined reference number for this receive-payment, which can be used to identify the transaction in QuickBooks. This value is not required to be unique and can be arbitrarily changed by the QuickBooks user.

totalAmountstring required

The total monetary amount of this receive-payment, represented as a decimal string.

exchangeRatenumber nullable required

The market exchange rate between this receive-payment's currency and the home currency in QuickBooks at the time of this transaction. Represented as a decimal value (e.g., 1.2345 for 1 EUR = 1.2345 USD if USD is the home currency).

totalAmountInHomeCurrencystring nullable required

The total monetary amount of this receive-payment converted to the home currency of the QuickBooks company file. Represented as a decimal string.

memostring nullable required

A memo or note for this receive-payment that will be displayed at the beginning of reports containing details about this receive-payment.

unusedPaymentstring nullable required

The amount of this receive-payment that remains unapplied to any transactions. This occurs in two cases: (1) When the sum of paymentAmount amounts in applyToTransactions is less than totalAmount, leaving a portion of the payment unused, or (2) When a payment is received that equals the exact amount of an invoice, but credits or discounts are also applied, resulting in excess payment.

unusedCreditsstring nullable required

The amount of credit that remains unused after applying credits to this receive-payment. This occurs when the applyCredit.appliedAmount specified for a credit memo (applyCredit.creditMemoId) in the applyToTransactions array is less than the total available credit amount for that credit memo.

externalIdstring nullable required

A globally unique identifier (GUID) you, the developer, can provide for tracking this object in your external system. This field is immutable and can only be set during object creation.

Example response

{
  "id": "123ABC-1234567890",
  "objectType": "qbd_receive_payment",
  "createdAt": "2025-01-01T12:34:56+00:00",
  "updatedAt": "2025-02-01T12:34:56+00:00",
  "revisionNumber": "1721172183",
  "customer": {
    "id": "80000001-1234567890",
    "fullName": "Acme Corporation"
  },
  "receivablesAccount": {
    "id": "80000001-1234567890",
    "fullName": "Accounts-Receivable"
  },
  "transactionDate": "2024-10-01",
  "refNumber": "PAYMENT-1234",
  "totalAmount": "1000.00",
  "currency": {
    "id": "80000001-1234567890",
    "fullName": "USD"
  },
  "exchangeRate": 1.2345,
  "totalAmountInHomeCurrency": "1234.56",
  "paymentMethod": {
    "id": "80000001-1234567890",
    "fullName": "Credit Card"
  },
  "memo": "Payment received at store location - cash",
  "depositToAccount": {
    "id": "80000001-1234567890",
    "fullName": "Undeposited Funds"
  },
  "creditCardTransaction": {
    "request": {
      "number": "xxxxxxxxxxxx1234",
      "expirationMonth": 12,
      "expirationYear": 2024,
      "name": "John Doe",
      "address": "1234 Main St, Anytown, USA, 12345",
      "postalCode": "12345",
      "commercialCardCode": "corporate",
      "transactionMode": "card_not_present",
      "transactionType": "charge"
    },
    "response": {
      "statusMessage": "Success",
      "creditCardTransactionId": "1234567890",
      "merchantAccountNumber": "1234567890",
      "authorizationCode": "1234567890",
      "avsStreetStatus": "pass",
      "avsZipStatus": "pass",
      "cardSecurityCodeMatch": "pass",
      "reconBatchId": "1234567890",
      "paymentGroupingCode": 2,
      "paymentStatus": "completed",
      "transactionAuthorizedAt": "2024-01-01T12:34:56Z",
      "transactionAuthorizationStamp": 2,
      "clientTransactionId": "1234567890"
    }
  },
  "unusedPayment": "100.00",
  "unusedCredits": "100.00",
  "externalId": "12345678-abcd-1234-abcd-1234567890ab",
  "appliedToTransactions": [
    {
      "transactionId": "123ABC-1234567890",
      "transactionType": "invoice",
      "transactionDate": "2024-10-01",
      "refNumber": "TXN-1234",
      "balanceRemaining": "100.00",
      "amount": "1000.00",
      "discountAmount": "50.00",
      "discountAccount": {
        "id": "80000001-1234567890",
        "fullName": "Discount Account"
      },
      "discountClass": {
        "id": "80000001-1234567890",
        "fullName": "Discounts"
      },
      "linkedTransactions": [
        {
          "id": "123ABC-1234567890",
          "objectType": "qbd_linked_transaction",
          "transactionType": "invoice",
          "transactionDate": "2024-10-01",
          "refNumber": "LINK-1234",
          "linkType": "amount",
          "amount": "1000.00"
        }
      ]
    }
  ],
  "customFields": [
    {
      "ownerId": "0",
      "name": "Customer Rating",
      "type": "string_1024_type",
      "value": "Premium"
    }
  ]
}