Use cases · Marketplaces and platforms

Buyers, sellers and payouts, each in their lane.

A marketplace carries two sets of customers and the money between them. Bracel executes the rules that keep refunds bounded and seller and operator tools closed to the wrong people.

PR #318 · Split orders into shipmentsPASS
  1. POST /payments · 80.00201
  2. GET refunded total0.00
  3. POST refund · 40.00 (control)201
  4. GET refunded total40.00
  5. POST refund · 40.01422
  6. GET refunded total40.00
refund.amount-cap@1 · over-refund-rejected · illustrative

What breaks quietly

The bugs a review reads past.

Each of these looks reasonable in a diff. Each one only shows itself when the code runs.

  1. 01

    Refunds beyond the order

    A refund on a split order that exceeds what the buyer actually paid.

  2. 02

    Operator tools left open

    A dispute or payout console route that loses its authentication on a refactor.

  3. 03

    Duplicate events

    A payment webhook delivered twice and applied twice.

Coming soon

Rules to protect

Start with one. Add the next when it ships.

Rules are approved by your team and read from your base commit, so a pull request cannot change the rules that judge it.

  • Order refunds never exceed the captured amount

    Available · refund.amount-cap@1

  • Operator and payout routes refuse requests without credentials

    Available · http.auth-required@1

  • A duplicated webhook is applied once

    Planned · not yet a template

  • A seller cannot act on another seller’s orders

    Planned · not yet a template

How it runs

Inside your CI. Evidence on the pull request.

  1. 01

    A pull request touches a protected route.

  2. 02

    Your GitHub Actions runner builds and starts the application in isolation, without network access.

  3. 03

    Bracel executes the approved rules against it.

  4. 04

    The check states the verdict, what was expected and observed, and why.

How it works · Security and data · Check compatibility