---
title: "Changes to Bulk payment actions"
method: POST
path: "/api/v1/payments/bulk"
---

# Changes to Bulk payment actions

`POST /api/v1/payments/bulk`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 16 of 90 revisions.

- **2026-04-20** `69a36036d334`: 2 info
- **2025-11-22** `00ad5cc89fad`: 8 info
- **2025-05-24** `93bb427f804b`: 2 warning, 21 info
- **2025-05-23** `783f03909c3a`: 21 warning, 2 info
- **2025-03-23** `889dafb290e3`: 1 breaking, 33 warning
- **2025-03-23** `bced1c13f44d`: 1 breaking
- **2024-06-06** `8e82a2bd77e0`: 2 breaking, 23 info
- **2024-06-05** `e61df65649e2`: 2 breaking, 23 warning
- **2024-06-05** `4ca478d85068`: 1 breaking
- **2024-03-17** `55395a659979`: 1 breaking
- **2024-03-07** `71171a40d629`: 6 breaking, 30 info
- **2024-02-18** `88bbc1f38ff7`: 6 breaking, 30 warning
- **2024-02-10** `4ad0fff44c6c`: 5 info
- **2024-01-24** `9dab078a46b5`: 1 info
- **2024-01-20** `70cd94370516`: 1 breaking
- **2023-07-08** `627936439128`: 5 breaking

## Changes

- **2026-04-20** `69a36036d334`: 2 info
  - the response optional property `id` became read-only for the status `200`
  - the response optional property `paymentables/id` became read-only for the status `200`
- **2025-11-22** `00ad5cc89fad`: 8 info
  - added the optional property `category_id` to the response with the `200` status
  - added the optional property `custom_value1` to the response with the `200` status
  - added the optional property `custom_value2` to the response with the `200` status
  - added the optional property `custom_value3` to the response with the `200` status
  - added the optional property `custom_value4` to the response with the `200` status
  - added the optional property `exchange_currency_id` to the response with the `200` status
  - added the optional property `exchange_rate` to the response with the `200` status
  - added the optional property `idempotency_key` to the response with the `200` status
- **2025-05-24** `93bb427f804b`: 2 warning, 21 info
  - removed the optional property `data` from the response with the `200` status
  - removed the optional property `meta` from the response with the `200` status
  - added the optional property `amount` to the response with the `200` status
  - added the optional property `archived_at` to the response with the `200` status
  - added the optional property `assigned_user_id` to the response with the `200` status
  - added the optional property `client_contact_id` to the response with the `200` status
  - added the optional property `client_id` to the response with the `200` status
  - added the optional property `company_gateway_id` to the response with the `200` status
  - added the optional property `credits` to the response with the `200` status
  - added the optional property `date` to the response with the `200` status
  - added the optional property `id` to the response with the `200` status
  - added the optional property `invitation_id` to the response with the `200` status
  - added the optional property `invoices` to the response with the `200` status
  - added the optional property `is_deleted` to the response with the `200` status
  - added the optional property `is_manual` to the response with the `200` status
  - added the optional property `number` to the response with the `200` status
  - added the optional property `paymentables` to the response with the `200` status
  - added the optional property `private_notes` to the response with the `200` status
  - added the optional property `refunded` to the response with the `200` status
  - added the optional property `transaction_reference` to the response with the `200` status
  - added the optional property `type_id` to the response with the `200` status
  - added the optional property `updated_at` to the response with the `200` status
  - added the optional property `user_id` to the response with the `200` status
- **2025-05-23** `783f03909c3a`: 21 warning, 2 info
  - removed the optional property `amount` from the response with the `200` status
  - removed the optional property `archived_at` from the response with the `200` status
  - removed the optional property `assigned_user_id` from the response with the `200` status
  - removed the optional property `client_contact_id` from the response with the `200` status
  - removed the optional property `client_id` from the response with the `200` status
  - removed the optional property `company_gateway_id` from the response with the `200` status
  - removed the optional property `credits` from the response with the `200` status
  - removed the optional property `date` from the response with the `200` status
  - removed the optional property `id` from the response with the `200` status
  - removed the optional property `invitation_id` from the response with the `200` status
  - removed the optional property `invoices` from the response with the `200` status
  - removed the optional property `is_deleted` from the response with the `200` status
  - removed the optional property `is_manual` from the response with the `200` status
  - removed the optional property `number` from the response with the `200` status
  - removed the optional property `paymentables` from the response with the `200` status
  - removed the optional property `private_notes` from the response with the `200` status
  - removed the optional property `refunded` from the response with the `200` status
  - removed the optional property `transaction_reference` from the response with the `200` status
  - removed the optional property `type_id` from the response with the `200` status
  - removed the optional property `updated_at` from the response with the `200` status
  - removed the optional property `user_id` from the response with the `200` status
  - added the optional property `data` to the response with the `200` status
  - added the optional property `meta` to the response with the `200` status
- **2025-03-23** `889dafb290e3`: 1 breaking, 33 warning
  - the `type_id` response's property type changed from `integer` to `string` for status `200`
  - added the new `1` enum value to the `type_id` response property for the response status `200`
  - added the new `10` enum value to the `type_id` response property for the response status `200`
  - added the new `11` enum value to the `type_id` response property for the response status `200`
  - added the new `12` enum value to the `type_id` response property for the response status `200`
  - added the new `13` enum value to the `type_id` response property for the response status `200`
  - added the new `14` enum value to the `type_id` response property for the response status `200`
  - added the new `15` enum value to the `type_id` response property for the response status `200`
  - added the new `16` enum value to the `type_id` response property for the response status `200`
  - added the new `17` enum value to the `type_id` response property for the response status `200`
  - added the new `18` enum value to the `type_id` response property for the response status `200`
  - added the new `19` enum value to the `type_id` response property for the response status `200`
  - added the new `2` enum value to the `type_id` response property for the response status `200`
  - added the new `20` enum value to the `type_id` response property for the response status `200`
  - added the new `21` enum value to the `type_id` response property for the response status `200`
  - added the new `22` enum value to the `type_id` response property for the response status `200`
  - added the new `23` enum value to the `type_id` response property for the response status `200`
  - added the new `24` enum value to the `type_id` response property for the response status `200`
  - added the new `25` enum value to the `type_id` response property for the response status `200`
  - added the new `26` enum value to the `type_id` response property for the response status `200`
  - added the new `27` enum value to the `type_id` response property for the response status `200`
  - added the new `28` enum value to the `type_id` response property for the response status `200`
  - added the new `29` enum value to the `type_id` response property for the response status `200`
  - added the new `3` enum value to the `type_id` response property for the response status `200`
  - added the new `30` enum value to the `type_id` response property for the response status `200`
  - added the new `31` enum value to the `type_id` response property for the response status `200`
  - added the new `32` enum value to the `type_id` response property for the response status `200`
  - added the new `33` enum value to the `type_id` response property for the response status `200`
  - added the new `4` enum value to the `type_id` response property for the response status `200`
  - added the new `5` enum value to the `type_id` response property for the response status `200`
  - added the new `6` enum value to the `type_id` response property for the response status `200`
  - added the new `7` enum value to the `type_id` response property for the response status `200`
  - added the new `8` enum value to the `type_id` response property for the response status `200`
  - added the new `9` enum value to the `type_id` response property for the response status `200`
- **2025-03-23** `bced1c13f44d`: 1 breaking
  - the `type_id` response's property type changed from `string` to `integer` for status `200`
- **2024-06-06** `8e82a2bd77e0`: 2 breaking, 23 info
  - the response's body type changed from no type to `object` for status `200`
  - the response's body type changed from no type to `object` for status `default`
  - added the optional property `amount` to the response with the `200` status
  - added the optional property `archived_at` to the response with the `200` status
  - added the optional property `assigned_user_id` to the response with the `200` status
  - added the optional property `client_contact_id` to the response with the `200` status
  - added the optional property `client_id` to the response with the `200` status
  - added the optional property `code` to the response with the `default` status
  - added the optional property `company_gateway_id` to the response with the `200` status
  - added the optional property `credits` to the response with the `200` status
  - added the optional property `date` to the response with the `200` status
  - added the optional property `id` to the response with the `200` status
  - added the optional property `invitation_id` to the response with the `200` status
  - added the optional property `invoices` to the response with the `200` status
  - added the optional property `is_deleted` to the response with the `200` status
  - added the optional property `is_manual` to the response with the `200` status
  - added the optional property `message` to the response with the `default` status
  - added the optional property `number` to the response with the `200` status
  - added the optional property `paymentables` to the response with the `200` status
  - added the optional property `private_notes` to the response with the `200` status
  - added the optional property `refunded` to the response with the `200` status
  - added the optional property `transaction_reference` to the response with the `200` status
  - added the optional property `type_id` to the response with the `200` status
  - added the optional property `updated_at` to the response with the `200` status
  - added the optional property `user_id` to the response with the `200` status
- **2024-06-05** `e61df65649e2`: 2 breaking, 23 warning
  - the response's body type changed from `object` to no type for status `200`
  - the response's body type changed from `object` to no type for status `default`
  - removed the optional property `amount` from the response with the `200` status
  - removed the optional property `archived_at` from the response with the `200` status
  - removed the optional property `assigned_user_id` from the response with the `200` status
  - removed the optional property `client_contact_id` from the response with the `200` status
  - removed the optional property `client_id` from the response with the `200` status
  - removed the optional property `code` from the response with the `default` status
  - removed the optional property `company_gateway_id` from the response with the `200` status
  - removed the optional property `credits` from the response with the `200` status
  - removed the optional property `date` from the response with the `200` status
  - removed the optional property `id` from the response with the `200` status
  - removed the optional property `invitation_id` from the response with the `200` status
  - removed the optional property `invoices` from the response with the `200` status
  - removed the optional property `is_deleted` from the response with the `200` status
  - removed the optional property `is_manual` from the response with the `200` status
  - removed the optional property `message` from the response with the `default` status
  - removed the optional property `number` from the response with the `200` status
  - removed the optional property `paymentables` from the response with the `200` status
  - removed the optional property `private_notes` from the response with the `200` status
  - removed the optional property `refunded` from the response with the `200` status
  - removed the optional property `transaction_reference` from the response with the `200` status
  - removed the optional property `type_id` from the response with the `200` status
  - removed the optional property `updated_at` from the response with the `200` status
  - removed the optional property `user_id` from the response with the `200` status
- **2024-06-05** `4ca478d85068`: 1 breaking
  - the `invoices/items/` response's property type changed from no type to `object` for status `200`
- **2024-03-17** `55395a659979`: 1 breaking
  - the `invoices/items/` response's property type changed from `object` to no type for status `200`
- **2024-03-07** `71171a40d629`: 6 breaking, 30 info
  - the response's body type changed from no type to `object` for status `200`
  - the response's body type changed from no type to `object` for status `401`
  - the response's body type changed from no type to `object` for status `403`
  - the response's body type changed from no type to `object` for status `422`
  - the response's body type changed from no type to `object` for status `429`
  - the response's body type changed from no type to `object` for status `default`
  - added the optional property `amount` to the response with the `200` status
  - added the optional property `archived_at` to the response with the `200` status
  - added the optional property `assigned_user_id` to the response with the `200` status
  - added the optional property `client_contact_id` to the response with the `200` status
  - added the optional property `client_id` to the response with the `200` status
  - added the optional property `code` to the response with the `default` status
  - added the optional property `company_gateway_id` to the response with the `200` status
  - added the optional property `credits` to the response with the `200` status
  - added the optional property `date` to the response with the `200` status
  - added the optional property `errors` to the response with the `403` status
  - added the optional property `errors` to the response with the `422` status
  - added the optional property `errors` to the response with the `429` status
  - added the optional property `id` to the response with the `200` status
  - added the optional property `invitation_id` to the response with the `200` status
  - added the optional property `invoices` to the response with the `200` status
  - added the optional property `is_deleted` to the response with the `200` status
  - added the optional property `is_manual` to the response with the `200` status
  - added the optional property `message` to the response with the `401` status
  - added the optional property `message` to the response with the `403` status
  - added the optional property `message` to the response with the `422` status
  - added the optional property `message` to the response with the `429` status
  - added the optional property `message` to the response with the `default` status
  - added the optional property `number` to the response with the `200` status
  - added the optional property `paymentables` to the response with the `200` status
  - added the optional property `private_notes` to the response with the `200` status
  - added the optional property `refunded` to the response with the `200` status
  - added the optional property `transaction_reference` to the response with the `200` status
  - added the optional property `type_id` to the response with the `200` status
  - added the optional property `updated_at` to the response with the `200` status
  - added the optional property `user_id` to the response with the `200` status
- **2024-02-18** `88bbc1f38ff7`: 6 breaking, 30 warning
  - the response's body type changed from `object` to no type for status `200`
  - the response's body type changed from `object` to no type for status `401`
  - the response's body type changed from `object` to no type for status `403`
  - the response's body type changed from `object` to no type for status `422`
  - the response's body type changed from `object` to no type for status `429`
  - the response's body type changed from `object` to no type for status `default`
  - removed the optional property `amount` from the response with the `200` status
  - removed the optional property `archived_at` from the response with the `200` status
  - removed the optional property `assigned_user_id` from the response with the `200` status
  - removed the optional property `client_contact_id` from the response with the `200` status
  - removed the optional property `client_id` from the response with the `200` status
  - removed the optional property `code` from the response with the `default` status
  - removed the optional property `company_gateway_id` from the response with the `200` status
  - removed the optional property `credits` from the response with the `200` status
  - removed the optional property `date` from the response with the `200` status
  - removed the optional property `errors` from the response with the `403` status
  - removed the optional property `errors` from the response with the `422` status
  - removed the optional property `errors` from the response with the `429` status
  - removed the optional property `id` from the response with the `200` status
  - removed the optional property `invitation_id` from the response with the `200` status
  - removed the optional property `invoices` from the response with the `200` status
  - removed the optional property `is_deleted` from the response with the `200` status
  - removed the optional property `is_manual` from the response with the `200` status
  - removed the optional property `message` from the response with the `401` status
  - removed the optional property `message` from the response with the `403` status
  - removed the optional property `message` from the response with the `422` status
  - removed the optional property `message` from the response with the `429` status
  - removed the optional property `message` from the response with the `default` status
  - removed the optional property `number` from the response with the `200` status
  - removed the optional property `paymentables` from the response with the `200` status
  - removed the optional property `private_notes` from the response with the `200` status
  - removed the optional property `refunded` from the response with the `200` status
  - removed the optional property `transaction_reference` from the response with the `200` status
  - removed the optional property `type_id` from the response with the `200` status
  - removed the optional property `updated_at` from the response with the `200` status
  - removed the optional property `user_id` from the response with the `200` status
- **2024-02-10** `4ad0fff44c6c`: 5 info
  - added the media type `application/json` for the response with the status `401`
  - added the media type `application/json` for the response with the status `403`
  - added the media type `application/json` for the response with the status `422`
  - added the media type `application/json` for the response with the status `429`
  - added the media type `application/json` for the response with the status `default`
- **2024-01-24** `9dab078a46b5`: 1 info
  - endpoint added
- **2024-01-20** `70cd94370516`: 1 breaking
  - api path removed without deprecation
- **2023-07-08** `627936439128`: 5 breaking
  - removed the media type `application/json` for the response with the status `401`
  - removed the media type `application/json` for the response with the status `403`
  - removed the media type `application/json` for the response with the status `422`
  - removed the media type `application/json` for the response with the status `429`
  - removed the media type `application/json` for the response with the status `default`

---

[Operation](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/docs/api/v1/payments/bulk/post.md) - [API](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference.md) - [Page](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/changes/api/v1/payments/bulk/post)
