---
title: "Create a receive-payment"
method: POST
path: "/quickbooks-desktop/receive-payments"
---

# Create a receive-payment

`POST /quickbooks-desktop/receive-payments`

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.

## Headers

- `Conductor-End-User-Id` string, required — The ID of the End-User to receive this request.

## Request body

- object
  - `customerId` string, required — The customer or customer-job to which the payment for this receive-payment is credited.
  - `receivablesAccountId` string — 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.
  - `transactionDate` string, date, required — The date of this receive-payment, in ISO 8601 format (YYYY-MM-DD).
  - `refNumber` string — 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.
  - `totalAmount` string, 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").
  - `exchangeRate` number — 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).
  - `paymentMethodId` string — 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.).
  - `memo` string — A memo or note for this receive-payment that will be displayed at the beginning of reports containing details about this receive-payment.
  - `depositToAccountId` string — 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.
  - `creditCardTransaction` object — The credit card transaction data for this receive-payment's payment when using QuickBooks Merchant Services (QBMS). If specifying this field, you must also specify the `paymentMethod` field.
    - `request` object — The transaction request data originally supplied for this credit card transaction when using QuickBooks Merchant Services (QBMS).
      - `number` string, required — The credit card number. Must be masked with lower case "x" and no dashes.
      - `expirationMonth` number, required — The month when the credit card expires.
      - `expirationYear` number, required — The year when the credit card expires.
      - `name` string, required — The cardholder's name on the card.
      - `address` string — The card's billing address.
      - `postalCode` string — The card's billing address ZIP or postal code.
      - `commercialCardCode` string — The commercial card code identifies the type of business credit card being used (purchase, corporate, or business) for Visa and Mastercard transactions only. When provided, this code may qualify the transaction for lower processing fees compared to the standard rates that apply when no code is specified.
      - `transactionMode` 'card_not_present' | 'card_present' — Indicates whether this credit card transaction came from a card swipe (`card_present`) or not (`card_not_present`).
      - `transactionType` 'authorization' | 'capture' | 'charge' | 'refund' | 'voice_authorization' — The QBMS transaction type from which the current transaction data originated.
    - `response` object — The transaction response data for this credit card transaction when using QuickBooks Merchant Services (QBMS).
      - `statusCode` number, required — The status code returned in the original QBMS transaction response for this credit card transaction.
      - `statusMessage` string, required — The status message returned in the original QBMS transaction response for this credit card transaction.
      - `creditCardTransactionId` string, required — The ID returned from the credit card processor for this credit card transaction.
      - `merchantAccountNumber` string, required — The QBMS account number of the merchant who is running this transaction using the customer's credit card.
      - `authorizationCode` string — The authorization code returned from the credit card processor to indicate that this charge will be paid by the card issuer.
      - `avsStreetStatus` 'fail' | 'not_available' | 'pass' — Indicates whether the street address supplied in the transaction request matches the customer's address on file at the card issuer.
      - `avsZipStatus` 'fail' | 'not_available' | 'pass' — Indicates whether the customer postal ZIP code supplied in the transaction request matches the customer's postal code recognized at the card issuer.
      - `cardSecurityCodeMatch` 'fail' | 'not_available' | 'pass' — Indicates whether the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer.
      - `reconBatchId` string — An internal ID returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature.
      - `paymentGroupingCode` number — An internal code returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature.
      - `paymentStatus` 'completed' | 'unknown', required — Indicates whether this credit card transaction is known to have been successfully processed by the card issuer.
      - `transactionAuthorizedAt` string, required — The date and time when the credit card processor authorized this credit card transaction.
      - `transactionAuthorizationStamp` number — An internal value for this credit card transaction, needed for the QuickBooks reconciliation feature.
      - `clientTransactionId` string — A value returned from QBMS transactions for future use by the QuickBooks Reconciliation feature.
  - `externalId` string, 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.
  - `isAutoApply` boolean — 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.
  - `applyToTransactions` object[] — The invoices to be paid by this receive-payment. This will create a link between this receive-payment and the specified invoices. **IMPORTANT**: In each `applyToTransactions` object, you must specify either `paymentAmount`, `applyCredits`, `discountAmount`, or any combination of these; if none of these are specified, you will receive an error for an empty transaction. **IMPORTANT**: The target invoice must have `isPaid=false`, otherwise, QuickBooks will report this object as "cannot be found". **NOTE**: You must specify either `isAutoApply` or `applyToTransactions` when creating a receive-payment, but never both.
    - `transactionId` string, required — The ID of the target transaction to which this payment is applied.
    - `paymentAmount` string — The monetary amount to apply to the target transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45").
    - `applyCredits` object[] — Credits to apply to this target transaction, reducing its balance. This creates a link between this target transaction and the specified credit transactions. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the target transaction and check the `linkedTransactions` response field. If fetching a list of target transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field.
      - `creditTransactionId` string, required — The unique identifier of the credit transaction to apply to this transaction, such as a credit memo, vendor credit, or journal-entry credit.
      - `appliedAmount` string, required — The amount of the selected credit transaction to apply to this transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45").
      - `overrideCreditApplication` boolean — Indicates whether to override the credit.
    - `discountAmount` string — The monetary amount by which to reduce this target transaction's balance, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45").
    - `discountAccountId` string — The financial account used to track this target transaction's discount.
    - `discountClassId` string — The class used to track this target transaction's discount.

## Response `200`

Returns the newly created receive-payment.

- QbdReceivePayment
  - `id` string, 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"`.
  - `createdAt` string, 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.
  - `updatedAt` string, 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.
  - `revisionNumber` string, 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.
  - `customer` object, nullable, required — The customer or customer-job to which the payment for this receive-payment is credited.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `receivablesAccount` object, nullable, required — 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.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `transactionDate` string, date, required — The date of this receive-payment, in ISO 8601 format (YYYY-MM-DD).
  - `refNumber` string, 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.
  - `totalAmount` string, required — The total monetary amount of this receive-payment, represented as a decimal string.
  - `currency` object, nullable, required — The receive-payment's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `exchangeRate` number, 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).
  - `totalAmountInHomeCurrency` string, 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.
  - `paymentMethod` object, nullable, required — The receive-payment's payment method (e.g., cash, check, credit card).
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `memo` string, 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.
  - `depositToAccount` object, nullable, required — The account where the funds for this receive-payment will be or have been deposited.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `creditCardTransaction` QbdCreditCardTransaction, required
    - `request` QbdCreditCardTransactionRequest, required
      - `number` string, required — The credit card number. Must be masked with lower case "x" and no dashes.
      - `expirationMonth` number, required — The month when the credit card expires.
      - `expirationYear` number, required — The year when the credit card expires.
      - `name` string, nullable, required — The cardholder's name on the card.
      - `address` string, nullable, required — The card's billing address.
      - `postalCode` string, nullable, required — The card's billing address ZIP or postal code.
      - `commercialCardCode` string, nullable, required — The commercial card code identifies the type of business credit card being used (purchase, corporate, or business) for Visa and Mastercard transactions only. When provided, this code may qualify the transaction for lower processing fees compared to the standard rates that apply when no code is specified.
      - `transactionMode` 'card_not_present' | 'card_present', nullable, required — Indicates whether this credit card transaction came from a card swipe (`card_present`) or not (`card_not_present`).
      - `transactionType` 'authorization' | 'capture' | 'charge' | 'refund' | 'voice_authorization', nullable, required — The QBMS transaction type from which the current transaction data originated.
    - `response` QbdCreditCardTransactionResponse, required
      - `statusCode` number, required — The status code returned in the original QBMS transaction response for this credit card transaction.
      - `statusMessage` string, required — The status message returned in the original QBMS transaction response for this credit card transaction.
      - `creditCardTransactionId` string, required — The ID returned from the credit card processor for this credit card transaction.
      - `merchantAccountNumber` string, required — The QBMS account number of the merchant who is running this transaction using the customer's credit card.
      - `authorizationCode` string, nullable, required — The authorization code returned from the credit card processor to indicate that this charge will be paid by the card issuer.
      - `avsStreetStatus` 'fail' | 'not_available' | 'pass', nullable, required — Indicates whether the street address supplied in the transaction request matches the customer's address on file at the card issuer.
      - `avsZipStatus` 'fail' | 'not_available' | 'pass', nullable, required — Indicates whether the customer postal ZIP code supplied in the transaction request matches the customer's postal code recognized at the card issuer.
      - `cardSecurityCodeMatch` 'fail' | 'not_available' | 'pass', nullable, required — Indicates whether the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer.
      - `reconBatchId` string, nullable, required — An internal ID returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature.
      - `paymentGroupingCode` number, nullable, required — An internal code returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature.
      - `paymentStatus` 'completed' | 'unknown', required — Indicates whether this credit card transaction is known to have been successfully processed by the card issuer.
      - `transactionAuthorizedAt` string, required — The date and time when the credit card processor authorized this credit card transaction.
      - `transactionAuthorizationStamp` number, nullable, required — An internal value for this credit card transaction, needed for the QuickBooks reconciliation feature.
      - `clientTransactionId` string, nullable, required — A value returned from QBMS transactions for future use by the QuickBooks Reconciliation feature.
  - `unusedPayment` string, 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.
  - `unusedCredits` string, 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.
  - `externalId` string, 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.
  - `appliedToTransactions` QbdTargetTransaction[], required — The invoice(s) paid by this receive-payment.
    - `transactionId` string, required — The ID of the target transaction to which this payment is applied.
    - `transactionType` 'ar_refund_credit_card' | 'bill' | 'bill_payment_check' | 'bill_payment_credit_card' | 'build_assembly' | 'charge' | 'check' | 'credit_card_charge' | 'credit_card_credit' | 'credit_memo' | 'deposit' | 'estimate' | 'inventory_adjustment' | 'invoice' | 'item_receipt' | 'journal_entry' | 'liability_adjustment' | 'paycheck' | 'payroll_liability_check' | 'purchase_order' | 'receive_payment' | 'sales_order' | 'sales_receipt' | 'sales_tax_payment_check' | 'transfer' | 'vendor_credit' | 'ytd_adjustment' | 'unknown', required — The type of transaction for this target transaction.
    - `transactionDate` string, date, nullable, required — The date of this target transaction, in ISO 8601 format (YYYY-MM-DD).
    - `refNumber` string, nullable, required — The case-sensitive user-defined reference number for this target transaction, 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.
    - `balanceRemaining` string, nullable, required — The outstanding balance of this target transaction after applying any credits or payments. Represented as a decimal string.
    - `amount` string, nullable, required — The monetary amount of this target transaction, represented as a decimal string.
    - `discountAmount` string, nullable, required — The monetary amount by which to reduce this target transaction's balance, represented as a decimal string.
    - `discountAccount` object, nullable, required — The financial account used to track this target transaction's discount.
      - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
      - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
    - `discountClass` object, nullable, required — The class used to track this target transaction's discount.
      - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
      - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
    - `linkedTransactions` QbdLinkedTransaction[], required — The target transaction's linked transactions, such as payments applied, credits used, or associated purchase orders. **IMPORTANT**: You must specify the parameter `includeLinkedTransactions` when fetching a list of target transactions to receive this field because it is not returned by default.
      - `id` string, required — The unique identifier assigned by QuickBooks to this linked transaction. This ID is unique across all transaction types.
      - `objectType` 'qbd_linked_transaction', required — The type of object. This value is always `"qbd_linked_transaction"`.
      - `transactionType` 'ar_refund_credit_card' | 'bill' | 'bill_payment_check' | 'bill_payment_credit_card' | 'build_assembly' | 'charge' | 'check' | 'credit_card_charge' | 'credit_card_credit' | 'credit_memo' | 'deposit' | 'estimate' | 'inventory_adjustment' | 'invoice' | 'item_receipt' | 'journal_entry' | 'liability_adjustment' | 'paycheck' | 'payroll_liability_check' | 'purchase_order' | 'receive_payment' | 'sales_order' | 'sales_receipt' | 'sales_tax_payment_check' | 'transfer' | 'vendor_credit' | 'ytd_adjustment' | 'unknown', required — The type of transaction for this linked transaction.
      - `transactionDate` string, date, required — The date of this linked transaction, in ISO 8601 format (YYYY-MM-DD).
      - `refNumber` string, nullable, required — The case-sensitive user-defined reference number for this linked transaction, 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.
      - `linkType` 'amount' | 'quantity', nullable, required — Indicates the nature of the link between the transactions: `amount` denotes an amount-based link (e.g., an invoice linked to a payment), and `quantity` denotes a quantity-based link (e.g., an invoice created from a sales order based on the quantity of items received).
      - `amount` string, nullable, required — The monetary amount of this linked transaction, represented as a decimal string.
  - `customFields` QbdCustomField[], required — The custom fields for the receive-payment object, added as user-defined data extensions, not included in the standard QuickBooks object.
    - `ownerId` string, required — The identifier of the owner of the custom field, which QuickBooks internally calls a "data extension". For public custom fields visible in the UI, such as those added by the QuickBooks user, this is always "0". For private custom fields that are only visible to the application that created them, this is a valid GUID identifying the owning application. Internally, Conductor always fetches all public custom fields (those with an `ownerId` of "0") for all objects.
    - `name` string, required — The name of the custom field, unique for the specified `ownerId`. For public custom fields, this name is visible as a label in the QuickBooks UI.
    - `type` 'amount_type' | 'date_time_type' | 'integer_type' | 'percent_type' | 'price_type' | 'quantity_type' | 'string_1024_type' | 'string_255_type', required — The data type of this custom field.
    - `value` string, required — The value of this custom field. The maximum length depends on the field's data type.

---

[API](https://skmtc.net/conductor-is/apis/conductor-api.md) · [All operations](https://skmtc.net/conductor-is/apis/conductor-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/conductor-is/conductor-api/revisions/0b07b3ebe160/schema)
