Skip to main content
A monitor watches one business on CAC’s register. We read it once a day, and when its status or registered name changes you get a webhook. The usual change is ACTIVE to INACTIVE, most often because the business hasn’t filed its annual returns.

Monitor a business

POST /v1/businesses/monitors with the number, and your own reference if you like.
Response (201)
Watching the same business twice is 409 monitor_exists, with the existing monitor’s id in details.monitor. A number CAC doesn’t have is 404 cac_record_missing, not charged. A number in more than one register needs type (400 type_required). A wallet that can’t cover 30 days is 402 insufficient_balance, checked before CAC is searched, and 503 cac_search_unavailable means CAC’s search didn’t answer; neither is charged.

List, read and stop

  • GET /v1/businesses/monitors lists them, newest first. Filter with external_id, page with starting_after (pagination), and add include_deleted=true to see stopped ones.
  • GET /v1/businesses/monitors/{id} reads one.
  • DELETE /v1/businesses/monitors/{id} stops checks and renewals at once. The rest of the 30 days isn’t refunded.

Events

Add an endpoint for these on the Webhooks page or with the webhooks API. Each carries the monitor, with your external_id:
business.status_changed
If CAC’s register is down or briefly loses a record, nothing changes and no event is sent; the next day’s check tries again.

Pricing

Each business costs ₦100 for 30 days from the wallet of the key’s mode, charged when you add it and again when paid_through passes. The current price is on the Pricing page; each charge shows as a business_monitor_charge in your transactions. When the wallet can’t cover a renewal, the monitor pauses (monitor.paused, sent once) and isn’t checked. Fund your wallet: the next daily check charges it, starts a fresh 30 days and sends monitor.resumed.

Test mode

Test monitors watch the test business (ADA FOODS VENTURES for a BN number, ADA FOODS LIMITED otherwise) and are never read from CAC or renewed. Make a change happen with the test helper, which sends the same events a real change does:
Send status, name or both; they’re upper-cased like CAC’s, and a value the monitor already has sends no event. When creating, ?simulate=cac_record_missing gives the 404 and ?simulate=insufficient_balance the 402. The helper answers 403 test_mode_only with a live key and 409 monitor_deleted for a monitor you’ve stopped.