> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rightfoot.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Remove Borrowers from Monitoring

> Stop monitoring a batch of borrowers without deleting anything about them

# Remove Borrowers from Monitoring

Stop monitoring a batch of borrowers in a single call. Send up to 1000 identifiers per request — the same `authorizer_unique_id` values you [enrolled](/api-reference/payments/create-payment-enrollments) them with.

Use it for cured accounts, payoffs, and any borrower who must not be contacted or debited. Removal takes effect immediately: no new payment is initiated for these borrowers after the call returns.

Nothing about the borrower is deleted. Their details and payment history are kept, and results already collected remain available.

## Removal is not sticky

Sending a removed borrower in a later [enrollment](/api-reference/payments/create-payment-enrollments) push is read as intent to resume, and starts fresh monitoring using the `collectable_amount` in that push.

<Warning>
  If your enrollment push is a full file of your book, **take removed borrowers out of the file**. A borrower you remove today and re-send tomorrow is monitored again tomorrow — for borrowers removed because they must not be contacted or debited, keeping them out of the push is what keeps them removed.
</Warning>

## Reading the response

The response is `200`, and every identifier you sent has an entry in `results`, in the order you sent them. **Check each `outcome` rather than relying on the status code.**

| Outcome         | What it means                                             | What to do                                               |
| --------------- | --------------------------------------------------------- | -------------------------------------------------------- |
| `removed`       | Live monitoring was stopped by this request               | Nothing                                                  |
| `not_monitored` | Rightfoot knows this borrower but was not monitoring them | Nothing — there was nothing to stop                      |
| `unknown`       | Rightfoot has no record of this identifier                | **Check the identifier** — this borrower was not removed |

`not_monitored` is normal, not an error. Monitoring [expires 30 days after it starts](/api-reference/payments/create-payment-enrollments#monitoring-lapses-if-you-stop-sending), so a borrower who left your enrollment file weeks ago has usually lapsed on their own by the time a cleanup removal arrives. Re-sending a removal also lands every borrower here — the request is safe to retry.

<Warning>
  A consistently non-zero `unknown` count usually means the wrong identifier is being sent — a loan number where the enrollment used a customer id, or an identifier that changes between systems. Those borrowers stay monitored until a removal names them correctly.
</Warning>

## Removing versus deleting

This endpoint stops monitoring and keeps the borrower's data. To also remove the borrower's stored details, use `DELETE /v1/persisted_authorizers` — the stronger action, which stops monitoring too. Payment history is kept either way as the audit trail.


## OpenAPI

````yaml DELETE /v1/payment_enrollments
openapi: 3.1.0
info:
  title: Rightfoot API
  description: >-
    Submit a batch of authorizers for balance checks, retrieve processed
    balances, and check the status of a batch.
  version: 0.3.0-alpha
servers:
  - url: https://api.rightfoot.com
security:
  - BearerAuth: []
tags:
  - name: General Availability
    description: |
      **General Availability** indicates that the endpoint is production-ready.
  - name: Early Access
    description: >
      **Early Access** indicates that the endpoint is available for early access
      customers and is being actively refined.
  - name: In Development
    description: >
      **In Development** indicates that the endpoint is currently being built
      and will be available in an upcoming release.
paths:
  /v1/payment_enrollments:
    delete:
      tags:
        - In Development
      summary: Remove borrowers from monitoring
      description: >
        Stop monitoring a batch of borrowers. Nothing about them is deleted —

        their details and payment history are kept.


        Use it for cured accounts, payoffs, and any borrower who must not be

        contacted or debited. Takes effect immediately: no new payment is

        initiated for these borrowers after this call returns.


        **Per-borrower outcomes.** The response is `200` and every identifier
        you

        sent has an entry in `results`, in the order you sent them. Inspect each

        `outcome` — in particular, a non-zero `unknown` count usually means the

        wrong identifier is being sent, and those borrowers are **not** removed.


        **Removal is not sticky.** Sending a removed borrower in a later

        enrollment push is read as intent to resume, and starts fresh monitoring

        using the amount in that push. Nothing short of that re-push restarts

        monitoring.


        **Safe to re-send.** Removing a borrower twice is harmless — the second

        request reports them `not_monitored`.
      operationId: delete_payment_enrollments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentUnenrollmentRequest'
            example:
              authorizer_unique_ids:
                - 1a2b3c4d
                - 5e6f7g8h
                - 9i0j1k2l
      responses:
        '200':
          description: |
            Batch processed. Every identifier in the request has an entry in
            `results`; inspect each `outcome` rather than relying on the status
            code.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentUnenrollmentResponse'
              example:
                removed: 2
                not_monitored: 1
                unknown: 0
                results:
                  - authorizer_unique_id: 1a2b3c4d
                    outcome: removed
                  - authorizer_unique_id: 5e6f7g8h
                    outcome: not_monitored
                  - authorizer_unique_id: 9i0j1k2l
                    outcome: removed
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
              example:
                status: error
                status_code: 400
                error:
                  code: BAD_REQUEST
                  message: >-
                    authorizer_unique_ids must contain between 1 and 1000
                    entries.
                  timestamp: '2024-12-12T12:00:00Z'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
              example:
                status: error
                status_code: 401
                error:
                  code: UNAUTHORIZED
                  message: Invalid or missing API key.
                  timestamp: '2024-12-12T12:00:00Z'
components:
  schemas:
    PaymentUnenrollmentRequest:
      type: object
      required:
        - authorizer_unique_ids
      properties:
        authorizer_unique_ids:
          type: array
          minItems: 1
          maxItems: 1000
          items:
            type: string
          description: |
            The identifiers of the borrowers to stop monitoring — the same
            `authorizer_unique_id` values you sent on enrollment.
    PaymentUnenrollmentResponse:
      type: object
      description: |
        Counts plus one result per identifier, in the order you sent them. The
        counts sum to the number of identifiers in the request.
      properties:
        removed:
          type: integer
          description: Borrowers whose live monitoring was stopped by this request.
        not_monitored:
          type: integer
          description: |
            Borrowers Rightfoot knows but was not monitoring — monitoring had
            already expired or been stopped, or never started. Re-sending a
            removal lands every borrower here, so a repeated request is safe.
        unknown:
          type: integer
          description: |
            Identifiers Rightfoot has no record of. A consistently non-zero
            count usually means the wrong identifier is being sent — those
            borrowers are **not** removed from monitoring.
        results:
          type: array
          items:
            $ref: '#/components/schemas/PaymentUnenrollmentResult'
    ApiErrorResponse:
      type: object
      properties:
        status:
          type: string
          description: Status of the error, either "error" or "success"
        status_code:
          type: integer
          description: HTTP status code of the error
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code (e.g., "RESOURCE_NOT_FOUND")
            message:
              type: string
              description: Detailed error message.
            details:
              type: string
              description: Additional details about the error
            timestamp:
              type: string
              format: date-time
              description: Time the error occurred
            suggestion:
              type: string
              description: Suggested action to resolve the error
        documentation_url:
          type: string
          format: uri
          description: URL to the documentation for the error
    PaymentUnenrollmentResult:
      type: object
      description: The outcome for a single identifier.
      properties:
        authorizer_unique_id:
          type: string
          description: The identifier you sent.
        outcome:
          type: string
          enum:
            - removed
            - not_monitored
            - unknown
          description: |
            `removed` — live monitoring was stopped by this request.

            `not_monitored` — Rightfoot knows this borrower but was not
            monitoring them; there was nothing to stop.

            `unknown` — Rightfoot has no record of this identifier. The borrower
            was **not** removed; check the identifier.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >
        Authentication to the API is performed via Bearer Token Authentication.
        Provide your API key as the bearer token in the Authorization header.


        All API requests must be made over HTTPS. Calls made over plain HTTP
        will fail. API requests without authentication will also fail.

````