> ## 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 an Intent Capture

> Declare the full or partial capture of an authorization processed by a third-party PSP

You can use this endpoint in three capture scenarios requiring three difference request bodies.

### Path parameters

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

### Body parameters

<Tabs>
  <Tab title="Full simultaneous capture">
    No request body for full simultaneous capture. The full `Amount` of the intent is captured (all line items) and the `ExternalData` is the same as the Intent (same provider references and date).
  </Tab>

  <Tab title="Full separate capture">
    The full `Amount` of the intent is captured (all line items) but the `ExternalData` references and date are different from the Intent (for example, a capture following preauthorization).

    <ParamField body="ExternalData" type="object" required>
      Information about the capture processed by the third-party PSP.

      The `ExternalData` values are required if they differ from the original Intent values, which is the case for captures that are separate from authorization (different reference and/or date).

      <Expandable>
        <ParamField body="ExternalProcessingDate" type="Unix timestamp" required>
          The date at which the capture was created.
        </ParamField>

        <ParamField body="ExternalProviderReference" type="string" required>
          The unique identifier of the capture at the provider level.
        </ParamField>

        <ParamField body="ExternalMerchantReference" type="string">
          The unique identifier of the capture at the merchant level.
        </ParamField>

        <ParamField body="ExternalProviderName" type="string" required>
          The [supported third-party PSP](/api-reference/echo/supported-providers) processing the transaction.

          **Note:** The uppercase value is expected. The API returns the sentence-case value.
        </ParamField>

        <ParamField body="ExternalProviderPaymentMethod" type="string">
          One of the [supported payment methods](/api-reference/echo/supported-payment-methods) used to process the capture.
        </ParamField>
      </Expandable>
    </ParamField>
  </Tab>

  <Tab title="Partial capture">
    Part of the original Intent `Amount` is captured from one or more line items. Any amount can be captured from any line item(s). The `ExternalData` references and date are different from the Intent. The Capture `Amount` must equal the sum of the `Amount` values captured for all line items.

    <ParamField body="Amount" type="integer" required>
      The amount of the Capture, required for a partial capture. The Capture `Amount` must equal the sum of the `Amount` values captured for all line items.
    </ParamField>

    <ParamField body="PlatformFees" type="integer">
      The amount of fees to be diverted to the platform's Fees Wallet when the Intent is split. This value can be overridden when the Split is created.

      The `PlatformFees` value must the sum of all line item `Seller.FeesAmount` values.
    </ParamField>

    <ParamField body="ExternalData" type="object" required>
      Information about the capture processed by the third-party PSP.

      The `ExternalData` values are required if they differ from the original Intent values, which is the case for captures that are separate from authorization (different reference and/or date).

      <Expandable>
        <ParamField body="ExternalProcessingDate" type="Unix timestamp" required>
          The date at which the capture was created.
        </ParamField>

        <ParamField body="ExternalProviderReference" type="string" required>
          The unique identifier of the capture at the provider level.
        </ParamField>

        <ParamField body="ExternalMerchantReference" type="string">
          The unique identifier of the capture at the merchant level.
        </ParamField>

        <ParamField body="ExternalProviderName" type="string" required>
          The [supported third-party PSP](/api-reference/echo/supported-providers) processing the transaction.

          **Note:** The uppercase value is expected. The API returns the sentence-case value.
        </ParamField>

        <ParamField body="ExternalProviderPaymentMethod" type="string">
          One of the [supported payment methods](/api-reference/echo/supported-payment-methods) used to process the capture.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="LineItems" type="array (object)" required>
      Information about the items purchased in the transaction, required for a partial capture.

      <Expandable defaultOpen>
        <ParamField body="Id" type="string" required>
          The unique identifier of the line item in Mangopay ecosystem.
        </ParamField>

        <ParamField body="Amount" type="integer" required>
          The amount of the capture. The sum of the Capture's `LineItems.Amount` values must equal the `Amount` of the Capture.
        </ParamField>
      </Expandable>
    </ParamField>
  </Tab>
</Tabs>

### Responses

<AccordionGroup>
  <Accordion title="200 - Response parameters">
    <ResponseField name="Id" type="string">
      The unique identifier of the intent.
    </ResponseField>

    <ResponseField name="Amount" type="integer">
      The full amount authorized in the Intent, which must equal the sum of the total amounts of all `LineItems`.
    </ResponseField>

    <ResponseField name="AvailableAmountToSplit" type="integer">
      The remaining amount of the Intent that can be split and transferred to the sellers' wallets.
    </ResponseField>

    <ResponseField name="UnfundedAmount" type="integer">
      The amount needing to be settled to the Platform's escrow wallet before the Intent Splits can be executed.
    </ResponseField>

    <ResponseField name="Currency" type="integer">
      The currency of the intent.
    </ResponseField>

    <ResponseField name="PlatformFees" type="integer">
      The amount of fees to be diverted to the platform's Fees Wallet when the Intent is split. This value can be overridden when the Split is created.

      The `PlatformFees` value must the sum of all line item `Seller.FeesAmount` values.
    </ResponseField>

    <ResponseField name="Status" type="string">
      The status of the Intent, as declared by the platform through Intent Captures, Refunds (and reversals), or Disputes (and decisions). Where partial actions occur, the top-level Intent `Status` may differ from the `Status` of Intent `LineItems`.

      Intent `Status` values:

      * `AUTHORIZED` – The Intent `Amount` was authorized for acquisition by the PSP and can be captured or canceled.
      * `PARTIALLY_CAPTURED` – Part of the Intent `Amount` from one or more `LineItems` was captured. The other parts are either still available for capture or cancel.
      * `CAPTURED` – All of the Intent `Amount` was captured. Part of it may have been subsequently refunded or disputed.
      * `CANCELLED` – All of the Intent `Amount` was canceled.
      * `REFUNDED` – All of the `CapturedAmount` of all `LineItems` was refunded.
      * `REFUND_REVERSED` – The refund could not be completed and the funds were returned to the platform.
      * `DISPUTED` – All of the `CapturedAmount` of all `LineItems` was disputed.
      * `DEFENDED` – The dispute is being defended by the platform.
      * `DISPUTED_WON` – The dispute was resolved in favor of the platform.
      * `DISPUTED_LOST` – The dispute was resolved against the platform.
    </ResponseField>

    <ResponseField name="NextActions" type="string">
      The possible next actions on the intent.
    </ResponseField>

    <ResponseField name="ExternalData" type="object">
      Information about the capture processed by the third-party PSP.

      The `ExternalData` values are required if they differ from the original Intent values, which is the case for captures that are separate from authorization (different reference and/or date).

      <Expandable>
        <ResponseField name="ExternalProcessingDate" type="Unix timestamp">
          The date at which the capture was created.
        </ResponseField>

        <ResponseField name="ExternalProviderReference" type="string">
          The unique identifier of the capture at the provider level.
        </ResponseField>

        <ResponseField name="ExternalMerchantReference" type="string">
          The unique identifier of the capture at the merchant level.
        </ResponseField>

        <ResponseField name="ExternalProviderName" type="string">
          The [supported third-party PSP](/api-reference/echo/supported-providers) processing the transaction.

          **Note:** The uppercase value is expected. The API returns the sentence-case value.
        </ResponseField>

        <ResponseField name="ExternalProviderPaymentMethod" type="string">
          One of the [supported payment methods](/api-reference/echo/supported-payment-methods) used to process the capture.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="Buyer" type="object">
      Information about the buyer.

      <Expandable>
        <ResponseField name="Id" type="string">
          If it exists, the unique identifier of the Mangopay user making the payment via the third-party PSP. Must be a valid Mangopay `UserId`.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="LineItems" type="array (object)">
      Information about the line items included in the intent action.

      <Expandable>
        <ResponseField name="Id" type="string">
          The unique identifier of the line item in Mangopay's ecosystem.
        </ResponseField>

        <ResponseField name="TotalLineItemAmount" type="integer">
          The total amount of the line item calculated as ((`UnitAmount` x `Quantity`) - `DiscountAmount`).
        </ResponseField>

        <ResponseField name="CapturedAmount" type="integer">
          The item total `CAPTURED` amount
        </ResponseField>

        <ResponseField name="RefundedAmount" type="integer">
          The item total `REFUNDED` amount
        </ResponseField>

        <ResponseField name="DisputedAmount" type="integer">
          The item total `DISPUTED` amount.
        </ResponseField>

        <ResponseField name="SplitAmount" type="integer">
          The item total `COMPLETED` amount.
        </ResponseField>

        <ResponseField name="UnfundedSellerAmount" type="integer">
          The amount needing to be settled to the Platform's escrow wallet before the Intent Splits can be executed for this seller.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="CreationDate" type="string">
      The date and time at which the Intent was created.
    </ResponseField>

    <ResponseField name="ExecutionDate" type="Unix timestamp">
      The date and time at which the Intent moved to `AUTHORIZED`.
    </ResponseField>

    <ResponseField name="Capture" type="object">
      Information about the Capture.

      <Expandable>
        <Id_Capture_Intent />
      </Expandable>
    </ResponseField>
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="400 - Amount must equal LineItems amounts">
    ```json theme={null}
    {
        "Message": "One or several required parameters are missing or incorrect. An incorrect resource ID also raises this kind of error.",
        "Id": "538f0981-b975-4790-8a20-748a8afe8719",
        "Date": 1752063380,
        "Type": "param_error",
        "Errors": {
            "Amount": "The total intent amount does not match the sum of the declared LineItem amounts"
        }
    }
    ```
  </Accordion>

  <Accordion title="400 - Capture Amount for a line item can't exceed authorized amount for the same line item">
    ```json theme={null}
    {
        "Message": "One or several required parameters are missing or incorrect. An incorrect resource ID also raises this kind of error.",
        "Id": "19232364-0772-4ba2-bb7d-5ac6aa1ea385",
        "Date": 1752064526,
        "Type": "param_error",
        "Errors": {
            "Amount": "Capture not possible: current captured amount [10000] plus capture amount [5000] exceeds the Intent.LineItemId=[int_li_0197ef2e-88f7-7bcc-8937-207a5e5f483a] with amount [10000]"
        }
    }
    ```
  </Accordion>

  <Accordion title="400 - Partial capture already done so full capture not allowed">
    ```json theme={null}
    {
        "Message": "Action on the Intent resource is not permitted",
        "Id": "51a50212-30d5-4761-a2c7-f92aca09d697",
        "Date": 1750257386,
        "Type": "invalid_action",
        "Errors": {
            "Capture": "A partial operation was found, please include instructions in the request body"
        }
    }
    ```
  </Accordion>
</AccordionGroup>

<ResponseExample>
  ```json Full, simultaneous theme={null}
  {
      "Id": "int_019bfa4f-60ba-7842-89c0-382066c072f1",
      "Amount": 20000,
      "AvailableAmountToSplit": 20000,
      "UnfundedAmount": 0,
      "Currency": "EUR",
      "PlatformFeesAmount": 0,
      "Status": "CAPTURED",
      "NextActions": "REFUND, DISPUTE",
      "ExternalData": {
          "ExternalProcessingDate": 1769431064,
          "ExternalProviderReference": "auth-stripe-36e34fd5-512f-4fb6-b4c2-3084ba3cd947",
          "ExternalMerchantReference": "order-a790c539-9c63-4166-8595-7b78f06e9215",
          "ExternalProviderName": "Stripe",
          "ExternalProviderPaymentMethod": "MASTERCARD"
      },
      "Buyer": {
          "Id": "user_m_01KF3087EDXEAK8VPD9DTMZW8N"
      },
      "LineItems": [
          {
              "Id": "int_li_019bfa4f-60c5-7306-b993-bf38153edb6f",
              "TotalLineItemAmount": 10000,
              "CapturedAmount": 10000,
              "RefundedAmount": 0,
              "DisputedAmount": 0,
              "SplitAmount": 0,
              "CancelledAmount": 0,
              "UnfundedSellerAmount": 0
          },
          {
              "Id": "int_li_019bfa4f-60c5-7306-b993-bf38153edb70",
              "TotalLineItemAmount": 10000,
              "CapturedAmount": 10000,
              "RefundedAmount": 0,
              "DisputedAmount": 0,
              "SplitAmount": 0,
              "CancelledAmount": 0,
              "UnfundedSellerAmount": 0
          }
      ],
      "CreationDate": 1769431064,
      "ExecutionDate": 1769431555,
      "Capture": {
          "Id": "int_capture_019bfa56-dbed-7d3d-8a24-beebfc81033b"
      }
  }
  ```

  ```json Full, delayed theme={null}
  {
      "Id": "int_0197ef23-8cf3-755e-8527-62243565e69d",
      "Amount": 20000,
      "AvailableAmountToSplit": 20000,
      "UnfundedAmount": 0,
      "Currency": "EUR",
      "PlatformFeesAmount": 0,
      "Status": "CAPTURED",
      "NextActions": "REFUNDED, DISPUTED",
      "ExternalData": {
          "ExternalProcessingDate": 1752057968,
          "ExternalProviderReference": "capture-stripe-4680fa21-e6fd-48e0-8303-fcf6b8f43fb1",
          "ExternalMerchantReference": "capture-order-31701b2e-3a15-4ae8-8ca5-b381b0ede3dd",
          "ExternalProviderName": "Stripe",
          "ExternalProviderPaymentMethod": "MASTERCARD"
      },
      "Buyer": {
          "Id": "user_m_01JZB09HSDZRVN60QH1006TK6E"
      },
      "LineItems": [
          {
              "Id": "int_li_0197ef23-8cf5-788d-9d45-f36184eb937a",
              "TotalLineItemAmount": 10000,
              "CapturedAmount": 10000,
              "RefundedAmount": 0,
              "DisputedAmount": 0,
              "SplitAmount": 0
          },
          {
              "Id": "int_li_0197ef23-8cf5-788d-9d45-f36184eb937b",
              "TotalLineItemAmount": 10000,
              "CapturedAmount": 10000,
              "RefundedAmount": 0,
              "DisputedAmount": 0,
              "SplitAmount": 0
          }
      ],
      "CreationDate": 1752063773,
      "ExecutionDate": 1752063776,
      "Capture": {
          "Id": "int_capture_0197ef23-97ad-7e72-b72e-5a7abb79319e"
      }
  }
  ```

  ```json Partial theme={null}
  {
      "Id": "int_0197eecb-7d9e-7e57-8825-0511f8e956ae",
      "Amount": 20000,
      "AvailableAmountToSplit": 10000,
      "UnfundedAmount": 0,
      "Currency": "EUR",
      "PlatformFeesAmount": 0,
      "Status": "PARTIALLY_CAPTURED",
      "NextActions": "REFUND, DISPUTE, PARTIALLY_CAPTURE, CAPTURE",
      "ExternalData": {
          "ExternalProcessingDate": 1752057968,
          "ExternalProviderReference": "capture-stripe-55f66004-6538-4d31-90fa-e6394c7e25ac",
          "ExternalMerchantReference": "capture-order-e22f01ad-8370-47f0-a028-186c4e144295",
          "ExternalProviderName": "Stripe",
          "ExternalProviderPaymentMethod": "MASTERCARD"
      },
      "Buyer": {
          "Id": "user_m_01JZB09HSDZRVN60QH1006TK6E"
      },
      "LineItems": [
          {
              "Id": "int_li_0197eecb-7d9f-79fe-9eef-6375bba43793",
              "TotalLineItemAmount": 10000,
              "CapturedAmount": 5000,
              "RefundedAmount": 0,
              "DisputedAmount": 0,
              "SplitAmount": 0
          },
          {
              "Id": "int_li_0197eecb-7d9f-79fe-9eef-6375bba43794",
              "TotalLineItemAmount": 10000,
              "CapturedAmount": 5000,
              "RefundedAmount": 0,
              "DisputedAmount": 0,
              "SplitAmount": 0
          }
      ],
      "CreationDate": 1752058002,
      "ExecutionDate": 1752063448,
      "Capture": {
          "Id": "int_capture_0197ef1e-94fe-7c62-a8df-eb29551623aa"
      }
  }
  ```
</ResponseExample>

<RequestExample>
  ```json Full, simultaneous theme={null}
  // No request body
  ```

  ```json Full, delayed theme={null}
  {
      "ExternalData": {
          "ExternalProcessingDate": 1752057968,
          "ExternalProviderReference": "capture-stripe-4680fa21-e6fd-48e0-8303-fcf6b8f43fb1",
          "ExternalMerchantReference": "capture-order-31701b2e-3a15-4ae8-8ca5-b381b0ede3dd",
          "ExternalProviderName": "Stripe",
          "ExternalProviderPaymentMethod": "MASTERCARD"
      }
  }
  ```

  ```json Partial theme={null}
  {
      "Id": "int_019bfa5a-a6fc-746b-8039-85ab970b3181",
      "Amount": 20000,
      "AvailableAmountToSplit": 10000,
      "UnfundedAmount": 0,
      "Currency": "EUR",
      "PlatformFeesAmount": 0,
      "Status": "PARTIALLY_CAPTURED",
      "NextActions": "REFUND, DISPUTE, PARTIALLY_CAPTURE, CAPTURE",
      "ExternalData": {
          "ExternalProcessingDate": 1769431819,
          "ExternalProviderReference": "capture-stripe-cb69ead9-dac9-43b5-94a0-7d5474ce666f",
          "ExternalMerchantReference": "capture-order-02596be2-bdaa-49ec-9d8b-da1965fa2164",
          "ExternalProviderName": "Stripe",
          "ExternalProviderPaymentMethod": "MASTERCARD"
      },
      "Buyer": {
          "Id": "user_m_01KF3087EDXEAK8VPD9DTMZW8N"
      },
      "LineItems": [
          {
              "Id": "int_li_019bfa5a-a6fe-7bac-849a-7c07400b8582",
              "TotalLineItemAmount": 10000,
              "CapturedAmount": 5000,
              "RefundedAmount": 0,
              "DisputedAmount": 0,
              "SplitAmount": 0,
              "CancelledAmount": 0,
              "UnfundedSellerAmount": 0
          },
          {
              "Id": "int_li_019bfa5a-a6fe-7bac-849a-7c07400b8583",
              "TotalLineItemAmount": 10000,
              "CapturedAmount": 5000,
              "RefundedAmount": 0,
              "DisputedAmount": 0,
              "SplitAmount": 0,
              "CancelledAmount": 0,
              "UnfundedSellerAmount": 0
          }
      ],
      "CreationDate": 1769431803,
      "ExecutionDate": 1769431819,
      "Capture": {
          "Id": "int_capture_019bfa5a-e51f-7ad1-8e6d-f28b40d7c693"
      }
  }
  ```
</RequestExample>
