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.