Estimates

Add a payment to an Estimate

Changed on

Beta: Breaking changes may occur without notice.

Adds a payment to an Estimate and returns the created payment. When the Estimate is linked to a Job the payment is shared by both, and the Job totals are recalculated as a side effect.

post/v2/estimates/{id}/payments

Request

Path parameters

idstring required
Example:ES-LwqGJnRwvZPaNe5E

The estimate ID (prefix ES-).

Headers

Authorizationstring required
Example:Bearer <token>

Bearer Token

Request body

type'cash' | 'credit' | 'check' required

The type of the payment.

amountnumber required

The payment amount. Must be a positive number.

confirmationCodestring

A free-text reference or confirmation note for the payment.

datestring

The date and time of the payment. If not provided, defaults to the current timestamp.

Example request

{
  "type": "cash",
  "amount": 100,
  "confirmationCode": "Check #1234",
  "date": "2022-01-01 10:00:00"
}

Response

The created payment.

idstring

The ID of the payment (prefix PAY-).

datestring date-time

The date and time the payment was collected.

amountnumber

The amount the client was charged. Reported for a failed payment too, so check status before counting it as money collected.

tipAmountnumber

The tip amount included in the payment.

type'charge' | 'cash' | 'credit' | 'check' | 'refund' | 'refund_offline' | 'bank_transfer' | 'bank_transfer_offline' | 'cash_app' | 'consumer_financing' | 'venmo' | 'zelle' | 'debit_offline' | 'installments' | 'interac' | 'check_deposit'

The type of the payment.

status'pending' | 'failed' | 'succeeded'

The status of the payment.

estimateIdstring nullable

The ID of the estimate the payment was collected against (prefix ES-), or null when the payment is not tied to an estimate.

confirmationCodestring

The confirmation code of the payment.

collectedByIdstring nullable

The ID of the user who collected the payment (prefix USR-), or null when the payment was not collected by a user.

invoiceIdstring nullable

The ID of the invoice the payment was collected against (prefix IV-), or null when the paid document is not invoiced.

jobIdstring nullable

The ID of the job the payment was collected against (prefix JOB-, or LD- for a lead), or null when the payment belongs to a standalone invoice or estimate.

Example response

{
  "id": "PAY-BA5r7o4bqzR9MONa",
  "date": "2026-01-01 10:00:00",
  "amount": 250.5,
  "tipAmount": 10,
  "type": "charge",
  "status": "succeeded",
  "estimateId": "ES-LwqGJnRwvZPaNe5E",
  "confirmationCode": "ch_3QwErTyUiOp12345",
  "collectedById": "USR-38c1ee5c4efa38a4",
  "invoiceId": "IV-bK9r2XyZL54aWDR0",
  "jobId": "JOB-BA5r7o4bqzR9MONa"
}

Changes

    • breaking

      the response property became nullable for the status

    • breaking

      the response property became nullable for the status

    • breaking

      the response property became nullable for the status

    • breaking

      the response property became optional for the status

    • breaking

      the response property became optional for the status

    • breaking

      the response property became optional for the status

    • warning

      removed the request property

    • warning

      removed the optional property from the response with the status

    • warning

      added the new bank_transfer enum value to the response property for the response status

    • warning

      added the new bank_transfer_offline enum value to the response property for the response status

    • warning

      added the new cash enum value to the response property for the response status

    • warning

      added the new cash_app enum value to the response property for the response status

    • warning

      added the new charge enum value to the response property for the response status

    • warning

      added the new check enum value to the response property for the response status

    • warning

      added the new check_deposit enum value to the response property for the response status

    • warning

      added the new consumer_financing enum value to the response property for the response status

    • warning

      added the new credit enum value to the response property for the response status

    • warning

      added the new debit_offline enum value to the response property for the response status

    • warning

      added the new installments enum value to the response property for the response status

    • warning

      added the new interac enum value to the response property for the response status

    • warning

      added the new refund enum value to the response property for the response status

    • warning

      added the new refund_offline enum value to the response property for the response status

    • warning

      added the new venmo enum value to the response property for the response status

    • warning

      added the new zelle enum value to the response property for the response status

    • info

      added the new optional request property

    • info

      added the media type application/json for the response with the status

    • info

      added the media type application/json for the response with the status

    • info

      added the media type application/json for the response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      endpoint added