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

# Update an Invoice

`PUT /{invoice_id}`

## 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.net/tap/apis/authorize.md) · [All operations](https://skmtc.net/tap/apis/authorize/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tap/authorize/versions/86f4d9b29db0/schema)
