RopelyStart with a supported check.
ropely.
Menu
Setup guide

Start with the records.

One-time credit packs sold through Stripe Checkout, matched to individual application grants.

Prepare your exports
Sign in, create a workspace, and import purchase and grant CSVs separately. Use synthetic records while evaluating this development environment.

Choose a starting path

CSV uploads produce a historical audit. Connected monitoring requires Stripe ingestion and a repeatable ledger export, not just a recent upload. The Stripe connector is implemented; its sandbox purchase-to-grant flow has been verified. Production acceptance is still pending.

PostgreSQL and Supabase recipe

  1. Adapt the downloadable export view to your immutable grant table. Preserve transaction IDs, exact Checkout references, account IDs, credit currency, integer units and timezone-aware timestamps. Include corrections and bonuses; do not filter by a recent event-time window.
  2. Create a dedicated database login with SELECT access to the export view. Verify that it can read every relevant account and cannot write. Row policies or a filtered view must not silently omit grants. Keep database credentials in your environment.
  3. For Supabase, take the host and connection details from your project’s Connect panel. Use a direct connection, or session pooling when your network requires IPv4. Use your dedicated database role, not an API service key. Connect to the primary database.
  4. Require TLS certificate verification for remote databases: the exporter requires sslmode=verify-full. Add the provider’s root certificate using sslrootcert when needed. Do not disable verification to fix a connection error.
  5. Save a purchase import, then open Application ledger in that workspace and mode. Issue its ingestion token and follow the generated environment and export commands. The exporter saves a private payload before sending; retry that same payload after a delivery failure.
  6. Open the paired grant import and review validation. Return to Setup, resolve mapping gaps, then run a check through the shared completeness boundary. An accepted delivery is not proof that credits match.

Supabase connection options follow the official connection guide. This recipe uses PostgreSQL access; a managed Supabase integration has not been verified. Current exports are limited to 5,000 rows and 2 MiB per snapshot; do not truncate a larger ledger and declare it complete.

1. Purchase records

Include each Checkout Session, its single line item, Price, quantity, application account and verified payment time.

2. Grant transactions

Use individual grants, not remaining balances. A customer who spends credits has not necessarily received too few.

Required grant fields
FieldPurpose
Transaction IDDistinguishes a new grant from a repeated import.
Purchase referenceLinks the grant to its paid Checkout purchase.
Application accountIdentifies who received the credits.
Kind, currency and unitsSeparates purchase grants, corrections and bonuses.
Effective timestampEstablishes which check the transaction belongs to.

3. Expected credits and coverage

Specify the credits per purchased item and time allowed for fulfillment. Both exports must include all relevant records through the declared check time.

4. Save rules and run a check

In your workspace, open Credit rules to preview and save the expected units. Open Checks, select both imports and a rule version, then choose the UTC time covered by both sources.

Open workspaces →