---
title: "PATCH /invoice/{invoiceId}"
method: PATCH
path: "/invoice/{invoiceId}"
---

# PATCH /invoice/{invoiceId}

`PATCH /invoice/{invoiceId}`

Update an existing invoice. You can update the account, details, payment methods, and auto-pull settings.

## Path parameters

- `invoiceId` string, required

## Request body

- object
  - `accountId` string — The ID of the account to receive payment.
  - `details` SlashfiModelsEntityInvoiceInvoiceDetailsInputYaml
    - `issuedAt` string, date-time, required
    - `dueAt` string, date-time, required
    - `invoiceTz` string, required — IANA timezone identifier used for interpreting invoice dates
    - `lineItemsAndTotals` SlashfiModelsEntityInvoiceLineItemsAndTotalsInputYaml, required
      - `lineItems` SlashfiModelsEntityInvoiceInvoiceLineItemYaml[], required
        - `name` string, required
        - `quantity` number, required
        - `priceCents` number, required
      - `discount` union
        - object
          - `type` 'percentage', required
          - `percent` number, required
        - object
          - `type` 'fixed', required
          - `amountCents` number, required
      - `tax` SlashfiModelsEntityInvoiceInvoiceTaxYaml
        - `type` 'percentage', required
        - `percent` number, required
    - `invoiceNumber` string, required — A user-defined invoice identifier. Allows uppercase letters (A-Z), numbers (0-9), dashes (-), and underscores (_).
    - `memo` string
    - `version` integer — Current version of the invoice details for optimistic locking. Required on updates, ignored on create.
    - `ccEmails` string[]
  - `paymentMethods` SlashfiModelsEntityInvoiceInvoiceSlashPaymentMethodYaml[] — Payment methods to enable on this invoice.
    - `method` 'inbound_ach_transfer' | 'inbound_wire_transfer' | 'inbound_international_wire' | 'inbound_rtp' | 'crypto_deposit' | 'ach_debit', required — Enum of payment method types for invoices that Slash can receive and track (ACH, wire, crypto, etc.)
    - `config` SlashfiModelsEntityInvoiceInvoiceSlashPaymentMethodConfigYaml, required
      - `passFeeToPayer` boolean, required
  - `autoPullEnabled` boolean — Whether to automatically pull payment via ACH debit when the payer has authorized recurring debits.

## Response `200`

OK

- SlashfiModelsEntityInvoiceInvoiceAggregateYaml — Aggregate model for an invoice
  - `invoice` SlashfiModelsEntityInvoiceInvoiceYaml, required — Top-level invoice model
    - `id` string, required
    - `status` 'void' | 'unpaid' | 'overdue' | 'paid_partially' | 'paid', required
    - `collectedAmountCents` number, required
    - `invoiceDetailsId` string, required
    - `accountId` string, required
    - `legalEntityContactId` string, required
    - `invoicePaymentMethods` SlashfiModelsEntityInvoiceInvoiceSlashPaymentMethodYaml[]
      - `method` 'inbound_ach_transfer' | 'inbound_wire_transfer' | 'inbound_international_wire' | 'inbound_rtp' | 'crypto_deposit' | 'ach_debit', required — Enum of payment method types for invoices that Slash can receive and track (ACH, wire, crypto, etc.)
      - `config` SlashfiModelsEntityInvoiceInvoiceSlashPaymentMethodConfigYaml, required
        - `passFeeToPayer` boolean, required
    - `invoiceTransactions` SlashfiModelsEntityInvoiceInvoiceTransactionYaml[], required
      - union
        - object
          - `transactionType` 'external', required
          - `transaction` object, required
            - `paymentMethod` union, required — Payment methods for invoice reconciliation (includes Slash-trackable methods plus external-only options like 'other')
              - …
            - `paidAt` string, required
        - object
          - `transactionType` 'internal', required
          - `transaction` object, required
            - `aggregatedTransactionId` string, required
    - `closedAt` string, date-time, nullable
  - `invoiceDetails` SlashfiModelsEntityInvoiceInvoiceDetailsYaml, required
    - `id` string, required
    - `issuedAt` string, date-time, required
    - `dueAt` string, date-time, required
    - `invoiceTz` string, required — IANA timezone identifier used for interpreting invoice dates
    - `currency` string, required
    - `lineItemsAndTotals` SlashfiModelsEntityInvoiceLineItemsAndTotalsYaml, required
      - `lineItems` SlashfiModelsEntityInvoiceInvoiceLineItemYaml[], required
        - `name` string, required
        - `quantity` number, required
        - `priceCents` number, required
      - `discount` union
        - object
          - `type` 'percentage', required
          - `percent` number, required
        - object
          - `type` 'fixed', required
          - `amountCents` number, required
      - `tax` SlashfiModelsEntityInvoiceInvoiceTaxYaml
        - `type` 'percentage', required
        - `percent` number, required
      - `subtotalCents` number, required
      - `totalAmountCents` number, required
    - `invoiceNumber` string, required — A user-defined invoice identifier. Allows uppercase letters (A-Z), numbers (0-9), dashes (-), and underscores (_).
    - `memo` string
    - `documentId` string, required
    - `billedTo` object, required
      - `name` string, required
      - `email` string, required
      - `address` SlashfiModelsEntityIAddressModelYaml
        - `addressLine` string, required
        - `addressLine2` string
        - `addressCity` string, required
        - `addressState` string, required
        - `addressZip` string, required
        - `addressCountry` string — ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).
      - `ccEmails` string[]
    - `version` integer, required
  - `invoiceAccount` union, required
    - object
      - `id` string, required — Represent a Subaccount ID in the format of "subaccount_102jifoij01"
      - `name` string, required
      - `accountNumber` string
      - `routingNumber` string
      - `slashAccountGroupId` string, required
      - `closedAt` string
      - `accountType` 'default' | 'primary', required
    - object
      - `$entity` 'slash_account_group', required
      - `id` string, required
      - `legalEntityId` string, required
      - `groupType` 'checking' | 'charge_card' | 'unsecured_charge_card' | 'savings' | 'global_usd', required
      - `accountType` 'consumer' | 'commercial', required
      - `groupName` string, required
      - `provider` 'bnk.dev' | 'stripe' | 'slash_stripe' | 'treasury_prime' | 'orum' | 'column' | 'slash' | 'privy' | 'alchemy' | 'bridge' | 'rain'
      - `currency` string, required
      - `accountNumber` string
      - `routingNumber` string
      - `lockedAt` string
      - `closedAt` string
      - `timestamp` string, required
      - `additionalData` object
        - `avsSettings` SlashfiModelsEntitySlashAccountGroupAvsAvsSettingsYaml
          - `avsMode` 'alwaysApprove' | 'proper' | 'custom', required
          - `constraints` SlashfiModelsEntitySlashAccountGroupAvsAvsConstraintYaml
            - `merchantCategoryRule` object
              - …
            - `merchantRule` object
              - …
            - `countryRestriction` object
              - …
            - `merchantCategoryCodeRule` object
              - …
          - `avsAddress` object
            - `addressLine1` string, required
            - `addressLine2` string
            - `city` string, required
            - `state` string, required
            - `zip` string, required
            - `country` string, required
    - object
      - `$entity` 'slash_wallet_account', required
      - `id` string, required — The ID of the slash wallet account
      - `slashWalletId` string, required — The ID of the slash wallet associated with this account
      - `chains` SlashfiModelsEnumsCryptoChainYaml[], required
      - `protocol` 'evm' | 'solana' — The protocol that this wallet account supports
      - `address` string, required — The blockchain address of the wallet account
      - `provider` 'privy' | 'alchemy' | 'bridge' | 'rain', required — The provider of the wallet account
      - `providerId` string, required — The ID of the entity on the provider's end
      - `createdAt` string, date-time — The timestamp when this wallet account was created
      - `timestamp` string, date-time, required — The timestamp when this record was last modified

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `429` — TooManyRequests
- `500` — Internal Error

---

[API](https://skmtc.net/slashfi/apis/slash-public-api.md) · [All operations](https://skmtc.net/slashfi/apis/slash-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/slashfi/slash-public-api/versions/773c90f079c5/schema)
