Install
$ agentstack add skill-negusnati-verify-et-api-verify-et-api ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Verify.et API
This portable skill applies to backend integrations in Node.js, Python, PHP, Go, Java, Ruby, .NET, Rust, and mobile apps that proxy through a trusted backend.
Core Workflow
- Identify the integration surface: backend REST adapter, checkout/payment verification, webhook receiver, polling/SSE status UI, dashboard/reporting usage, or framework-specific wrapper.
- Load only the references needed:
references/api-endpoints.mdfor auth, endpoints, payloads, responses, permissions, and status flow.references/bank-specs.mdfor explicit bank payloads and universal-router disambiguators.references/error-codes.mdfor HTTP failures, verification error codes, retry decisions, credits, quotas, and idempotency conflicts.patterns/integration-methods.mdfor choosing sync, queued, webhook, polling, or SSE flows.patterns/webhooks.mdfor receiver security, signatures, retries, payloads, and test-webhook debugging.debugging/common-mistakes.mdfor production anti-patterns.debugging/production-checklist.mdfor pre-launch validation.
- Inspect the user's code before changing it. Find where API keys are stored, where
POST /api/verifyis called, how202is handled, whether duplicate submissions are possible, and whether Verify.et calls run server-side. - Keep Verify.et API keys server-side. Browser and mobile clients should call the user's backend, not Verify.et directly.
- Prefer one small server-side Verify.et client/adapter over scattered raw
fetchcalls. - Send an
Idempotency-Keyfor payment and checkout attempts, and persist the returned Verify.etrequestId. - Treat
200as an inline terminal response and202as queued work. For202, storerequestId, then pollGET /api/verify/:requestId, open SSE for interactive UIs, or rely on webhooks for server-to-server fulfillment. - Treat
confirmationHistory.confirmedBefore === trueas a repeat-confirmation signal. Do not fulfill blindly without applying the product's duplicate-payment policy. - Add focused tests at the user's boundary: request builder tests, webhook signature tests, polling tests, idempotency conflict tests, and error mapping tests.
Integration Decisions
- Use
POST /api/verify?waitMs=...only as a best-effort convenience. Production workflows must still work when Verify.et returns202. - Use webhooks when the backend must learn the result even if the browser or mobile app closes.
- Use polling when the client needs a simple pending-status screen.
- Use SSE when an authenticated web UI needs lower-latency updates without frequent polling.
- Use both webhooks and polling/SSE for robust checkout UX: webhook updates server truth; polling/SSE updates the visible user flow.
- Use explicit
bankpayloads when the product already knows the provider. Use universalreferencepayloads when the UI accepts mixed receipts or links. - Put irreversible fulfillment behind terminal state checks and duplicate-confirmation policy checks.
Debugging Baseline
Before diagnosing, capture:
- Request method, URL, body shape, headers used, and whether the API key was server-side.
- HTTP status, response body,
x-request-id,Retry-After, andX-Verify-Cache. - Verify.et
requestId,processingStatus,status,error.code, anderror.retryable. - Bank/provider, raw receipt/reference, suffix/phone disambiguators, and webhook URL.
- Whether the same checkout attempt reused the same
Idempotency-Key.
Security Rules
- Do not place
x-api-keyvalues in frontend, mobile app, logs, screenshots, or committed files. - Do not trust webhook payloads before validating the signature when a signature is present.
- Verify webhook signatures against the raw body, not parsed JSON.
- Make webhook processing idempotent by
requestIdand/or delivery ID. - Honor
Retry-Afterfor rate limits and temporary unavailability. - Keep logs useful but redacted: include
requestId, bank, status, and error code; omit API keys, cookies, and full authorization headers.
Sources
Use the current public docs when internet access is available:
https://verify.et/docs/get-startedhttps://verify.et/docs/apihttps://verify.et/docs/sdk
If working inside the Verify.et repository, prefer implementation source over stale docs. Relevant source paths are listed in references/api-endpoints.md.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: NegusNati
- Source: NegusNati/verify-et-api
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.