> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mangopay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ruby SDK

**Package:** <a href="https://rubygems.org/gems/mangopay4-ruby-sdk" target="_blank">mangopay4-ruby-sdk</a>

***

<div class="release-notes-cards">
  ## 3.49.0 - May 21, 2026

  <Card title="3.49.0 - May 21, 2026" href="/release-notes/sdk/ruby/3-49-0">
    <div class="pill pill-green">Added</div>

    * PayPal Deposit Preauthorizations
    * Pagination support for Recipients
    * Recurring PayIns for Google Pay and Apple Pay
    * New classes to improve naming for Recurring PayIn classes

    <div class="pill pill-orange">Deprecated</div>

    * Legacy recurring classes with card-specific names

    <div class="pill pill-blue">Fixed</div>

    * ReportV2.get\_all parameters
  </Card>

  ## 3.48.0 - Mar 30, 2026

  <Card title="3.48.0 - Mar 30, 2026" href="/release-notes/sdk/ruby/3-48-0">
    <div class="pill pill-red">Breaking change</div>

    * Payconiq PayIn removed following discontinuation
  </Card>
</div>

***

## 3.47.0 - Mar 23, 2026

### <div class="pill pill-green">Added</div>

#### Support for mTLS authentication

To support mTLS authentication for [SCA on platforms](/guides/sca/platform), which is required for platforms taking [SCA-triggering action under proxy](/guides/sca/proxy-management):

* Added `mtls_cert`, `mtls_key`, `mtls_key_passphrase` to the `apply_configuration` method
* Added `ssl_options` method which returns the existing ssl, timeout & retries config, but also appends mTLS configuration if needed
* Updated the requests logic to add the mTLS certificate if present
* Updated `README.md` file with details on [how to configure mTLS for the SDK](/guides/sca/platform#4-integrate-mtls-in-the-sdk)

**Note:** The SDK requires **TLS 1.2+** for TLS compliance, even for non-mTLS connections, in line with [Mangopay's security guidelines](/security#2-a-tls-and-https).

## 3.46.0 - Feb 12, 2026

### FX

### <div class="pill pill-red">Breaking change</div>

#### Custom fees

To support percentage-based FX fees ([API release note](/release-notes/api/2026-02-11)):

* Updated tests to check for conversion custom fees and user margins

### Echo

### <div class="pill pill-red">Breaking change</div>

#### Settlement upload endpoints

To support the new behavior of the [POST Create a Settlement](/api-reference/settlements/create-settlement) endpoint to obtain an `UploadUrl`:

* Updated `settlement_sample.csv` and tests

<Warning>
  **Caution - Breaking change**

  * Replaced `upload` method in `Settlement` with `generate_upload_url`:

  ```ruby Ruby theme={null}
  MangoPay::Settlement.generate_upload_url({FileName: 'settlement_sample.csv'})
  ```
</Warning>

<Warning>
  **Caution - Breaking change**

  * Replace `update` method in `Settlement` with: `generate_new_upload_url`

  ```ruby Ruby theme={null}
   MangoPay::Settlement.generate_new_upload_url(@settlement['SettlementId'], {FileName: 'settlement_sample.csv'})
  ```
</Warning>

### <div class="pill pill-green">Added</div>

#### GET validations for a Settlement endpoint

To support the [GET View validations for a Settlement](/api-reference/settlements/view-settlement-validations) endpoint:

* Added `get_validations`method to `Settlement`

```ruby Ruby theme={null}
MangoPay::Settlement.get_validations(@settlement['SettlementId'], {page: 1, per_page: 10})
```

#### PUT Cancel a Settlement endpoint

To support the [PUT Cancel a Settlement](/api-reference/settlements/cancel-settlement) endpoint:

* Changes: added `cancel` method to `Settlement`

```ruby Ruby theme={null}
MangoPay::Settlement.cancel(@settlement['SettlementId'])
```

#### POST Create an Intent Refund

To support [POST Create an Intent Refund](/api-reference/intents/create-intent-refund):

* Added `create` method to `Refund`

```ruby Ruby theme={null}
MangoPay::PayIn::PayInIntent::Refund.create(intent['Id'], dto)
```

#### POST Reverse an Intent Refund

To support [POST Reverse an Intent Refund](/api-reference/intents/create-intent-refund):

* Added `reverse` method to `Refund`

```ruby Ruby theme={null}
MangoPay::PayIn::PayInIntent::Refund.reverse(intent['Id'], intent['Refund']['Id'], dto)
```

#### POST Create an Intent Dispute

To support [POST Create an Intent Dispute](/api-reference/intents/create-intent-refund):

* Added `create` method to `Dispute`

```ruby Ruby theme={null}
MangoPay::PayIn::PayInIntent::Dispute.create(intent['Id'], intent['Capture']['Id'], dto)
```

#### PUT Update an Intent Dispute

To support [PUT Update an Intent Dispute](/api-reference/intents/create-intent-dispute):

* Added `update_outcome` method to `Dispute`

```ruby Ruby theme={null}
MangoPay::PayIn::PayInIntent::Dispute.update_outcome(intent['Id'], intent['Capture']['Id'], intent['Dispute']['Id'], dto)
```

## 3.45.0 - Jan 30, 2025

### <div class="pill pill-green">Added</div>

#### Support for new SCA status endpoint

The SDK now supports the new [GET View the SCA status of a User](/api-reference/users/view-user-sca-status) endpoint.

Added new method to lib/mangopay/user.rb:

```ruby Ruby theme={null}
def get_sca_status(user_id, filters = {})
       MangoPay.request(:get, "#{MangoPay.api_path}/sca/users/#{user_id}/sca-status", {}, filters)
     end
```

Corresponding tests updated.

## 3.44.0 - Nov 28, 2025

### <div class="pill pill-orange">Changed</div>

* Migrated to V4 naming convention

## 3.43.0 - Nov 19, 2025

### <div class="pill pill-green">Added</div>

First batch of endpoints for direct acquiring solution (in private beta).

## 3.42.1 - Nov 6, 2025

### Improved

* Support for case variations in error handler

## 3.42.0 - Oct 27, 2025

### <div class="pill pill-green">Added</div>

* New [POST Manage proxy consent for a User](/api-reference/users/manage-proxy-consent) endpoint to obtain and manage user consent via the hosted SCA experience (if proxy is activated). A proxy and user consent are now required to use the `USER_NOT_PRESENT` value for `ScaContext` ([API release note](/release-notes/api/2025-10-23))

### <div class="pill pill-orange">Changed</div>

* `x-tenant-id` deprecated as no longer necessary for UK platforms; the parameter is ignored by Mangopay

## 3.41.1 - Oct 10, 2025

### <div class="pill pill-green">Added</div>

* Configuration for `after_request_proc` to be able to check rate limits post-request

## 3.41.0 - Oct 1, 2025

### <div class="pill pill-green">Added</div>

* Support for the [POST Cancel an Intent](/api-reference/intents/cancel-intent) endpoint for [Echo](/guides/echo), Mangopay's solution for platforms working with another third-party PSP for funds acquisition
* Support for [POST Submit data for a PayPal PayIn](/api-reference/paypal/submit-data-paypal-payin) endpoint

## 3.40.2 - Sep 2, 2025

### <div class="pill pill-orange">Changed</div>

* OAuth token refresh buffer before expiry updated to 30s

### <div class="pill pill-blue">Fixed</div>

* Tests #302

## 3.40.1 - Aug 14, 2025

### <div class="pill pill-green">Added</div>

* Support for [POST Create a Quoted Conversion between Client Wallets](/api-reference/conversions/create-quoted-conversion-client-wallets) and [POST Create an Instant Conversion between Client Wallets](/api-reference/conversions/create-instant-conversion-client-wallets)
* Support for [POST Create a Bank Wire to the Repudiation Wallet](/api-reference/dispute-settlement/create-bank-wire-payin-to-repudiation-wallet)

## 3.40.0 - Aug 7, 2025

### <div class="pill pill-green">Added</div>

Support for new Splits endpoints for Echo ([API release note](/release-notes/api/2025-07-16)):

* [PUT Update an Intent Split](/api-reference/intents/update-intent-split)
* [POST Execute an Intent Split](/api-reference/intents/execute-intent-split)
* [POST Reverse an Intent Split](/api-reference/intents/reverse-intent-split)
* [GET View an Intent Split](/api-reference/intents/view-intent-split)

New `ReportTypes` for Echo ([API release note](/release-notes/api/2025-08-06)):

* `ECHO_INTENT`
* `ECHO_INTENT_ACTION`
* `ECHO_SETTLEMENT`
* `ECHO_SPLIT`

## 3.39.1 - Jul 28, 2025

### <div class="pill pill-green">Added</div>

* support for new endpoint [View supported banks for Pay by Bank](/api-reference/pay-by-bank/view-supported-banks-pay-by-bank), to enable presentation of banks to user before Pay by Bank payment request

## 3.39.0 - Jul 18, 2025

### <div class="pill pill-green">Added</div>

Endpoints for [Mangopay Echo](/guides/echo), a solution for platforms working with another third-party PSP for funds acquisition (including via the Mirakl Connector):

* [POST Create an Intent](/api-reference/intents/create-intent)
* [GET View an Intent](/api-reference/intents/view-intent)
* [POST Create a Capture for an Intent](/api-reference/intents/create-intent-capture)
* [POST Create a Settlement](/api-reference/settlements/create-settlement)
* [PUT Update a Settlement](/api-reference/settlements/update-settlement)
* [GET View a Settlement](/api-reference/settlements/view-settlement)
* [POST Create an Intent Split](/api-reference/intents/create-intent-split)

## 3.38.0 - Jul 2, 2025

### <div class="pill pill-green">Added</div>

* New endpoint [POST Create a Bizum PayIn](/api-reference/bizum/create-bizum-payin)
* New webhook event types for SCA enrollment ([API release note](/release-notes/api/2025-06-23)), note that these are triggered on enrollment not authentication:
  * `SCA_ENROLLMENT_SUCCEEDED`
  * `SCA_ENROLLMENT_FAILED`
  * `SCA_ENROLLMENT_EXPIRED`
* New webhook event types for `UserCategory` change ([API release note](/release-notes/api/2025-06-23)):
  * `USER_CATEGORY_UPDATED_TO_OWNER`
  * `USER_CATEGORY_UPDATED_TO_PAYER`
  * `USER_CATEGORY_UPDATED_TO_PLATFORM`
* Support for `PLATFORM` value to `UserCategory` enum

## 3.37.0 - Jun 24, 2025

### <div class="pill pill-orange">Changed</div>

* `multi_json` library version updated to 1.15.0 (latest, release 2020) to enable compatibility with later versions of Ruby

> ⚠️ **Caution - Breaking change**
>
> If you use version 1.7.7 (2013) of the `multi_json` [gem](https://rubygems.org/gems/multi_json/versions/1.15.0) in your project, you need to update to 1.15.0 to use this version v3.37.0 of the Mangopay Ruby SDK

## 3.36.0 - Jun 24, 2025

### <div class="pill pill-green">Added</div>

[New Reporting Service](/release-notes/api/2025-06-05) endpoints:

* [POST Create a Report](/api-reference/reporting/create-report)
* [GET View a Report](/api-reference/reporting/view-report)
* [GET List all Reports](/api-reference/reporting/list-reports)

Support for:

* [GET List Disputes for a PayIn](/api-reference/disputes/list-disputes-payin)
* [GET List Transactions for a Card Fingerprint](/api-reference/transactions/list-transactions-card-fingerprint)

## 3.35.1 - Jun 5, 2025

### <div class="pill pill-green">Added</div>

* Support for `RecipientScope` query parameter on [GET List Recipients for a User](/api-reference/recipients/list-recipients-user)
* [POST Validate the format of User data](/api-reference/user-data-format/validate-user-data-format)

### <div class="pill pill-blue">Fixed</div>

* Support for legacy Payconiq integration via `MangoPay::PayIn::Payconiq::Web.create_legacy` (removed in error).
