# Obligation payments Make payments to your 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](https://docs.stripe.com/payments/payment-intents.md) 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](https://docs.stripe.com/payments/payment-intents.md) 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](https://docs.stripe.com/payments/payment-intents.md). Stripe determines `past_due` based on the `days_until_due` parameter set in the `CreditPolicy`. Stripe determines `charged_off` based on your written credit or collections policy that defines the number of days after a `past_due` obligation is `charged_off`. ## Record repayments in the FundingObligation After collecting payment from a connected account, update their `FundingObligation` to reflect the repayment. `FundingObligations` states of `unpaid`, `past_due`, or `charged_off` 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_total` 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_outstanding` 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_at` for the `amount_outstanding` on the `FundingObligation` to be charged off. On `past_due` over 90 days, Barbell’s `amount_outstanding` of 400 USD is charged off. 30 days after charging off the `amount_outstanding` 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_outstanding` 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_outstanding` persists and subsequently recovered amounts can no longer be applied to reduce the `amount_outstanding`. ```curl curl https://api.stripe.com/v1/issuing/funding_obligations/ifo_123/pay \ -u "<>:" \ -H "Stripe-Version: 2026-02-25.preview; issuing_credit_beta=v1" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d amount=50000 ``` ### Example response ```json { "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_paid` and decreases the `amount_outstanding` on the `FundingObligation`. When `amount_paid=amount_total` on a `FundingObligation`, Stripe updates the status of the obligation to `paid`, regardless of the previous state being `unpaid`, `past_due`, or `charged_off`. These updates trigger an `issuing_funding_obligation.updated` 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_paid` for another reason, you can do it with the `/pay` endpoint using the `amount_paid` field. ```curl curl https://api.stripe.com/v1/issuing/funding_obligations/ifo_123/pay \ -u "<>:" \ -H "Stripe-Version: 2026-02-25.preview; issuing_credit_beta=v1" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d amount_paid=45000 ``` ### Example response ```json { "id": "ifo_789", "status": "unpaid", "amount_total": 90000,"amount_outstanding": 45000, "amount_paid": 45000, "owed_to": "acct_123", // other fields } ``` This sends an `issuing_funding_obligation.updated` event. ## Update metadata on FundingObligations You can update the [metadata](https://docs.stripe.com/api/metadata.md) 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. ```curl curl https://api.stripe.com/v1/issuing/funding_obligations/ifo_123/ \ -u "<>:" \ -H "Stripe-Version: 2026-02-25.preview; issuing_credit_beta=v1" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "metadata[repayment_id]"=obp_1NUy3y2eZvKYlo2C15gktUET ``` ### Example response ```json { "id": "ifo_789", "status": "unpaid", "amount_total": 90000,"metadata": { "repayment_id": "obp_1NUy3y2eZvKYlo2C15gktUET" }, "owed_to": "acct_123", // other fields } ``` This sends an `issuing_funding_obligation.updated` event.