> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.mangopay.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mangopay.com/_mcp/server.

# Ruby SDK - 5.0.0

November 4, 2026

> **Warning**
>
> **Caution – Major version change for possible breaking changes**
>
> The technical improvements in this release are minor but could potentially have an impact on your integration. They are therefore being released in a major version increase to ensure that you test your integration before upgrading in Production.

## Changed – Potentially breaking

### GET and DELETE requests no longer send a request body

Previously, every request sent the JSON-encoded `params` as its body, regardless of the HTTP method. Since `params` defaults to `{}`, GET and DELETE requests went out with a body of `{}` (`Content-Length: 2`).

The body is now only attached for methods that allow one (POST, PUT, PATCH), using Ruby's built-in `Net::HTTPGenericRequest#request_body_permitted?`.

This affects:

* **`params` passed to a GET or DELETE call are no longer sent.** Pass query parameters as `filters` (the 4th argument) instead: `MangoPay.request(:get, url, {}, filters)`.
* **`before_request_proc` now receives `req.body == nil`** for GET and DELETE (previously `"{}"`). Code that parses the body (e.g. `JSON.parse(req.body)`) must handle `nil` – this could be potentially breaking, but it is unlikely.
* **Request log lines for GET and DELETE no longer show `{}` as the request params** — the line now ends right after the quoted URL. POST, PUT, and PATCH log lines are unchanged.
* **Test stubs matching GET or DELETE requests on `body: "{}"`** (for example with WebMock or VCR) no longer match, and need updating or re-recording.

---

## Changed – Potentially breaking

### Unused `request_multipart` method removed

The `MangoPay.request_multipart` method has been removed from `lib/mangopay.rb`, as it was no longer called anywhere in the SDK. It was a public method — if your code calls it directly, it now raises `NoMethodError`, which could be a breaking change.

---

## Changed

### Sandbox credentials for the test suite are now required environment variables

If you clone the SDK repository to run its test suite, you now need to set Sandbox credentials as environment variables:

* `MANGOPAY_CLIENT_ID` – Your Sandbox `ClientId`
* `MANGOPAY_CLIENT_PASSWORD` – Your Sandbox API key

There is a second set of variables for the token-isolation test. The suite fails with a clear error if any required variable is missing.

---

## Added

### List PSCs of a legal user

New `MangoPay::User.get_pscs` method, calling the [GET List PSC Sessions for a User](/api-reference/idv-sessions/list-psc-sessions-user) endpoint, to fetch the list of PSCs (persons with significant control) of a legal user.

For more details, see the [API release note](/release-notes/api/2026-11-04) **→**

---