> 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.

# Retry a PSC Session

PUT https://api.sandbox.mangopay.com/v2.01/{ClientId}/identity-verifications/{IdvSessionId}/pscs/{PscId}/retry
Content-Type: application/json

Retry a PSC Session based on its `Id`. Send an empty body (`{}`) to use the existing details declared for the individual and only retry the liveness check, or else send updated details in the request body.

If the PSC's `Status` is `PENDING_VALIDATION`, the existing session link is returned. If the PSC's `Status` is `VALIDATED` or `REJECTED`, a new session link is generated. A PSC whose `Status` is `ABANDONED` cannot be retried. To add a missing PSC, contact Mangopay via the Dashboard, who will create the new PSC and provide you with a session link.

[Read more about the multi-session PSC flow](/guides/users/verification/hosted/business) **→**

Reference: https://docs.mangopay.com/api-reference/idv-sessions/retry-psc-session

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token. If your platform is using a [proxy](/guides/sca/proxy-management) to take SCA-triggering action on behalf of users, you also need to integrate [mTLS authentication](/guides/sca/platform) and use the `api-mtls` base URL.

## Servers

- `https://api.sandbox.mangopay.com` (Sandbox, default)
- `https://api.mangopay.com` (Production)
- `https://api-mtls.sandbox.mangopay.com` (mTLS Sandbox)
- `https://api-mtls.mangopay.com` (mTLS Production)

## Request

### Path parameters

- `ClientId` (string, required) — Platform's API account identifier, associated with the API key.
- `IdvSessionId` (string, required) — The unique identifier of the IDV Session.
- `PscId` (string, required) — The unique identifier of the PSC.

### Body (application/json)

This endpoint expects a RetryPscSessionRequest.

- `FirstName` (string, optional) — The first name of the PSC.
- `LastName` (string, optional) — The last name of the PSC.
- `Email` (string, optional) — The email address of the PSC.
- `DateOfBirth` (integer, optional) — Unix timestamp (UTC) of the date of birth of the PSC.

## Response

### 200

Success

- `Id` (string, optional) — The unique identifier of the PSC.
- `FirstName` (string, optional) — The first name of the PSC.
- `LastName` (string, optional) — The last name of the PSC.
- `Email` (string, optional) — The email address of the PSC.
- `DateOfBirth` (integer, optional) — Unix timestamp (UTC) of the date of birth of the PSC.
- `Country` (string, optional) — The country of the PSC (ISO 3166-1 alpha-2 format).
- `Nationality` (string, optional) — The nationality of the PSC (ISO 3166-1 alpha-2 format).
- `PscType` (string, optional) — The type of the PSC: - `LEGAL_REP` – The PSC is a legal representative only. - `LEGAL_REP_AND_UBO` – The PSC is both a legal representative and a beneficial owner. - `UBO` – The PSC is a beneficial owner only.
- `Status` (string, optional) — The status of the PSC session: - `PENDING_VALIDATION` – The PSC session link has been generated and is awaiting completion. - `VALIDATED` – The PSC session was validated. - `REJECTED` – One or more checks failed, or the PSC did not complete the verification within the allowed timeframe. By default, the PSC Session expires 7 days after its `CreationDate`, but if the PSC's liveness step has been started (the QR code was generated), it expires 1 hour after the liveness step started instead. - `ABANDONED` – The PSC session was abandoned by Mangopay, for example if it was a duplicate of another declared PSC.
- `CreationDate` (integer, optional) — Unix timestamp (UTC) of the date and time the object was created.
- `ValidationDate` (integer, optional, nullable) — Unix timestamp (UTC) of the date and time the PSC session was validated. Returns `null` if not yet validated.
- `HostedUrl` (string, optional) — The URL to redirect the PSC to for the hosted verification session.

## Errors

### 404 Not Found Error

Not Found

- `Message` (string, optional) — Description of the error.
- `Type` (string, optional) — The category of the error.
- `Id` (string, optional) — Unique identifier of the error instance, useful when contacting Mangopay for support.
- `Date` (double, optional) — Unix timestamp (UTC) of the date and time the error was triggered.
- `errors` (map from string to string, optional, nullable) — Object containing one or more field-level errors.

## Examples

### Default

**Request**

```json
{
  "body": {
    "DateOfBirth": 419904000,
    "Email": "john.doe@example.com",
    "FirstName": "John",
    "LastName": "Doe"
  }
}
```

**Response**

```json
{
  "Id": "psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD",
  "FirstName": "John",
  "LastName": "Doe",
  "Email": "john.doe@example.com",
  "DateOfBirth": 419904000,
  "Country": "FR",
  "Nationality": "FR",
  "PscType": "LEGAL_REP_AND_UBO",
  "Status": "PENDING_VALIDATION",
  "CreationDate": 1784279136,
  "ValidationDate": null,
  "HostedUrl": "https://user-verification.sandbox.mangopay.com/6a58df8c284bf54f4b788cae?sessionId=6a82c6c64000005f004d8716&theme={\\\"stepIconColor\\\"%3A\\\"%23867EFF\\\"%2C\\\"inputFieldBorderColor\\\"%3A\\\"%23867EFF\\\"%2C\\\"continueButtonValidColor\\\"%3A\\\"%2389E481\\\"%2C\\\"continueButtonInvalidColor\\\"%3A\\\"%2389E481\\\"%2C\\\"logo\\\"%3A\\\"https%3A%2F%2Fres.cloudinary.com%2Fmangopay-dev%2Fimage%2Fupload%2Fv1772722797%2Fmrebvcrkjgxnguvoelgj.png\\\"%2C\\\"logoPosition\\\"%3A\\\"top-right\\\"}"
}
```

**SDK Code**

```java Default
import com.mangopay.MangoPayApi;
import com.mangopay.entities.Psc;

public class RetryPscSession {
    public static void main(String[] args) throws Exception {
        MangoPayApi mangopay = new MangoPayApi();
        mangopay.getConfig().setClientId("your-client-id");
        mangopay.getConfig().setClientPassword("your-api-key");

        String identityVerificationId = "idnver_01KMD8R2W6XP8NYQBRTPGFFJGS";
        String pscId = "psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD";

        Psc psc = new Psc();
        psc.setFirstName("John");
        psc.setLastName("Doe");
        psc.setEmail("john.doe@example.com");
        psc.setDateOfBirth(419904000L);

        Psc result = mangopay.getIdentityVerificationApi().retryPsc(identityVerificationId, pscId, psc);
    }
}

```

```csharp Default
using System.Threading.Tasks;
using MangoPay.SDK;
using MangoPay.SDK.Entities.PUT;

class RetryPscSession
{
    static async Task Main(string[] args)
    {
        MangoPayApi api = new MangoPayApi();

        api.Config.ClientId = "your-client-id";
        api.Config.ClientPassword = "your-api-key";

        var identityVerificationId = "idnver_01KMD8R2W6XP8NYQBRTPGFFJGS";
        var pscId = "psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD";

        var psc = new PscRetryPutDTO
        {
            FirstName = "John",
            LastName = "Doe",
            Email = "john.doe@example.com",
            DateOfBirth = new DateTime(1983, 4, 23)
        };

        var result = await api.IdentityVerifications.RetryPscAsync(identityVerificationId, pscId, psc);
    }
}

```

```javascript Default
const mangopayInstance = require('mangopay4-nodejs-sdk');
const mangopay = new mangopayInstance({
    clientId: 'your-client-id',
    clientApiKey: 'your-api-key',
});

const identityVerificationId = 'idnver_01KMD8R2W6XP8NYQBRTPGFFJGS';
const pscId = 'psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD';

const pscDetails = {
    FirstName: 'John',
    LastName: 'Doe',
    Email: 'john.doe@example.com',
    DateOfBirth: 419904000,
};

const retryPscSession = async (identityVerificationId, pscId, pscDetails) => {
    return await mangopay.IdentityVerifications.retryPsc(identityVerificationId, pscId, pscDetails)
        .then((response) => {
            console.info(response);
            return response;
        })
        .catch((err) => {
            console.log(err);
            return false;
        });
};

retryPscSession(identityVerificationId, pscId, pscDetails);

```

```php Default
<?php

require_once 'vendor/autoload.php';

use MangoPay\Libraries\Exception as MGPException;
use MangoPay\Libraries\ResponseException as MGPResponseException;
use MangoPay\MangoPayApi;
use MangoPay\Psc;

$api = new MangoPayApi();

$api->Config->ClientId = 'your-client-id';
$api->Config->ClientPassword = 'your-api-key';
$api->Config->TemporaryFolder = 'tmp/';

try {
    $identityVerificationId = 'idnver_01KMD8R2W6XP8NYQBRTPGFFJGS';
    $pscId = 'psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD';

    $psc = new Psc();
    $psc->FirstName = 'John';
    $psc->LastName = 'Doe';
    $psc->Email = 'john.doe@example.com';
    $psc->DateOfBirth = 419904000;

    $response = $api->IdentityVerifications->RetryPsc($identityVerificationId, $pscId, $psc);

    print_r($response);
} catch (MGPResponseException $e) {
    print_r($e);
} catch (MGPException $e) {
    print_r($e);
}

```

```python Default
import mangopay

mangopay.client_id='your-client-id'
mangopay.apikey='your-api-key'

from mangopay.api import APIRequest
handler = APIRequest(sandbox=True)

from mangopay.resources import Psc

identity_verification_id = 'idnver_01KMD8R2W6XP8NYQBRTPGFFJGS'
psc_id = 'psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD'

result = Psc.retry(
    identity_verification_id,
    psc_id,
    first_name='John',
    last_name='Doe',
    email='john.doe@example.com',
    date_of_birth=419904000,
)

```

```ruby Default
require 'mangopay'

MangoPay.configure do |client|
  client.preproduction = true
  client.client_id = 'your-client-id'
  client.client_apiKey = 'your-api-key'
  client.log_file = File.join(Dir.pwd, 'mangopay.log')
end

def retry_psc_session(identity_verification_id, psc_id, psc_details)
  begin
    response = MangoPay::IdentityVerification.retry_psc(identity_verification_id, psc_id, psc_details)
    puts response
    return response
  rescue MangoPay::ResponseError => error
    puts "Failed to retry PSC session: #{error.message}"
    puts "Error details: #{error.details}"
    return false
  end
end

identity_verification_id = 'idnver_01KMD8R2W6XP8NYQBRTPGFFJGS'
psc_id = 'psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD'
psc_details = {
  "FirstName" => "John",
  "LastName" => "Doe",
  "Email" => "john.doe@example.com",
  "DateOfBirth" => 419904000
}

retry_psc_session(identity_verification_id, psc_id, psc_details)

```

### No changes

**Request**

```json
{
  "body": {}
}
```

**Response**

```json
{
  "Id": "psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD",
  "FirstName": "Alexis",
  "LastName": "Moreau",
  "Email": "alexis.moreau@example.com",
  "DateOfBirth": 419904000,
  "Country": "FR",
  "Nationality": "FR",
  "PscType": "UBO",
  "Status": "PENDING_VALIDATION",
  "CreationDate": 1784279136,
  "ValidationDate": null,
  "HostedUrl": "https://user-verification.sandbox.mangopay.com/6a58df8c284bf54f4b788cae?sessionId=6a82c7014000005f004d8722&theme={\\\"stepIconColor\\\"%3A\\\"%23867EFF\\\"%2C\\\"inputFieldBorderColor\\\"%3A\\\"%23867EFF\\\"%2C\\\"continueButtonValidColor\\\"%3A\\\"%2389E481\\\"%2C\\\"continueButtonInvalidColor\\\"%3A\\\"%2389E481\\\"%2C\\\"logo\\\"%3A\\\"https%3A%2F%2Fres.cloudinary.com%2Fmangopay-dev%2Fimage%2Fupload%2Fv1772722797%2Fmrebvcrkjgxnguvoelgj.png\\\"%2C\\\"logoPosition\\\"%3A\\\"top-right\\\"}"
}
```

**SDK Code**

```java No changes
import com.mangopay.MangoPayApi;
import com.mangopay.entities.Psc;

public class RetryPscSession {
    public static void main(String[] args) throws Exception {
        MangoPayApi mangopay = new MangoPayApi();
        mangopay.getConfig().setClientId("your-client-id");
        mangopay.getConfig().setClientPassword("your-api-key");

        String identityVerificationId = "idnver_01KMD8R2W6XP8NYQBRTPGFFJGS";
        String pscId = "psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD";

        Psc result = mangopay.getIdentityVerificationApi().retryPsc(identityVerificationId, pscId, null);
    }
}

```

```csharp No changes
using System.Threading.Tasks;
using MangoPay.SDK;

class RetryPscSession
{
    static async Task Main(string[] args)
    {
        MangoPayApi api = new MangoPayApi();

        api.Config.ClientId = "your-client-id";
        api.Config.ClientPassword = "your-api-key";

        var identityVerificationId = "idnver_01KMD8R2W6XP8NYQBRTPGFFJGS";
        var pscId = "psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD";

        var result = await api.IdentityVerifications.RetryPscAsync(identityVerificationId, pscId);
    }
}

```

```javascript No changes
const mangopayInstance = require('mangopay4-nodejs-sdk');
const mangopay = new mangopayInstance({
    clientId: 'your-client-id',
    clientApiKey: 'your-api-key',
});

const identityVerificationId = 'idnver_01KMD8R2W6XP8NYQBRTPGFFJGS';
const pscId = 'psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD';

const retryPscSession = async (identityVerificationId, pscId) => {
    return await mangopay.IdentityVerifications.retryPsc(identityVerificationId, pscId, {})
        .then((response) => {
            console.info(response);
            return response;
        })
        .catch((err) => {
            console.log(err);
            return false;
        });
};

retryPscSession(identityVerificationId, pscId);

```

```php No changes
<?php

require_once 'vendor/autoload.php';

use MangoPay\Libraries\Exception as MGPException;
use MangoPay\Libraries\ResponseException as MGPResponseException;
use MangoPay\MangoPayApi;

$api = new MangoPayApi();

$api->Config->ClientId = 'your-client-id';
$api->Config->ClientPassword = 'your-api-key';
$api->Config->TemporaryFolder = 'tmp/';

try {
    $identityVerificationId = 'idnver_01KMD8R2W6XP8NYQBRTPGFFJGS';
    $pscId = 'psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD';

    $response = $api->IdentityVerifications->RetryPsc($identityVerificationId, $pscId);

    print_r($response);
} catch (MGPResponseException $e) {
    print_r($e);
} catch (MGPException $e) {
    print_r($e);
}

```

```python No changes
import mangopay

mangopay.client_id='your-client-id'
mangopay.apikey='your-api-key'

from mangopay.api import APIRequest
handler = APIRequest(sandbox=True)

from mangopay.resources import Psc

identity_verification_id = 'idnver_01KMD8R2W6XP8NYQBRTPGFFJGS'
psc_id = 'psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD'

result = Psc.retry(identity_verification_id, psc_id)

```

```ruby No changes
require 'mangopay'

MangoPay.configure do |client|
  client.preproduction = true
  client.client_id = 'your-client-id'
  client.client_apiKey = 'your-api-key'
  client.log_file = File.join(Dir.pwd, 'mangopay.log')
end

def retry_psc_session(identity_verification_id, psc_id)
  begin
    response = MangoPay::IdentityVerification.retry_psc(identity_verification_id, psc_id)
    puts response
    return response
  rescue MangoPay::ResponseError => error
    puts "Failed to retry PSC session: #{error.message}"
    puts "Error details: #{error.details}"
    return false
  end
end

identity_verification_id = 'idnver_01KMD8R2W6XP8NYQBRTPGFFJGS'
psc_id = 'psc_x_01KXQN5Y7NYQBYBGA9ESQ8KBAD'

retry_psc_session(identity_verification_id, psc_id)

```