Platform · Integrations and API
Most of your data never reaches us. That is the product.
Nine systems, connected read-only and scoped by you. What Asiri needs crosses. Card numbers, balances, ticket bodies and backup contents hit the boundary and stop — not by policy, but because the credential was never able to fetch them.
- Full name
- Card number
- Phone number
- Account balance
- Stated date of birth
- Ticket body
- Account reference
- Backup contents
- Unsubscribe state
- Ticket subject
- Transaction amount
- Encryption state
- Attachment
- Last transaction date
41 fields cross · read-only, never written12 refused · the credential cannot fetch them at all
And it costs something, which is stated rather than hidden: because ticket bodies are never read, nobody can search them to answer an access request. That is the right trade, and it is still a trade.
Ordered by how recently each was read
A fact decays from the moment nobody looks again
So the list is sorted by age, not by name. Two systems are not connected at all, and Asiri counts those as unknown rather than as clean.
7 of 9 reading
| System | Freshness | Last read |
|---|---|---|
| Core bankingOracle Flexcube · Nigeria · 412,000 people | 6 minutes | |
| Support deskZendesk · United States · 88,400 people | 14 minutes | |
| Identity checksVerifyme Nigeria · Nigeria · 412,000 people | 38 minutes | |
| Marketing emailIntuit Mailchimp · United States · 40,100 people | 2 hours | |
| Crash reportsSentry · United States · 11,200 people | 5 hours | |
| PaymentsPaystack · Nigeria · 96,700 people | 11 hours | |
| BackupsAWS S3 · Ireland · 412,000 people | 1 day | |
| Agent app eventsTwilio Segment · United States · 3,100 people | 9 days | |
| Collections spreadsheetKuda Collections · never connected · 1,204 people | Never |
Where a claim comes from
Every figure can name the moment it was looked at
Which means it can also admit when that moment was nine days ago. Asiri stops calling this one verified and says exactly when it last saw the system, rather than serving a stale number as a current one.
This is the same feed with no owner, no safeguard on the transfer, and 3,100 agents who were never told it exists.
A claim in your register
3,100 agents were never told their events leave Nigeria.
- Read from
Agent app events · Twilio Segment
API key, owner unassigned. Hosted in the United States under TR-014, with nothing on file protecting the transfer. - Read failed
The key expired on 16 July
Every figure drawn from this system predates that date. Verifiable in principle, out of date in fact. - Last looked at
9 days ago
Long enough that the register has been describing this feed from memory rather than from a read.
Stale · nothing read for 9 days
Eight scopes, and what each one costs you
The two that go in a browser cannot read anything back
A publishable key sits where anybody can take it, so it is write-only by construction rather than by policy. Consent decisions and rights requests go in; nothing comes out but a reference.
- Secret key
registers.readRead the registers
Activities, basis, processors, transfers, retention. Read-only, and it can never write.
- Secret key
requests.readRead subject requests
The queue, its clocks and its outcomes. No requester contact details.
- No key
trust.readRead the public trust page
Exactly what is published, nothing withheld. No key is needed — it is here so you can use one endpoint for everything.
- Think first
requests.writeCreate and answer requests
Lets your own product raise a request on somebody’s behalf. Anything created this way is marked as coming from an integration, never as a person.
- Think first
incidents.writeReport an incident
Starts the 72-hour clock from your own monitoring. The clock cannot be stopped through the API — only a person can close an incident.
- Think first
evidence.readRead evidence
Documents and their tiers. This is the one that can return a signed opinion, so it is the one to think hardest about.
- Publishable · write-only
consent.submitRecord a consent decision
From your own banner or preference centre. Writes to the consent ledger and returns nothing but a reference.
- Publishable · write-only
request.submitTake a rights request
From a form on your public site. The request arrives unverified and says so — identity is confirmed inside Asiri, not by your form.
One clock cannot be stopped through the API at all. An incident can be opened by your own monitoring, but only a person can close one — because a breach a script can quietly mark resolved is a breach nobody ever answers for.
Webhooks
Nothing can be subscribed to that Asiri cannot actually observe
The events are the register's own vocabulary, so there is nothing to invent and nothing that fires on a guess. Every delivery is signed, and an unsigned event is rejected even from a known address — because an address is not an identity. Four were turned away this week for exactly that.
request.received- Somebody asked to see, correct or delete their data
request.due_soon- A request is nearing the answering target you set for it
request.late- A request passed that target with nothing sent
incident.opened- A breach was recorded and the 72-hour clock started
incident.notifiable- An incident crossed the threshold for telling the Commission
basis.unlawful- An activity is processing sensitive data on a basis the Act does not allow
processor.terms_missing- A supplier began receiving personal data with no written terms
transfer.safeguard_lapsed- The safeguard behind a transfer out of Nigeria expired
certification.lapsed- A certification you publish has expired and its badge has stopped asserting
filing.due- The annual return is due
Calling Asiri does not create a transfer you have to register
Every request is served from af-south-1 and every record stays in it. For a product whose whole subject is cross-border discipline, that is not a footnote. Sandbox is a nightly copy of your registers — same shapes, same errors, nothing that counts.