---
title: "Update income | Nuvio Docs"
description: "Updates an existing income"
url: https://nuvio.io/docs/api/update-income
---

# Update income

PUT `/v1/income/{id}`

Needs an API key with the [`update`](https://nuvio.io/docs/api/authentication#scopes) scope.

## Path parameters

-   `id` string Required

## Body parameters

-   `invoiceNumber` string

    Invoice number formatted in string. Accepts alpha numeric characters and '-' symbol.

-   `description` string

    Description of the income. This will also be its title in the Nuvio Platform.

-   `invoiceDate` string

    The date of the income. Should be formatted in `YYYY-MM-DD` format.

-   `dueDate` string

    Due date of the payment for this income. Should be formatted in `YYYY-MM-DD` format.

-   `currency` string

    3-letter currency code. You can find all the available currencies here.

-   `projectId` string

    32-character unique ID of the related project. If you don't know the ID, you can also provide `projectCode` instead of this field. If both of them are provided `projectId` will be used only.

-   `projectCode` string

    User-generated custom code of the related project. If `projectId` is also provided, it will override this field.

-   `customerId` string

    32-character unique ID of the customer. If you don't know the ID, you can also provide `customerCode` instead of this field. If both of them are provided, `customerId` will be used only.

-   `customerCode` string

    User-generated custom unique code of the specific customer. If `customerId` is also provided, it will override this field.

-   `tags` array of strings

    List of the tags that are related to this income. Provide a list of tags with their 32-character unique ID.

-   `items` array of objects

    List of the items that are sold in this income. This list will override existing list of items in the updated income. Do not just update 1 item, make sure to include all the items in your request.

    Show child parameters Hide child parameters

    -   `productId` string

        32-character unique ID of the product. If you don't know the ID, you can also provide `productCode` instead of this field. If both of them are provided, `productId` will be used only.

    -   `productCode` string

        User-generated custom unique code of the specific product. If `productId` is also provided, it will override this field.

    -   `quantity` integer

        Quantity of the sold items. It should be a positive integer.

    -   `itemTaxes` array of strings

        A list of the taxes to be applied to the related line item. Provide a list of taxes with their 32-character unique ID.

    -   `unitPrice` number

        Net Amount of a single product sold. Should be a positive decimal number with 2 decimal points. `eg. 32.43`

-   `exchangeRate` number

    If currency is different than your company's functional currency, this will be the exchange rate that Nuvio will use while converting the amounts of this expense to company's functional currency. Should be number with 4 decimal points. `eg. 32.4325`

## Returns

The updated income.

`401`

No usable `Authorization: Bearer {token}` header (1002).

`403`

The access token is unknown, or lacks the scope this route needs (1001).

PUT /v1/income/{id}

```
curl -X PUT https://api.nuvio.io/v1/income/7c9e6679-7425-40de-944b-e07fc1f90ae7 \
  -H "Authorization: Bearer $NUVIO_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "invoiceNumber": "INV-2026-0042",
    "description": "Office supplies",
    "invoiceDate": "2026-11-05",
    "dueDate": "2026-11-05",
    "currency": "USD",
    "projectId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "projectCode": "ACME-01",
    "customerId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "customerCode": "ACME-01",
    "tags": [
      "7c9e6679-7425-40de-944b-e07fc1f90ae7"
    ],
    "items": [
      {
        "productId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "productCode": "ACME-01",
        "quantity": 1,
        "itemTaxes": [
          "7c9e6679-7425-40de-944b-e07fc1f90ae7"
        ],
        "unitPrice": 100
      }
    ],
    "exchangeRate": 1
  }'
```

Response

```
{
  "success": true,
  "errors": null,
  "data": {
    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "invoiceNumber": "INV-2026-0042",
    "invoiceStatus": "Not Generated",
    "paymentStatus": "Pending",
    "description": "Office supplies",
    "dueDate": "2026-11-05",
    "invoiceDate": "2026-11-05",
    "currency": "USD",
    "exchangeRate": 1,
    "project": {
      "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "name": "Acme Supplies",
      "projectCode": "ACME-01"
    },
    "customer": {
      "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "name": "Acme Supplies",
      "entityCode": "ACME-01"
    },
    "tags": [
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "name": "Acme Supplies"
      }
    ],
    "subTotal": 100,
    "totalTax": 100,
    "totalAmount": 100,
    "remainingAmount": 100,
    "items": [
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "productCode": "ACME-01",
        "productId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "productName": "Acme Supplies",
        "quantity": 1,
        "unitPrice": 100,
        "totalTaxes": 100,
        "totalAmount": 100,
        "itemTaxes": [
          {
            "taxId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
            "taxName": "Acme Supplies",
            "taxAmount": 100
          }
        ]
      }
    ],
    "matchedPayments": [
      {
        "bankAccountId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "bankAccountName": "Acme Supplies",
        "transactionId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "amount": 100,
        "currency": "USD",
        "description": "Office supplies",
        "transactionDate": "2026-11-05"
      }
    ]
  }
}
```
