---
title: "Update an Invoice"
method: PUT
path: "/{invoice_id}"
---

# Update an Invoice

`PUT /{invoice_id}`

## Request

- Base URL: `https://api.tap.company/v2/invoices`
- URL: `https://api.tap.company/v2/invoices/{invoice_id}`
- Auth: API key in header `Authorization`

## Path parameters

- `invoice_id` string, required

## Headers

- `lang_code` string

## Request body

- object
  - `draft` boolean: Merchant can save the invoice without creating the actual invoice. The default value will be false.
  - `due` integer, required: Invoice Due Date; measured in seconds since the Unix epoch.
  - `expiry` integer, required: Invoice Expiry Date; measured in seconds since the Unix epoch.
  - `description` string: Invoice description
  - `mode` string: Invoice mode- how the invoice page is showed to customers (INVOICE - Open invoice page, PAY - Open payment page, INVOICEPAY - Open invoice page and payment page.
  - `note` string: It will be added in the invoice footer.
  - `notifications` object: Notification object. By default, the invoice will be dispatched automatically.
    - `channels` string[]: Notifications channels (SMS , EMAIL)
    - `dispatch` boolean: Merchant can specify the field, dispatch the invoice or not.
  - `channels` string[]: Notifications channels.
  - `dispatch` boolean: Merchant can specify the field, dispatch the invoice or not.
  - `currencies` string[]: Charge currency object. If you pass null or empty, all currencies will show.
  - `metadata` object: Set of key/value pairs that you can attach to an object. It can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.
    - `udf1` string
    - `udf2` string
    - `udf3` string
  - `charge` object: Charge Object
    - `receipt` object: Payment Receipt object.
      - `email` boolean: Receipt email to customer.
      - `sms` boolean: Receipt SMS to customer.
    - `statement_descriptor` string: Payer Statement Descriptor.
  - `customer` object, required: Customer object; Either customer ID or customer information is required.
    - `id` string: Customer Unique Identifier, Provided by Tap.
    - `first_name` string: Customer first name.
    - `last_name` string: Customer last name.
    - `email` string: Customer email.
    - `phone` object: Customer phone object.
      - `country_code` string: Phone country code, (sample - 965)
      - `number` string: Phone number
  - `order` object, required: Order Object; Either order id or order information is required.
    - `amount` integer: Order amount.
    - `currency` string: Order currency, it will be the invoice currency.
    - `items` object[]: Item Object.
      - `product_id` string: Product id
      - `amount` integer: Item amount
      - `currency` string: Item currency
      - `name` string
      - `description` string: Item description
      - `discount` object
      - `quantity` integer: item quantity
    - `shipping` object
    - `tax` unknown[]: List of taxes.
      - unknown
  - `payment_methods` string[]: Charge payment method object, if you pass null or empty, then all payment methods will show.
  - `post` object: Post url object.
    - `url` string: Once invoice paid, invoice response will be posted to this url.
  - `redirect` object: Redirect url object.
    - `url` string: Once invoice paid, Payer will be redirected to this url.
  - `reference` object: Merchant reference object.
    - `invoice` string
    - `order` string
  - `invoicer` object: Email notification to merchant.
    - `to` string: To email address (if its more than email address, should be separated with semicolon ;)
    - `cc` string: Cc email address (if its more than email address, should be separated with semicolon ;)
    - `bcc` string: Bcc email address (if its more than email address, should be separated with semicolon ;)
  - `payment_provider` object: Information about the payment provider associated with this invoice
    - `technology` object: Information about the payment provider technology associated with this invoice
      - `id` string: The technology ID provided by Tap

## Response `200`

200

- object

## Other responses

- `400`: 400

---

[API](https://skmtc.dev/tap/apis/invoices.md) - [All operations](https://skmtc.dev/tap/apis/invoices/llms.txt) - [OpenAPI document](https://skmtc.dev/tap/apis/invoices/revisions/cbf5bdc1152b?raw)
