---
title: "Update VendorPayment record (partial)"
method: PATCH
path: "/public/v2/vendor-payments/{record_number}/"
tags: ["Vendor Payments"]
---

# Update VendorPayment record (partial)

`PATCH /public/v2/vendor-payments/{record_number}/`

## Request

- Base URL: `https://api.dualentry.com`
- URL: `https://api.dualentry.com/public/v2/vendor-payments/{record_number}/`
- Auth: none declared

Partially update an existing VendorPayment record. Send only the fields you want to change. Anything you don't send stays as it is. Updates are subject to the same constraints as the full update endpoint: period locks, payment-applied restrictions, and approval-workflow rules apply.

**Side effects**
- If an approval workflow matches this request, DualEntry can set `record_status` back to `draft`.
- If this record already has an active bank match, and an approval workflow holds the record, DualEntry returns those matches to `draft`.
- If the customer or vendor is intercompany, DualEntry also writes a transaction in the elimination company.
- If the record has a bank account and a payment method that prints checks, DualEntry creates a `not_printed` paper check, even if the record is `draft`.
- If a printed or not-printed paper check already exists, DualEntry skips paper-check creation.
- If you clear `payment_method_id`, or set it to a payment method that does not print checks, DualEntry sets the associated unprinted paper check to `archived`.

**Additional validations**
- Fails with `422` if the request changes `check_number` while a paper check is `not_printed`.

## Path parameters

- `record_number` integer, required: The `number` attribute of the record.

## Headers

- `Idempotency-Key` string

## Request body

- PublicVendorPaymentSchemaPatchIn: Partial update for `PATCH /public/vendor-payments/{number}/`. Send only the fields you want to change. Unset fields stay as they are. The save uses the same rules as a full update. Period locks, applied-payment checks, and approval workflow rules apply. A sent attachments list replaces the existing files. Omit attachments to keep them. A sent items list replaces the application lines. Omit items to keep them.
  - `custom_fields` object[], nullable
  - `company_id` integer, nullable
  - `check_number` string, nullable
  - `account_number` integer, nullable
  - `currency_iso_4217_code` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'
  - `exchange_rate` union
    - number
    - string
  - `memo` string, nullable
  - `items` PublicVendorPaymentItemIn[], nullable
    - `id` integer, nullable
    - `bill_number` integer, nullable
    - `vendor_credit_number` integer, nullable
    - `journal_entry_line_id` integer, nullable
    - `intercompany_journal_entry_line_id` integer, nullable
    - `amount` union, required
      - number
      - string
    - `position` integer, required
  - `attachments` AttachmentSchemaOut[], nullable
    - `id` integer, required
    - `file_name` string, required
    - `file_size` integer, required
    - `download_url` string, nullable
    - `upload_url` string, nullable
    - `category` string
  - `bank_or_credit_card_amount` union
    - number
    - string
  - `payment_method_id` integer, nullable
  - `record_status` 'draft' | 'posted' | 'archived'
  - `line_date_validation` boolean, nullable
  - `date` string, date, nullable
  - `transaction_date` string, date, nullable

## Response `200`

OK

- PublicVendorPaymentSchemaOut
  - `custom_fields` CustomFieldValuePairOutputSchema[]
    - `field` CustomFieldSchemaOut, required
      - `id` integer, required
      - `company_id` integer, nullable
      - `company_ids` integer[], nullable
      - `name` string, required
      - `description` string, nullable, required
      - `helper_text` string, nullable, required
      - `field_type` 'text' | 'number' | 'currency' | 'date' | 'boolean' | 'single_select' | 'multi_select' | 'link' | 'paragraph', required
      - `applies_to` AppliesToItemSchema[], required
        - `type` 'invoice' | 'bill' | 'direct_expense' | 'journal_entry' | 'vendor_prepayment' | 'vendor_credit' | 'vendor_payment' | 'vendor_refund' | 'customer_payment' | 'customer_prepayment' | 'customer_refund' | 'customer_deposit' | 'currency_revaluation' | 'contract' | 'fixed_asset' | 'customer' | 'vendor' | 'company' | 'sales_order' | 'cash_sale' | 'customer_credit', required
        - `layer` 'transaction' | 'entry'
        - `is_active` boolean
        - `is_required` boolean
      - `default_value` union
        - string
        - string[]
      - `options` string[], nullable, required
      - `is_active` boolean, nullable, required
    - `value` CustomFieldValueSchemaOut
      - `id` integer, required
      - `custom_field_id` integer, required
      - `custom_field_name` string, required
      - `custom_field_type` string, required
      - `custom_field_value_id` integer, required
      - `value` unknown, required
      - `created_at` string, required
      - `updated_at` string, required
  - `integration_remote_records` IntegrationRemoteRecordSchemaOut[]
    - `transactional_date` string, date-time, nullable
    - `external_source` ExternalIntegrationSourceOut
      - `integration_type` union, required
        - 'bill_com' | 'ramp' | 'zoho' | 'fivetran' | 'stripe' | 'finch' | 'hubspot' | 'brex' | 'cubby' | 'avalara' | 'deel' | 'tax1099' | 'sitelink' | 'postgresql' | 'qlik' | 'power_bi' | 'snowflake' | 'avidxchange' | 'concur' | 'salesforce' | 'hmrc' | 'rippling' | 'monday' | 'airwallex' | 'pleo' | 'tipalti' | 'addepar' | 'moss' | 'external' | 'anrok' | 'kintsugi'
        - 'quickbooks' | 'xero' | 'stripe' | 'netsuite_rutter' | 'sage_50_rutter' | 'sage_50' | 'qbd'
        - string
      - `external_integration_url` string, nullable, required
    - `id` integer, required
    - `source_id` string, required
    - `connection_id` integer, nullable
    - `integration_id` integer, nullable
    - `integration_name` string, nullable
    - `integration_provider` IntegrationProviderSchemaOut
      - `id` integer, required
      - `name` string, required
      - `integration_type` union, required
        - 'bill_com' | 'ramp' | 'zoho' | 'fivetran' | 'stripe' | 'finch' | 'hubspot' | 'brex' | 'cubby' | 'avalara' | 'deel' | 'tax1099' | 'sitelink' | 'postgresql' | 'qlik' | 'power_bi' | 'snowflake' | 'avidxchange' | 'concur' | 'salesforce' | 'hmrc' | 'rippling' | 'monday' | 'airwallex' | 'pleo' | 'tipalti' | 'addepar' | 'moss' | 'external' | 'anrok' | 'kintsugi'
        - string
      - `logo_url` string, nullable
      - `website` string, nullable
      - `description` string, nullable
      - `category` string, nullable
    - `url` string, nullable
  - `attachments` PublicAttachmentSchemaOut[]
    - `id` integer, required
    - `file_name` string, required
    - `file_size` integer, required
    - `download_url` string, nullable
  - `classifications` PublicRecordClassificationsSchemaOut[]
    - `id` integer, required
    - `name` string, required
    - `line_id` integer, required
    - `line_name` string, required
    - `parent_classification_id` integer, nullable
    - `parent_classification_line_id` integer, nullable
  - `transaction_ids` integer[], required
  - `created_by` AuditActorSchemaOut: Schema for audit actor information.
    - `actor_type` string, nullable
    - `email` string, nullable
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `via` string, nullable
    - `agent_id` integer, nullable
    - `agent_name` string, nullable
    - `timestamp` string, date-time, nullable
  - `updated_by` AuditActorSchemaOut: Schema for audit actor information.
    - `actor_type` string, nullable
    - `email` string, nullable
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `via` string, nullable
    - `agent_id` integer, nullable
    - `agent_name` string, nullable
    - `timestamp` string, date-time, nullable
  - `internal_id` integer, required
  - `number` integer, required
  - `code` string, nullable
  - `account_number` integer, nullable, required
  - `items` PublicVendorPaymentItemOut[], required
    - `bill_number` integer, nullable
    - `vendor_credit_number` integer, nullable
    - `journal_entry_line_id` integer, nullable
    - `intercompany_journal_entry_line_id` integer, nullable
    - `amount` string, required
    - `position` integer, required
    - `bank_or_credit_card_amount` string, required
  - `company_id` integer, required
  - `company_name` string, required
  - `company_currency` string, required
  - `vendor_id` integer, nullable
  - `vendor_name` string, nullable
  - `memo` string, required
  - `check_number` string, required
  - `date` string, date, required: Posting date (GL date) - the date when the transaction is recorded in the general ledger
  - `transaction_date` string, date, required: Transaction date (inception date) - the date when the transaction actually occurred
  - `currency_iso_4217_code` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', required
  - `exchange_rate` string, required
  - `bank_or_credit_card_amount` string, required
  - `amount` string, required
  - `record_status` 'draft' | 'posted' | 'archived', required
  - `payment_method_id` integer, nullable
  - `paper_check_status` 'printed' | 'not_printed' | 'archived', required
  - `source` 'manual' | 'bank_match_ai' | 'bank_match_rule' | 'banking' | 'payments'
  - `created_at` string, date-time, required: Date and time the record was created
  - `updated_at` string, date-time, required: Date and time the record was last updated

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `422`: Unprocessable Content
- `500`: Internal Server Error

## Changes

- **2026-10-15** `238fe9120a75`: 1 info
  - added the optional property `custom_fields/items/field/applies_to/items/layer` to the response with the `200` status
- **2026-10-14** `3d645439b1e4`: 2 warning
  - added the new `kintsugi` enum value to the `integration_remote_records/items/external_source/anyOf[subschema #1: ExternalIntegrationSourceOut]/integration_type/anyOf[subschema #1: IntegrationProviderType]/` response property for the response status `200`
  - added the new `kintsugi` enum value to the `integration_remote_records/items/integration_provider/anyOf[subschema #1: IntegrationProviderSchemaOut]/integration_type/anyOf[subschema #1: IntegrationProviderType]/` response property for the response status `200`
- …earlier changes not shown

[Operation history](https://skmtc.dev/dualentry/apis/dualentry-public-api/changes/public/v2/vendor-payments/:record_number/patch.md)

---

[API](https://skmtc.dev/dualentry/apis/dualentry-public-api.md) · [All operations](https://skmtc.dev/dualentry/apis/dualentry-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dualentry/apis/dualentry-public-api/revisions/7588ae19aaff?raw)
