Skip to main content
PUT

Set Your Collection Policy

Replaces your policy. The change applies to every borrower being monitored at once: the policy is read when a balance is evaluated and again before a payment is sent. This is a full replacement. A field you leave out takes its default (0 for the reserve and minimum, ACH alone for the charge order), not its previous value. Unknown or misspelt fields are rejected with 400, so a typo cannot quietly loosen a rule.

Collecting by debit card

Set chargeOrder to collect on your borrowers’ debit cards: ach is always required; a card-only order is not offered. A borrower without a debit card on file is collected by ACH under a card-first policy, and a borrower’s own charge settings override yours. fallbackOn limits which failures move a payment to the next rail. For example, ["instrument_invalid"] falls back to ACH only when the card itself is unusable, and ends the attempt on a card decline for insufficient funds. A chargeOrder naming card is rejected with 400 (error.details.reason): card_rail_disabled while debit-card collection is not enabled for your account, or no_connection_for_rail when none of your processor keys can charge a debit card.

Authorizations

Authorization
string
header
required

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.

Body

application/json

Your collection policy. camelCase, unlike the enrollment routes. Unknown fields are rejected.

version
enum<integer>
default:1
Available options:
1
reserveCents
integer
default:0

A payment fires only when the balance covers the amount owed plus this much, in cents. The reserve is never charged.

Required range: x >= 0
minDebitCents
integer
default:0

The smallest payment Rightfoot submits, in cents. A borrower whose amount is below it is held with amount_below_minimum.

Required range: x >= 0
chargeOrder
enum<string>[] | null

The rails to collect on, in order: ["card", "ach"] charges the debit card first and falls back to ACH, ["ach", "card"] the other way round. ach is required; a card-only order is not offered. Unset is ACH alone.

Required array length: 1 - 2 elements

ach — the bank account in account_number / routing_number.

card — the debit card in charge_instrument.

Available options:
ach,
card
fallbackOn
enum<string>[] | null

Which failures move a payment to the next rail in the charge order. A rail with another after it gets one payment per collection attempt. If that payment fails for a reason in this list, the next rail is tried; otherwise the attempt ends. Unset is every category listed here. Has no effect on an ACH-only order.

insufficient_funds — not enough money on the rail tried.

instrument_invalid — the instrument cannot take a payment: a closed or frozen account, an expired card.

authorization_revoked — the borrower or their bank refused the payment, such as an unauthorized ACH return or a card dispute.

declined_by_processor — the payment processor refused it for its own reasons.

A processor outage (processor_error) never moves a payment to another rail: the same rail is tried again later. It cannot be listed.

Available options:
insufficient_funds,
instrument_invalid,
authorization_revoked,
declined_by_processor

Response

The policy now in effect.

source
enum<string>

lender — the policy you set. default — you have not set one.

Available options:
default,
lender
policy
object

Your collection policy. camelCase, unlike the enrollment routes. Unknown fields are rejected.

updatedAt
string<date-time> | null

When you last set your policy. null on the default.