Detect recurring payments API

Detect repeating merchant and amount patterns from supplied transaction dates. Cadence is labeled from spacing only.

The Detect recurring payments operation is part of the Open Banking & Payment Intelligence API on BRAINIAC.software. Detect repeating merchant and amount patterns from supplied transaction dates. Cadence is labeled from spacing only. It is exposed as POST /api/v1/payment-intelligence/recurring-detect and priced at $0.05 USDC on Base. Payment uses the x402 exact scheme: an unpaid call returns HTTP 402 with payment requirements; after paying the exact USDC amount, retry the same request with a payment-signature header and Idempotency-Key. No account and no API key are required. Data sources for this product: Caller-supplied transactions Optional merchant directory Optional category corrections Limitations: No bank account is connected and no Open Banking credentials are used. Income and affordability figures use only labeled supplied rows. Recurring detection uses date spacing and merchant/amount similarity in the request set. An affordability or credit decision is never produced. Missing merchants, categories, and amounts are not invented. Outputs are compliance prechecks, drafts, or data lookups for human review. They are not official determinations, legal advice, identity confirmation, or certified filings. Related operations in this group include Classify open-banking transactions, Identify subscription spend, Resolve merchant identity, Analyze income stability. Open the group documentation for the full request schema, field notes, and response examples before integrating.

POST$0.05 USDC
/api/v1/payment-intelligence/recurring-detect

Example request

curl -i -X POST "https://www.brainiac.software/api/v1/payment-intelligence/recurring-detect" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "transactions": [
    {
      "id": "TX-1",
      "accountId": "ACC-1",
      "date": "2026-08-03",
      "amount": -14.99,
      "currency": "GBP",
      "merchant": "Netflix",
      "description": "Netflix"
    },
    {
      "id": "TX-2",
      "accountId": "ACC-1",
      "date": "2026-09-03",
      "amount": -14.99,
      "currency": "GBP",
      "merchant": "Netflix",
      "description": "Netflix"
    },
    {
      "id": "TX-3",
      "accountId": "ACC-1",
      "date": "2026-10-03",
      "amount": -14.99,
      "currency": "GBP",
      "merchant": "Netflix",
      "description": "Netflix"
    },
    {
      "id": "TX-4",
      "accountId": "ACC-1",
      "date": "2026-10-10",
      "amount": -22.5,
      "currency": "GBP",
      "merchant": "Uber",
      "description": "Uber trip"
    }
  ]
}
JSON

An unpaid probe returns HTTP 402 with x402 payment requirements. After paying the exact USDC amount on Base, retry the identical request with a payment-signature header.

FAQ

  • Do I need an API key? No. Pay the listed USDC amount with x402.
  • What network? Base (eip155:8453), USDC.
  • Is this an official determination? No. Results are for human review against the cited sources.

Related APIs

Open Banking & Payment Intelligence APIFull docsHow it works