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

# Create a Settlement Transfer

### Path parameters

<ParamField path="RepudiationId" type="string" required>
  The unique identifier of the repudiation.
</ParamField>

### Body parameters

<ParamField body="AuthorId" type="string" required>
  The unique identifier of the user at the source of the transaction.
</ParamField>

<ParamField body="DebitedFunds" type="object" required>
  Information about the debited funds. Please note that:

  * The `Currency` must be identical to that of the initial transaction.
  * The `Amount` cannot exceed the initial’s transaction minus the fees.

  <Expandable title="properties">
    <ParamField body="Currency" type="string" required>
      **Allowed values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).

      The currency of the funds.
    </ParamField>

    <ParamField body="Amount" type="integer" required>
      An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`).
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="Fees" type="object" required>
  Information about the fees. Please note that:

  * The `Currency` must be identical to that of the initial transaction.
  * The `Amount` cannot exceed the initial’s transaction.

  <Expandable title="properties">
    <ParamField body="Currency" type="string" required>
      **Allowed values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).

      The currency of the fees.
    </ParamField>

    <ParamField body="Amount" type="integer" required>
      An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`).
    </ParamField>
  </Expandable>
</ParamField>

### Responses

<AccordionGroup>
  <Accordion title="200">
    <ResponseField name="Id" type="string">
      Max length: 128 characters (see [data formats](/api-reference/overview/data-formats) for details)

      The unique identifier of the object.
    </ResponseField>

    <ResponseField name="Tag" type="string">
      Max. length: 255 characters

      Custom data that you can add to this object.\
      For transactions (pay-in, transfer, payout), you can use this parameter to identify corresponding information regarding the user, transaction, or payment methods on your platform.
    </ResponseField>

    <ResponseField name="CreationDate" type="Unix timestamp">
      The date and time at which the object was created.
    </ResponseField>

    <ResponseField name="ResultCode" type="string">
      The code indicating the result of the operation. This information is mostly used to <a href="/errors/codes">handle errors</a> or for filtering purposes.
    </ResponseField>

    <ResponseField name="ResultMessage" type="string">
      The explanation of the result code.
    </ResponseField>

    <ResponseField name="DebitedFunds" type="object">
      Information about the debited funds. Please note that:

      * The `Currency` must be identical to that of the initial transaction.
      * The `Amount` cannot exceed the initial’s transaction minus the fees.

      <Expandable title="properties">
        <ResponseField name="Currency" type="string">
          **Returned values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).

          The currency of the funds.
        </ResponseField>

        <ResponseField name="Amount" type="integer">
          An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="Fees" type="object">
      Information about the fees. Please note that:

      * The `Currency` must be identical to that of the initial transaction.
      * The `Amount` cannot exceed the initial’s transaction.

      <Expandable title="properties">
        <ResponseField name="Currency" type="string">
          **Returned values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).

          The currency of the fees.
        </ResponseField>

        <ResponseField name="Amount" type="integer">
          An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="AuthorId" type="string">
      The unique identifier of the user at the source of the transaction.
    </ResponseField>

    <ResponseField name="CreditedUserId" type="string">
      **Default value:** The unique identifier of the owner of the credited wallet.

      The unique identifier of the user whose wallet is credited.
    </ResponseField>

    <ResponseField name="CreditedFunds" type="object">
      Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`).

      <Expandable title="properties">
        <ResponseField name="Currency" type="string">
          **Returned values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).

          The currency of the credited funds.
        </ResponseField>

        <ResponseField name="Amount" type="integer">
          An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="Status" type="string">
      **Returned values:** `CREATED`, `SUCCEEDED`, `FAILED`

      The status of the transaction.
    </ResponseField>

    <ResponseField name="ExecutionDate" type="Unix timestamp">
      The date and time at which the status changed to `SUCCEEDED`, indicating that the transaction occurred. The statuses `CREATED` and `FAILED` return an `ExecutionDate` of `null`.
    </ResponseField>

    <ResponseField name="Type" type="string">
      **Returned values:** `PAYIN`, `TRANSFER`, `CONVERSION`, `PAYOUT`

      The type of the transaction.
    </ResponseField>

    <ResponseField name="Nature" type="string">
      **Returned values:** `REGULAR`, `REPUDIATION`, `REFUND`, `SETTLEMENT`

      The nature of the transaction, providing more information about the context in which the transaction occurred:

      * `REGULAR` – Relative to most of the transactions (pay-ins, payouts, and transfers) in a usual workflow.
      * `REPUDIATION` – Automatic withdrawal of funds from the platform’s repudiation wallet as part of the dispute process (when the user has requested a chargeback).
      * `REFUND` – Reimbursement of a transaction to the user (pay-in refund), to a wallet (transfer refund), or of a payout (payout refund, only initiated by Mangopay).
      * `SETTLEMENT` – Transfer made to the repudiation wallet by the platform to settle a lost dispute.
    </ResponseField>

    <ResponseField name="CreditedWalletId" type="string">
      The unique identifier of the wallet.
      In the specific case of the Client Wallet object, this value is returned by the Mangopay API in the form of the funds type and the currency (e.g., “FEES\_EUR”).
    </ResponseField>

    <ResponseField name="DebitedWalletId" type="string">
      The unique identifier of the debited wallet.
    </ResponseField>

    <ResponseField name="RepudiationId" type="string">
      The unique identifier of the repudiation.
    </ResponseField>
  </Accordion>

  <Accordion title="200 - Failed">
    <ResponseField name="Id" type="string">
      Max length: 128 characters (see [data formats](/api-reference/overview/data-formats) for details)

      The unique identifier of the object.
    </ResponseField>

    <ResponseField name="Tag" type="string">
      Max. length: 255 characters

      Custom data that you can add to this object.\
      For transactions (pay-in, transfer, payout), you can use this parameter to identify corresponding information regarding the user, transaction, or payment methods on your platform.
    </ResponseField>

    <ResponseField name="CreationDate" type="Unix timestamp">
      The date and time at which the object was created.
    </ResponseField>

    <ResponseField name="ResultCode" type="string">
      The code indicating the result of the operation. This information is mostly used to <a href="/errors/codes">handle errors</a> or for filtering purposes.
    </ResponseField>

    <ResponseField name="ResultMessage" type="string">
      The explanation of the result code.
    </ResponseField>

    <ResponseField name="DebitedFunds" type="object">
      Information about the debited funds. Please note that:

      * The `Currency` must be identical to that of the initial transaction.
      * The `Amount` cannot exceed the initial’s transaction minus the fees.

      <Expandable title="properties">
        <ResponseField name="Currency" type="string">
          **Returned values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).

          The currency of the funds.
        </ResponseField>

        <ResponseField name="Amount" type="integer">
          An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="Fees" type="object">
      Information about the fees. Please note that:

      * The `Currency` must be identical to that of the initial transaction.
      * The `Amount` cannot exceed the initial’s transaction.

      <Expandable title="properties">
        <ResponseField name="Currency" type="string">
          **Returned values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).

          The currency of the fees.
        </ResponseField>

        <ResponseField name="Amount" type="integer">
          An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="AuthorId" type="string">
      The unique identifier of the user at the source of the transaction.
    </ResponseField>

    <ResponseField name="CreditedUserId" type="string">
      **Default value:** The unique identifier of the owner of the credited wallet.

      The unique identifier of the user whose wallet is credited.
    </ResponseField>

    <ResponseField name="CreditedFunds" type="object">
      Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`).

      <Expandable title="properties">
        <ResponseField name="Currency" type="string">
          **Returned values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).

          The currency of the credited funds.
        </ResponseField>

        <ResponseField name="Amount" type="integer">
          An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="Status" type="string">
      **Returned values:** `CREATED`, `SUCCEEDED`, `FAILED`

      The status of the transaction.
    </ResponseField>

    <ResponseField name="ExecutionDate" type="Unix timestamp">
      The date and time at which the status changed to `SUCCEEDED`, indicating that the transaction occurred. The statuses `CREATED` and `FAILED` return an `ExecutionDate` of `null`.
    </ResponseField>

    <ResponseField name="Type" type="string">
      **Returned values:** `PAYIN`, `TRANSFER`, `CONVERSION`, `PAYOUT`

      The type of the transaction.
    </ResponseField>

    <ResponseField name="Nature" type="string">
      **Returned values:** `REGULAR`, `REPUDIATION`, `REFUND`, `SETTLEMENT`

      The nature of the transaction, providing more information about the context in which the transaction occurred:

      * `REGULAR` – Relative to most of the transactions (pay-ins, payouts, and transfers) in a usual workflow.
      * `REPUDIATION` – Automatic withdrawal of funds from the platform’s repudiation wallet as part of the dispute process (when the user has requested a chargeback).
      * `REFUND` – Reimbursement of a transaction to the user (pay-in refund), to a wallet (transfer refund), or of a payout (payout refund, only initiated by Mangopay).
      * `SETTLEMENT` – Transfer made to the repudiation wallet by the platform to settle a lost dispute.
    </ResponseField>

    <ResponseField name="CreditedWalletId" type="string">
      The unique identifier of the credited wallet.
    </ResponseField>

    <ResponseField name="DebitedWalletId" type="string">
      The unique identifier of the debited wallet.
    </ResponseField>

    <ResponseField name="RepudiationId" type="string">
      The unique identifier of the repudiation.
    </ResponseField>
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="400 - Settlement DebitedFunds exceed the initial transaction DebitedFunds">
    ```json theme={null}
    {
        "Message": "One or several required parameters are missing or incorrect. An incorrect resource ID also raises this kind of error.",
        "Type": "param_error",
        "Id": "7da1f9f4-8c9f-4f9f-ba1c-babf394131ca#1673358577",
        "Date": 1673358578.0,
        "errors": {
            "DebitedFunds": "The settlement DebitedFunds cannot exceed the initial transaction DebitedFunds"
        }
    }  
    ```
  </Accordion>

  <Accordion title="400 - Settlement Fees exceed the initial transaction Fees">
    ```json theme={null}
    {
        "Message": "One or several required parameters are missing or incorrect. An incorrect resource ID also raises this kind of error.",
        "Type": "param_error",
        "Id": "084e42e2-7523-4e28-99eb-79300d0dc37b#1672678394",
        "Date": 1672678395.0,
        "errors": {
            "Fees": "The settlement Fees cannot exceed the initial transaction Fees"
        }
    }  
    ```
  </Accordion>
</AccordionGroup>

<ResponseExample>
  ```json 200   theme={null}
  {
      "Id": "159220385",
      "Tag": null,
      "CreationDate": 1672677972,
      "ResultCode": "000000",
      "ResultMessage": "Success",
      "DebitedFunds": {
          "Currency": "EUR",
          "Amount": 999
      },
      "Fees": {
          "Currency": "EUR",
          "Amount": 0
      },
      "AuthorId": "146476890",
      "CreditedUserId": null,
      "CreditedFunds": {
          "Currency": "EUR",
          "Amount": 999
      },
      "Status": "SUCCEEDED",
      "ExecutionDate": 1672677972,
      "Type": "TRANSFER",
      "Nature": "SETTLEMENT",
      "CreditedWalletId": "CREDIT_EUR",
      "DebitedWalletId": "148968396",
      "RepudiationId": "159196330"
  }  
  ```

  ```json 200 - Failed   theme={null}
  {
      "Id": "159220127",
      "Tag": null,
      "CreationDate": 1672677824,
      "ResultCode": "003010",
      "ResultMessage": "The total DebitedFunds settled cannot exceed the initial transaction DebitedFunds available for settlement",
      "DebitedFunds": {
          "Currency": "EUR",
          "Amount": 1000
      },
      "Fees": {
          "Currency": "EUR",
          "Amount": 1
      },
      "AuthorId": "146476890",
      "CreditedUserId": null,
      "CreditedFunds": {
          "Currency": "EUR",
          "Amount": 999
      },
      "Status": "FAILED",
      "ExecutionDate": null,
      "Type": "TRANSFER",
      "Nature": "SETTLEMENT",
      "CreditedWalletId": "CREDIT_EUR",
      "DebitedWalletId": "148968396",
      "RepudiationId": "159196330"
  }  
  ```
</ResponseExample>

<RequestExample>
  ```json REST   theme={null}
  {
      "AuthorId":"146476890",
      "DebitedFunds":{
          "Currency":"EUR",
          "Amount":12
      },
      "Fees":{
          "Currency":"EUR",
          "Amount":12
      }
  }  
  ```

  ```php PHP theme={null}
  <?php 

  require_once 'vendor/autoload.php';

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

  $api = new MangoPayApi();

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

  try {
      $repudiationId = '199385843';
      $repudiation = $api->Disputes->GetRepudiation($repudiationId);

      $settlementTransfer = new \MangoPay\SettlementTransfer();

      $settlementTransfer->AuthorId = $repudiation->AuthorId;
      $settlementTransfer->DebitedFunds = new \MangoPay\Money();
      $settlementTransfer->DebitedFunds->Amount = 500;
      $settlementTransfer->DebitedFunds->Currency = "EUR";
      $settlementTransfer->Fees = new \MangoPay\Money();
      $settlementTransfer->Fees->Amount = 0;
      $settlementTransfer->Fees->Currency = "EUR";


      $response = $api->Disputes->CreateSettlementTransfer($settlementTransfer, $repudiationId);

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

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

  let myDispute = {
    Id: '192775714',
    RepudiationId: '192775715',
  }

  let mySettlementTransfer = {
    AuthorId: '180749339',
    DebitedFunds: {
      Currency: 'EUR',
      Amount: '1000',
    },
    Fees: {
      Currency: 'EUR',
      Amount: 0,
    },
  }

  const createSettlementTransfer = async (settlementTransfer, repudiationId) => {
    return await mangopay.Disputes.createSettlementTransfer(
      settlementTransfer,
      repudiationId
    )
      .then((response) => {
        console.info(response)
        return response
      })
      .catch((err) => {
        console.log(err)
        return false
      })
  }

  createSettlementTransfer(mySettlementTransfer, myDispute.RepudiationId)  
  ```

  ```ruby Ruby   theme={null}
  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

  myRepudiation = {
      Id: '194618172'
  }

  mySettlementTransfer = {
      Type: 'TRANSFER',
      Nature: 'SETTLEMENT',
      AuthorId: '194579896',
      DebitedFunds: {
          Currency: 'EUR',
          Amount: 10000
      },
      Fees: {
          Currency: 'EUR',
          Amount: 9000
      }

  }

  createSettlementTransfer(myRepudiation[:Id], mySettlementTransfer)  
  ```

  ```java Java  theme={null}
  import com.google.gson.Gson;
  import com.google.gson.GsonBuilder;
  import com.mangopay.MangoPayApi;
  import com.mangopay.core.Money;
  import com.mangopay.core.enumerations.CurrencyIso;
  import com.mangopay.entities.SettlementTransfer;
  import com.mangopay.entities.Transfer;

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

          var userId = "user_m_01HQK25M6KVHKDV0S36JY9NRKR";
          var repudiationId = "repud_m_01J2KVEDBG9ABZZAWRXFHAJ97H";

          SettlementTransfer settlementTransfer = new SettlementTransfer();
          settlementTransfer.setAuthorId(userId);
          settlementTransfer.setDebitedFunds(new Money(CurrencyIso.EUR, 200));
          settlementTransfer.setFees(new Money(CurrencyIso.EUR, 0));
          settlementTransfer.setTag("Created using the Mangopay Java SDK");

          Transfer createSettlement = mangopay.getDisputeApi().createSettlementTransfer(settlementTransfer, repudiationId);

          Gson prettyPrint = new GsonBuilder().setPrettyPrinting().create();
          String prettyJson = prettyPrint.toJson(createSettlement);
          System.out.println(prettyJson);
      }
  }
  ```

  ```python Python   theme={null}
  from pprint import pprint
  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 NaturalUser, Repudiation, SettlementTransfer
  from mangopay.utils import Money

  natural_user = NaturalUser.get('user_m_01HQK25M6KVHKDV0S36JY9NRKR')

  repudiation = Repudiation.get('repud_m_01HQT8ZRDVYBVT7T8240AWZD3D')

  settlement_transfer = SettlementTransfer(
      author = natural_user,
      credited_user_id = natural_user.id,
      debited_funds = Money(amount=4000, currency='GBP'),
      fees =  Money(amount=0, currency='GBP'),
      repudiation = repudiation
  )  
  ```

  ```csharp .NET  theme={null}
  using MangoPay.SDK;
  using MangoPay.SDK.Core.Enumerations;
  using MangoPay.SDK.Entities;
  using MangoPay.SDK.Entities.POST;
  using Newtonsoft.Json;

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

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

          var repudiationId = "repud_m_01J354MZ35CNMZZMCENS3ERPQ3";
          var repudiation = await api.Disputes.GetRepudiationAsync(repudiationId);

          SettlementTransferPostDTO settlementTransfer = new SettlementTransferPostDTO(
              repudiation.AuthorId, 
              new Money { Currency = CurrencyIso.EUR, Amount = 1 }, 
              new Money { Currency = CurrencyIso.EUR, Amount = 0 }
          );

          var createSettelementTransfer = await api.Disputes.CreateSettlementTransferAsync(settlementTransfer, repudiationId);

          string prettyPrint = JsonConvert.SerializeObject(createSettelementTransfer, Formatting.Indented);
          Console.WriteLine(prettyPrint);
  	}
  }
  ```
</RequestExample>
