Obligation paymentsPrivate preview
Make payments to your FundingObligation.
Pay off an account’s FundingObligation 
While the FundingObligation
shows you how a connected account owes at the end of the credit period, you’re still responsible for collecting repayment from the connected account. Use Stripe’s Payment Intents API to debit the connected account’s external bank account (or accept a card payment using Stripe Checkout or Stripe Invoicing).
Make sure you record any payments received from the connected account in the account’s FundingObligation
to accurately reflect their available credit. Stripe determines whether to approve an authorization based on an account’s available credit. Stripe might report past-due and charged-off FundingObligations
to bank partners.
Collect repayment 
You can choose the best mechanism for collecting repayment from your connected account, but we recommend that you use Stripe’s Payments APIs to keep all records within Stripe for better reconciliation of each user’s card spend and repayment. After successfully collecting payment, make sure you update the FundingObligation
to reflect this. This step doesn’t happen automatically when you use Stripe’s Payments APIs. Stripe determines past_
based on the days_
parameter set in the CreditPolicy
. Stripe determines charged_
based on your written credit or collections policy that defines the number of days after a past_
obligation is charged_
.
Record repayments in the FundingObligation 
After collecting payment from a connected account, update their FundingObligation
to reflect the repayment. FundingObligations
states of unpaid
, past_
, or charged_
impact the amount of funds that are still available for the connected account to spend. For example, assume that Barbell has a 1,000 USD credit limit and they buy a treadmill for 900 USD. Barbell’s FundingObligation
has 900 USD as the amount_
owed, and they have 100 USD of available credit left to spend until they start paying off what’s owed.
Let’s say Barbell pays back 500 USD to Gymbox at the end of the credit period. Gymbox must update Barbell’s FundingObligation
to reflect the repayment. This update decreases the amount_
on the FundingObligation
to 400 USD and increases Barbell’s available credit from 100 to 600 USD.
Let’s say Barbell’s credit terms specify a 90-day period post due_
for the amount_
on the FundingObligation
to be charged off. On past_
over 90 days, Barbell’s amount_
of 400 USD is charged off. 30 days after charging off the amount_
on the FundingObligation
, Gymbox receives a 100 USD payment from Barbell. Gymbox needs to record this repayment with the /pay
endpoint to reduce the charged off amount_
on the FundingObligation
. This increases the available credit from 600 to 700 USD. If Gymbox closes Barbell’s credit line and reports the reason prior to collecting in full, the charged off amount_
persists and subsequently recovered amounts can no longer be applied to reduce the amount_
.
Example response 
{ "id": "ifo_123", "status": "unpaid", "amount_total": 90000, "amount_outstanding": 40000, "amount_paid": 50000, "owed_to": "acct_123", // other fields }
This API call increases the amount_
and decreases the amount_
on the FundingObligation
. When amount_
on a FundingObligation
, Stripe updates the status of the obligation to paid
, regardless of the previous state being unpaid
, past_
, or charged_
. These updates trigger an issuing_
event.
We recommend that you automate both the process of collecting repayment and the process of updating the FundingObligation
, and combine them into sequential calls. That way, immediately after you successfully collect repayment, you update the connected account’s FundingObligation
to inform Stripe to increase their available credit.
Update the paid amount on the FundingObligation 
If you make an erroneous repayment or want to update the connected account’s amount_
for another reason, you can do it with the /pay
endpoint using the amount_
field.
Example response 
{ "id": "ifo_789", "status": "unpaid", "amount_total": 90000, "amount_outstanding": 45000, "amount_paid": 45000, "owed_to": "acct_123", // other fields }
This sends an issuing_
event.
Update metadata on FundingObligations 
You can update the metadata on a FundingObligation
to associate additional data with a FundingObligation
. For example, you might want to record the OutboundPayment
ID that corresponds to a repayment.
Example response 
{ "id": "ifo_789", "status": "unpaid", "amount_total": 90000, "metadata": { "repayment_id": "obp_1NUy3y2eZvKYlo2C15gktUET" }, "owed_to": "acct_123", // other fields }
This sends an issuing_
event.