@veruspay/react 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,151 @@
1
+ import { JSX as JSX_2 } from 'react/jsx-runtime';
2
+
3
+ declare interface CreateDynamicQrCodeParams {
4
+ accountId: string;
5
+ pixKey: string;
6
+ amount: number;
7
+ description: string;
8
+ expirationSeconds?: number;
9
+ }
10
+
11
+ declare interface CreateStaticQrCodeParams {
12
+ accountId: string;
13
+ pixKey: string;
14
+ amount: number;
15
+ description: string;
16
+ name: string;
17
+ city?: string;
18
+ postalCode?: string;
19
+ }
20
+
21
+ /**
22
+ * Componente drop-in de checkout PIX.
23
+ *
24
+ * **Em modo sandbox:**
25
+ * - QR Code é exibido com um watermark "SANDBOX"
26
+ * - Bloco de aviso "Ambiente de testes" aparece abaixo
27
+ * - Botão "Simular pagamento" confirma o pagamento via API
28
+ *
29
+ * **Em produção:**
30
+ * - QR Code limpo, sem indicadores de sandbox
31
+ * - Polling automático detecta o pagamento e dispara `onSuccess`
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * <PixCheckout
36
+ * clientId="cli_xxx"
37
+ * clientSecret="sec_xxx"
38
+ * accountId="uuid-da-conta"
39
+ * pixKey="uuid-evp"
40
+ * amount={4990}
41
+ * description="Produto X"
42
+ * sandbox
43
+ * onSuccess={(txId) => console.log('Pago!', txId)}
44
+ * />
45
+ * ```
46
+ */
47
+ export declare function PixCheckout({ title, className, style, ...paymentOptions }: PixCheckoutProps): JSX_2.Element;
48
+
49
+ export declare interface PixCheckoutProps extends UsePixPaymentOptions {
50
+ /** Título exibido no topo do checkout (default: "Pagar com PIX") */
51
+ title?: string;
52
+ className?: string;
53
+ style?: React.CSSProperties;
54
+ }
55
+
56
+ export declare type PixPaymentStatus = 'idle' | 'loading' | 'active' | 'completed' | 'error';
57
+
58
+ /**
59
+ * Renderiza um QR Code PIX a partir do payload EMV.
60
+ * Use este componente quando quiser apenas o QR Code, sem o checkout completo.
61
+ */
62
+ export declare function PixQrCode({ emv, size, className, style }: PixQrCodeProps): JSX_2.Element;
63
+
64
+ export declare interface PixQrCodeProps {
65
+ /** Payload EMV do QR Code PIX */
66
+ emv: string;
67
+ /** Tamanho do QR Code em pixels (default: 256) */
68
+ size?: number;
69
+ className?: string;
70
+ style?: React.CSSProperties;
71
+ }
72
+
73
+ export declare interface QrCodeResult {
74
+ txId: string;
75
+ qrCodeEmv: string;
76
+ amount: number;
77
+ status: string;
78
+ expiresAt?: string;
79
+ }
80
+
81
+ export declare interface QrCodeStatus {
82
+ txId: string;
83
+ status: 'active' | 'completed' | 'expired' | 'cancelled';
84
+ amount: number;
85
+ completedAt?: string;
86
+ endToEndId?: string;
87
+ }
88
+
89
+ export declare function usePixPayment(options: UsePixPaymentOptions): UsePixPaymentResult;
90
+
91
+ export declare interface UsePixPaymentOptions {
92
+ /** clientId das credenciais VerusPay (padrão, sem canSendPix) */
93
+ clientId: string;
94
+ /** clientSecret das credenciais VerusPay */
95
+ clientSecret: string;
96
+ /** ID da conta VerusPay */
97
+ accountId: string;
98
+ /** Chave PIX EVP (UUID) cadastrada na conta */
99
+ pixKey: string;
100
+ /** Valor em centavos (ex: 4990 = R$ 49,90) */
101
+ amount: number;
102
+ /** Descrição do pagamento */
103
+ description: string;
104
+ /** Tipo do QR Code — static ou dynamic (default: static) */
105
+ type?: 'static' | 'dynamic';
106
+ /** Nome do recebedor (obrigatório para QR Code estático) */
107
+ name?: string;
108
+ /** Cidade do recebedor (para QR Code estático; default: 'Brasil') */
109
+ city?: string;
110
+ /** CEP do recebedor (para QR Code estático; default: '00000000') */
111
+ postalCode?: string;
112
+ /** Tempo de expiração em segundos (para QR Code dinâmico; default: 3600) */
113
+ expirationSeconds?: number;
114
+ /** URL base da API VerusPay. Se omitido, usa produção. */
115
+ apiUrl?: string;
116
+ /** true = ambiente de testes (exibe botão "Simular Pagamento") */
117
+ sandbox?: boolean;
118
+ /** Callback chamado quando o pagamento é confirmado */
119
+ onSuccess?: (txId: string) => void;
120
+ /** Callback chamado em caso de erro */
121
+ onError?: (error: Error) => void;
122
+ }
123
+
124
+ export declare interface UsePixPaymentResult {
125
+ /** Payload EMV do QR Code (renderizar com <PixQrCode emv={qrCodeEmv} />) */
126
+ qrCodeEmv: string | null;
127
+ /** TxId retornado pela API */
128
+ txId: string | null;
129
+ /** Status atual do pagamento */
130
+ status: PixPaymentStatus;
131
+ /** Mensagem de erro (quando status === 'error') */
132
+ error: string | null;
133
+ /** Copia o código PIX para a área de transferência */
134
+ copyCode: () => void;
135
+ /** true por 2s após copyCode() ser chamado */
136
+ copied: boolean;
137
+ /** Simula um pagamento (apenas disponível quando sandbox=true) */
138
+ simulatePayment: () => Promise<void>;
139
+ }
140
+
141
+ export declare class VerusPayClient {
142
+ private readonly apiUrl;
143
+ constructor(apiUrl?: string);
144
+ getToken(clientId: string, clientSecret: string): Promise<string>;
145
+ createStaticQrCode(token: string, params: CreateStaticQrCodeParams): Promise<QrCodeResult>;
146
+ createDynamicQrCode(token: string, params: CreateDynamicQrCodeParams): Promise<QrCodeResult>;
147
+ getQrCodeStatus(token: string, accountId: string, txId: string): Promise<QrCodeStatus>;
148
+ simulatePayment(token: string, accountId: string, txId: string, amount: number, type: 'static' | 'cob' | 'cobv'): Promise<void>;
149
+ }
150
+
151
+ export { }