@alexasomba/paystack-browser
Version:
A browser-compatible Paystack SDK - Complete, Type-safe, and Fetch-ready with full OpenAPI coverage.
46 lines (33 loc) • 1.7 kB
Markdown
---
name: paystack-browser-responses-errors
description: Use when handling Paystack SDK responses and errors in @alexasomba/paystack-browser, including PaystackResponse, unwrap, PaystackError, request IDs, and Paystack API envelopes.
license: MIT
compatibility: "Modern browsers and bundlers; package tooling/SSR builds require Node.js >=22.0.0; ESM package; public-key frontend runtime only."
---
# Paystack Browser Responses and Errors
Browser SDK operations return `PaystackResponse<T>`. Use `.unwrap()` for typed data or an exception.
```ts
const result = await paystack.transaction_initialize({
body: { email: "customer@example.com", amount: 5000 },
});
const data = result.unwrap();
```
## Error handling
```ts
import { PaystackError } from "@alexasomba/paystack-browser";
try {
result.unwrap();
} catch (error) {
if (error instanceof PaystackError) {
console.error(error.status, error.message, error.requestId);
}
}
```
`PaystackError` exposes `status`, `requestId`, `code`, `type`, and `meta`. Use `isProcessorError()` and `isValidationError()` for programmatic branching, but do not show raw diagnostic details directly to users.
## Helper exports
Use `getPaystackRequestId(headers)` in tests or diagnostics when extracting request IDs from raw response headers. Request IDs are commonly returned in `x-paystack-request-id` or `x-request-id`.
## Best practices
- Show user-safe messages in the UI; keep diagnostic details in logs.
- Do not expose secret keys, raw headers, or sensitive metadata in browser logs.
- Treat Paystack envelope `status: false` as failure even with HTTP 2xx.
- Use `response.headers` only for transport details such as pagination headers.