Post Account Updates
Allows a partner to push different types of account updates to Flex. This is a web hook endpoint that accepts many different types of updates. Processing of the updates is done out of band.
This endpoint is hosted by Flex. If you are a multi biller partner, you must use the endpoint with both biller and account params, if you are a single biller partner, you should use the endpoint with just an account parameter.
Endpoint
POST /sbi/account/:accountId
Base URL: https://partner-bridge.{env}.getflex.com
Idempotency
This endpoint enforces Idempotency by the payloads update_id and the Partner’s Client Id. When a duplicate update is provided it will be ignored, even if the content of the update is different from previous versions. The HTTP code will still be 202 Accepted.
Request
Headers
| Header | Type | Required | Description |
|---|---|---|---|
X-Client-Id | string | Yes | Your client ID (provided by Flex) |
X-Api-Key | string | Yes | Your API key (provided by Flex) |
Content-Type | string | Yes | Must be application/json |
Idempotency-Key | string | Yes |
Request Params
| Param | Required | Description |
|---|---|---|
| account_id | yes | The account id in the partner’s system |
Request Body
{
"update_id": "9d936acb-25dc-49c4-b01e-022c0f5c68aa",
"type": "RefundIssued",
"data": {
"amount_in_cents": 10000,
"refund_date": "2026-01-01",
"refund_id": "44e94edc-f3f8-46ed-9f07-1bafa200f708",
"reason": "A reason to refund"
}
}
| Field | Type | Required | Description |
|---|---|---|---|
update_id | string | true | The unique id for this update from the Partner. This plus the Partner’s client id are the Idempotency Key. |
type | enum<RefundIssued, PriceAdjustment, AccountCancellation> | true | The type of update the Partner is communicating to Flex about this account. |
data | RefundIssued, PriceAdjustment, AccountCancellation, BalanceUpdate | true | The details about the update depending on the update type |
reason | String | false | A human readable reason for the refund. |
RefundIssued
A RefundIssued event should be sent to Flex whenever funds previously sent by Flex to the biller are being sent back to Flex. This is money Flex will need to credit or refund to the customer.
| Field | Type | Required | Description |
|---|---|---|---|
amount_in_cents | int | true | The amount of money that is being refunded to the account and Flex will receive back from the Biller |
refund_date | yyyy-mm-dd | true | The date the funds were sent back to Flex. |
refund_id | String | yes | The id of the refund in the partner’s system. |
PriceAdjustment
A PriceAdjustment event should be sent to Flex whenever a paid bill has had its price adjusted. This will allow Flex to ensure it is well setup to underwrite the customer for future bills as well as disperse new funds to the biller if needed.
This event will not trigger a refund to the customer as that is handled by the RefundIssued event.
| Field | Type | Required | Description |
|---|---|---|---|
old_amount_in_cents | Integer | true | The amount before the adjustment to the account |
new_amount_in_cents | Integer | true | The amount after the adjustment to the account |
AccountCancellation
An AccountCancellation event should be sent to Flex when the customer's account with the biller is canceled. This will enable Flex to correctly reflect the account status to the customer. Flex can also get this information by pulling the Get Account endpoint.
| Field | Type | Required | Description |
|---|---|---|---|
effective_date | String, YYYY-MM-DD | true | The date at which the cancellation will take effect |
Response
Success (202 ACCEPTED)
{
"message": "Request accepted."
}
Response Fields
| Field | Type | Description |
|---|---|---|
message | String | A human readable description of the result |
Error Responses
404 Not Found
Returned when the client ID is not recognized or the account cannot be found.
{
"code": "NOT_FOUND",
"message": "Resource not found"
}
500 Internal Server Error
Returned when an unexpected error occurs on the Flex side.
{
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred"
}