> ## 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 Registration object

### Description

Mangopay relies on the Recurring PayIn Registration object to store all the relevant information about a series of recurring card pay-ins, such as the frequency, the end date, and the amount.

For more information about the flows and setup of recurring card pay-ins, refer to the <a href="/guides/payment-methods/card/recurring">recurring card processing</a> guide.

### Attributes

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

<ParamField body="Status" type="string">
  **Returned values:** `CREATED`, `AUTHENTICATION_NEEDED`, `IN_PROGRESS`, `ENDED`

  The status of the recurring registration:

  * `CREATED` – The recurring registration was created, but no recurring pay-in has yet been made.
  * `AUTHENTICATION_NEEDED` – The latest recurring pay-in linked to the registration object was refused. The registration object can still be used, but you need to execute a new customer-initiated transaction (CIT) for the end user to reauthenticate.
  * `IN_PROGRESS` – The recurring registration object is in use and the subsequent corresponding recurring pay-ins can be made.
  * `ENDED` – The recurrence ended: the registration can no longer be modified nor reused.
</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="CurrentState" type="object">
  Information about the recurring pay-ins related to the registration object.

  **Note:** If the `LastPayinId` references a transaction older than 13 months, it may have been <a href="/api-reference/overview/data-availability-periods">archived</a>.

  <Expandable title="properties">
    <ParamField body="PayinsLinked" type="integer">
      The number of recurring pay-ins already made for the registration object.
    </ParamField>

    <ParamField body="CumulatedDebitedAmount" type="object">
      The sum of the `DebitedFunds` amounts of the recurring pay-ins made for the registration.

      <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="CumulatedFeesAmount" type="object">
      The sum of the `Fees` amounts of the recurring pay-ins made for the registration.

      <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="LastPayinId" type="string">
      The unique identifier of the last recurring pay-in made for the registration.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="RecurringType" type="string">
  **Returned values:** `CLASSIC_SUBSCRIPTION`, `FRACTIONED_PAYMENT`, `CUSTOM`

  The type of recurrence, which can be one of the following:

  * `CLASSIC_SUBSCRIPTION` – For fixed-amount subscriptions. The `Amount` of each pay-in and the subscription’s `EndDate` are known, and these values cannot be modified during the recurrence.
  * `FRACTIONED_PAYMENT` – For payments in 3 or 4 times. The `Amount` of each pay-in and the registration’s `EndDate` are known, and these values cannot be modified during the recurrence.
  * `CUSTOM` – For recurring registrations where the `Amount` and `EndDate` are unknown.
</ParamField>

<ParamField body="TotalAmount" type="object">
  The total amount in the registration.\
  This value is automatically calculated based on the `EndDate`, `FixedNextAmount`, and `Frequency` parameters (if defined).

  <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 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="CycleNumber" type="integer">
  The number of cycles in the registration (and therefore the number of payments).\
  This value is automatically calculated based on the `EndDate`, `FixedNextAmount`, and `Frequency` parameters (if defined).
</ParamField>

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

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

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

<ParamField body="CreditedWalletId" type="string">
  The unique identifier of the credited wallet.
</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="EndDate" type="Unix timestamp">
  The date and time at which the recurring pay-ins will end. This value has no impact on the recurring registration `Status`.\
  Caution: If the `EndDate` is left unspecified, please bear in mind that one could be defined by default and be displayed to your end users (not taken into account in the payment recurrence).
</ParamField>

<ParamField body="Frequency" type="string">
  **Returned values:** `Daily`, `Weekly`, `TwiceAMonth`, `Monthly`, `Bimonthly`, `Quarterly`, `Semiannual`, `Annual`, `Biannual`

  The frequency at which the recurring pay-ins will occur:

  * `Daily` – 1 transaction per day.
  * `Weekly` – 1 transaction every 7 days.
  * `TwiceAMonth` – 2 transactions per month.
  * `Monthly` – 1 transaction per month.
  * `Bimonthly` – 1 transaction every 2 months.
  * `Quarterly` – 1 transaction every 3 months.
  * `Semiannual` – 1 transaction every 6 months.
  * `Annual` – 1 transaction per year.
  * `Biannual` – 1 transaction every 2 years.
</ParamField>

<ParamField body="FixedNextAmount" type="boolean">
  Whether or not the recurring pay-ins’ debited amounts remain the same for all the pay-ins linked to the recurring registration object.
</ParamField>

<ParamField body="FractionedPayment" type="boolean">
  Whether or not the recurring pay-ins are being made to split a payment in several installments.
</ParamField>

<ParamField body="FreeCycles" type="integer">
  The number of initial consecutive pay-ins where there will be no debited funds nor fees.\
  This value cannot exceed the `CycleNumber` value (for recurring objects with an `EndDate`, `FixedNextAmount`, and `Frequency`).\
  Note: When creating a recurring pay-in (CIT or MIT) for a pay-in subject to a free cycle, the `DebitedFunds` and `Fees` parameters cannot be sent.
</ParamField>

<ParamField body="FirstTransactionDebitedFunds" type="object">
  The amount of the first recurring pay-in.\
  This value can be different from the `NextTransactionDebitedFunds`

  <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="FirstTransactionFees" type="object">
  The fees of the first recurring pay-in.\
  This amount can be different from the `NextTransactionDebitedFunds`.

  <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="NextTransactionDebitedFunds" type="object">
  The amount of the subsequent recurring pay-ins.
  If this field is empty and either `FixedNextAmount` or `FractionedPayment` are `true`, the subsequent amount will be the same as `FirstTransactionDebitedFunds` amount.

  <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="NextTransactionFees" type="object">
  The fees of the subsequent recurring pay-ins.

  <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="Migration" type="boolean" deprecated>
  Whether or not to attempt the first recurring pay-in as a merchant-initiated transaction (MIT).

  **Caution:** Migration is no longer supported. You can only use objects with `Migration` set to `false`. When Mangopay decommissions this parameter (date communicated by email), the `false` value will be forced on all objects, including existing ones. Before decommissioning, you need to re-create the object; after decommissioning, you can re-authenticate the same object.

  The need to re-authenticate may be indicated by the `Status` changing to `AUTHENTICATION_NEEDED` or by errors on the pay-in request, for example: non-existent card account (<a href="/errors/codes/008008">008008</a>), soft decline (<a href="/errors/codes/101305">101305</a>), expired card (<a href="/errors/codes/101105">101105</a>), or stolen card (<a href="/errors/codes/008003">008003</a>).
</ParamField>

<ParamField body="ProfilingAttemptReference" type="string">
  The unique reference generated for the profiling session, used by the <a href="/guides/fraud-prevention">fraud prevention</a> solution to produce recommendations for the transaction using the profiling data.

  **Note:** Parameter not returned by the API. Profiling feature available on request – contact Mangopay <a href="https://hub.mangopay.com/" target="_blank">via the Dashboard</a> for more information.
</ParamField>

### Related resources

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