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

# The Recurring PayIn object

### Description

The Recurring PayIn object represents a card pay-in linked to a Recurring PayIn Registration object. 

There are two types of recurring pay-ins:

* Customer-initiated transaction (CIT) – First pay-in of the series, which requires the cardholder to authenticate via the 3DS protocol.
* Merchant-initiated transaction (MIT) – All the pay-ins occurring after a successful CIT, which are executed in the absence of the cardholder.

<Note>
  **Note – Max. 99 pay-ins possible against each registration**

  A maximum of 99 pay-ins, CIT and MIT included, can be made against each Recurring PayIn Registration. Once you reach this limit, the 100th pay-in will fail with the error <a href="/errors/codes/205001">205001</a>.

  You need to create a new registration object to restart the recurrence (with a CIT).
</Note>

### Attributes

<ParamField body="Id" type="string">
  The unique identifier of the object.
</ParamField>

<ParamField body="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.
</ParamField>

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

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

<ParamField body="DebitedFunds" type="object">
  The amount of the subsequent recurring pay-in. If this field is empty, the amount entered in the `NextTransactionDebitedFunds` of the Recurring PayIn Registration is taken into account.

  **Caution:** An amount must be transmitted during either the recurring registration or pay-in (if it’s different from the registration one).

  <Expandable title="properties">
    <ParamField body="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 debited funds.
    </ParamField>

    <ParamField body="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`).
    </ParamField>
  </Expandable>
</ParamField>

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

  <Expandable title="properties">
    <ParamField body="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.
    </ParamField>

    <ParamField body="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`).
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="Fees" type="object">
  The amount of the subsequent fees. If this field is empty, the amount entered in the `NextTransactionFees` of the Recurring PayIn Registration is taken into account.

  **Caution:** An amount must be transmitted during either the recurring registration or pay-in (if it’s different from the registration one).

  <Expandable title="properties">
    <ParamField body="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.
    </ParamField>

    <ParamField body="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`).
    </ParamField>
  </Expandable>
</ParamField>

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

  The status of the transaction.
</ParamField>

<ParamField body="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.
</ParamField>

<ParamField body="ResultMessage" type="string">
  The explanation of the result code.
</ParamField>

<ParamField body="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`.
</ParamField>

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

  The type of the transaction.
</ParamField>

<ParamField body="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.
</ParamField>

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

<ParamField body="DebitedWalletId" type="string">
  The unique identifier of the debited wallet.

  In the case of a pay-in, this value is always `null` since there is no debited wallet.
</ParamField>

<ParamField body="PaymentType" type="string">
  **Returned values:** `CARD`, `DIRECT_DEBIT`, `PREAUTHORIZED`, `BANK_WIRE`

  The type of pay-in.
</ParamField>

<ParamField body="ExecutionType" type="string">
  **Returned values:** `WEB`, `DIRECT`, `EXTERNAL_INSTRUCTION`

  The type of execution for the pay-in.
</ParamField>

<ParamField body="SecureMode" type="string">
  **Default value:** DEFAULT

  The mode applied for the 3DS2 protocol for CB, Visa, and Mastercard. The options are:

  * `DEFAULT` – Requests an exemption to strong customer authentication (SCA), and thus a frictionless payment experience, if allowed by your Mangopay contract and accepted by the issuer.
  * `FORCE` – Requests SCA.
  * `NO_CHOICE` – Leaves the choice to the issuer whether to allow for a frictionless payment experience or to enforce SCA.
</ParamField>

<ParamField body="CardId" type="string">
  The unique identifier of the Card object, obtained during the card registration process.
</ParamField>

<ParamField body="SecureModeReturnURL" type="string">
  Max. length: 255 characters

  The URL to which users are automatically returned after 3DS2 if it is triggered (i.e., if the `SecureModeNeeded` parameter is set to `true`).
</ParamField>

<ParamField body="SecureModeRedirectURL" type="string">
  Max. length: 255 characters

  The URL to which to redirect the user to proceed to 3DS2 validation.

  **Caution:** This variable URL is specific to each payment. You must rely on the returned URL in full (host, path, and queries) and not hardcode any part of it.
</ParamField>

<ParamField body="SecureModeNeeded" type="boolean">
  Whether or not the `SecureMode` was used.
</ParamField>

<ParamField body="Culture" type="string">
  **Returned values:** One of the supported languages in the <a href="/api-reference/overview/data-formats">ISO 639-1 format</a>: DE, EN, ES, FR, IT, NL, PL, PT.

  The language in which the payment page is to be displayed.
</ParamField>

<ParamField body="SecurityInfo" type="object">
  Information regarding security and anti-fraud tools.

  <Expandable title="properties">
    <ParamField body="AVSResult" type="string">
      The result of the Address Verification System check (only available for UK, US, and Canada).
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="StatementDescriptor" type="string">
  Max. length: 10 characters; only alphanumeric and spaces

  Custom description to appear on the user’s bank statement along with the platform name. Different banks may show more or less information. See the <a href="/bank-statements">Customizing bank statement references</a> article for details.
</ParamField>

<ParamField body="BrowserInfo" type="object">
  Information about the browser used by the end user (author) to perform the payment.

  <Expandable title="properties">
    <ParamField body="AcceptHeader" type="string">
      The exact content of the HTTP accept headers as sent to the platform from the end user’s browser.
    </ParamField>

    <ParamField body="JavaEnabled" type="boolean">
      Whether or not the end user’s browser has the ability to execute Java.
    </ParamField>

    <ParamField body="Language" type="string">
      Format: Two-letter language code (ISO 639-1 alpha-2) followed by two-letter country code (ISO 3166-1 alpha-2), separated by a hyphen (example: `en-US`; pattern:`^[a-zA-Z]{2}(-[a-zA-Z]{2})?$`)

      The language of the browser.
    </ParamField>

    <ParamField body="ColorDepth" type="integer">
      The value representing the depth of the screen’s color palette for displaying images, in bits per pixel.
    </ParamField>

    <ParamField body="ScreenHeight" type="integer">
      Max. length: 6 characters

      The height of the screen in pixels.
    </ParamField>

    <ParamField body="ScreenWidth" type="integer">
      Max. length: 6 characters

      The width of the screen in pixels.
    </ParamField>

    <ParamField body="TimeZoneOffset" type="integer">
      The difference in minutes between the browser’s timezone and UTC.
    </ParamField>

    <ParamField body="UserAgent" type="string">
      Max. length: 255 characters

      The exact content of the HTTP User-Agent header.
    </ParamField>

    <ParamField body="JavascriptEnabled" type="boolean">
      Whether or not the end user’s browser has the ability to execute JavaScript.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="IpAddress" type="string">
  The IP address of the end user initiating the transaction, in IPV4 or IPV6 format.
</ParamField>

<ParamField body="Billing" type="object">
  **Default value:** FirstName, LastName, and Address information of the Shipping object if any, otherwise the user (author).

  Information about the end user billing address. If left empty, the default values will be automatically taken into account.

  <Expandable title="properties">
    <ParamField body="FirstName" type="string">
      The first name of the user.
    </ParamField>

    <ParamField body="LastName" type="string">
      Max. length: 100 characters

      The last name of the user.
    </ParamField>

    <ParamField body="Address" type="object">
      Information about the billing address.

      <Expandable>
        <ParamField body="AddressLine1" type="string">
          Max. length: 255 characters

          The first line of the address.
        </ParamField>

        <ParamField body="AddressLine2" type="string">
          Max. length: 255 characters

          The second line of the address.
        </ParamField>

        <ParamField body="City" type="string">
          Max. length: 255 characters

          The city of the address.
        </ParamField>

        <ParamField body="Region" type="string">
          Max. length: 255 characters

          Required if `Country` is US, CA, or MX.

          The region of the address.
        </ParamField>

        <ParamField body="PostalCode" type="string">
          Max. length: 255 characters

          The postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces.
        </ParamField>

        <ParamField body="Country" type="string">
          Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats))

          The country of the address.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="Shipping" type="object">
  **Default value:** FirstName, LastName, and Address information of the Billing object, if supplied, otherwise of the user (author).

  Information about the end user’s shipping address.

  <Expandable title="properties">
    <ParamField body="FirstName" type="string">
      The first name of the user.
    </ParamField>

    <ParamField body="LastName" type="string">
      Max. length: 100 characters

      The last name of the user.
    </ParamField>

    <ParamField body="Address" type="object">
      Information about the shipping address.

      <Expandable>
        <ParamField body="AddressLine1" type="string">
          Max. length: 255 characters

          The first line of the address.
        </ParamField>

        <ParamField body="AddressLine2" type="string">
          Max. length: 255 characters

          The second line of the address.
        </ParamField>

        <ParamField body="City" type="string">
          Max. length: 255 characters

          The city of the address.
        </ParamField>

        <ParamField body="Region" type="string">
          Max. length: 255 characters

          Required if `Country` is US, CA, or MX.

          The region of the address.
        </ParamField>

        <ParamField body="PostalCode" type="string">
          Max. length: 255 characters

          The postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces.
        </ParamField>

        <ParamField body="Country" type="string">
          Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats))

          The country of the address.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="Requested3DSVersion" type="string">
  **Returned values:** `V1`, `V2_1`

  The 3DS protocol version to be applied to the transaction.
</ParamField>

<ParamField body="Applied3DSVersion" type="string">
  **Returned values:** `V1`, `V2_1`

  The 3DS protocol version applied to the transaction.
</ParamField>

<ParamField body="RecurringPayinRegistrationId" type="string">
  The unique identifier of the recurring pay-in registration.
</ParamField>

<ParamField body="PaymentCategory" type="string">
  **Default value:** `ECommerce`

  **Allowed values:** `ECommerce`, `TelephoneOrder`

  The channel through which the user provided their card details, used to indicate mail-order and telephone-order (MOTO) payments:

  * `ECommerce` – Payment received online.
  * `TelephoneOrder` – Payment received via mail order or telephone order (MOTO).
</ParamField>

<ParamField body="PreferredCardNetwork" type="string">
  **Returned values:** `VISA`, `MASTERCARD`, `CB`, `MAESTRO`

  The card network to use, as chosen by the cardholder, in case of <a href="/guides/payment-methods/card/co-branded">co-branded cards</a>.
</ParamField>

<ResponseField name="AuthenticationResult" type="object | null" defaultOpen>
  Information about the authentication result, based on the request made by Mangopay and the decision of the issuer regarding the type of authentication to be enforced (if applicable).

  <Expandable title="properties">
    <ResponseField name="AuthenticationType" type="string | null">
      Response values: `CHALLENGE`, `FRICTIONLESS`, `DIRECT_AUTHORIZATION`

      The type of authentication:

      * `CHALLENGE` – The issuer requested SCA to be enforced (for example, using 3DS).
      * `FRICTIONLESS` – The transaction was exempted from SCA because an exemption was granted by the issuer.
      * `DIRECT_AUTHORIZATION` – The transaction was sent to the issuer for authorization without any frictionless or challenge (for example, if SCA doesn't apply).

      A `null` value typically indicates that authentication was not requested (for example, because the request failed before being sent) or a decision was not received.
    </ResponseField>
  </Expandable>
</ResponseField>

<ParamField body="CardInfo" type="string">
  Information about the card used for the transaction. \
  If the information or data is not available, `null` is returned.

  <Expandable title="properties">
    <ParamField body="BIN" type="string">
      The 6-digit bank identification number (BIN) of the card issuer.
    </ParamField>

    <ParamField body="IssuingBank" type="string">
      The name of the card issuer.
    </ParamField>

    <ParamField body="IssuerCountryCode" type="string">
      Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats))

      The country where the card was issued.
    </ParamField>

    <ParamField body="Type" type="string">
      **Returned values:** `DEBIT`, `CREDIT`, `CHARGE CARD`.

      The type of card product.
    </ParamField>

    <ParamField body="Brand" type="string">
      The card brand. Examples include: `AMERICAN EXPRESS`, `DISCOVER`, `JCB`, `MASTERCARD`, `VISA`, etc.

      **Note:** The possible returned values are numerous and liable to evolve over time.
    </ParamField>

    <ParamField body="SubType" type="string">
      The subtype of the card product. Examples include: `CLASSIC`, `GOLD`, `PLATINUM`, `PREPAID`, etc.

      **Note:** The possible returned values are numerous and liable to evolve over time.
    </ParamField>
  </Expandable>
</ParamField>

### Related resources

<Card title="Guide" href="/guides/payment-methods/card/recurring">
  Learn more about recurring card payments
</Card>
