evo360-types 1.3.644 → 1.3.647

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.
@@ -225,6 +225,13 @@ exports.zAsaasEnvAuthConfigSchema = zod_1.z
225
225
  rate_limit_max_per_minute: zod_1.z.number().optional(),
226
226
  })
227
227
  .optional(),
228
+ /** feat-253 — IP enviado na cobrança com token quando a credencial não tem o do pagador. */
229
+ card_token: zod_1.z
230
+ .object({
231
+ remote_ip: zod_1.z.string().max(64).optional().nullable(),
232
+ })
233
+ .strip()
234
+ .optional(),
228
235
  })
229
236
  .passthrough();
230
237
  exports.zAsaasNfseCapabilitiesSchema = zod_1.z.object({
@@ -241,10 +248,14 @@ exports.zAsaasEnvFlagSchema = zod_1.z
241
248
  .strip();
242
249
  exports.zAsaasPaymentsCapabilitiesSchema = zod_1.z.object({
243
250
  enabled: zod_1.z.boolean(),
244
- /** feat-253 — kill-switch do caminho A. */
251
+ /** feat-253 — kill-switch do caminho A. @deprecated (caminho A saiu do modelo). */
245
252
  card_subscription_adjust: exports.zAsaasEnvFlagSchema.optional(),
246
- /** feat-253 — flag do caminho B (token). */
253
+ /** feat-253 — flag do caminho B (captura + cobrança com token). */
247
254
  card_token: exports.zAsaasEnvFlagSchema.optional(),
255
+ /** feat-253 — fatura hospedada (contingência C + entrada da captura). */
256
+ hosted_invoice: exports.zAsaasEnvFlagSchema.optional(),
257
+ /** feat-253 — job de cobrança automática no vencimento (fatia 8). */
258
+ card_token_auto: exports.zAsaasEnvFlagSchema.optional(),
248
259
  });
249
260
  exports.zAsaasProviderCapabilitiesSchema = zod_1.z.object({
250
261
  nfse: exports.zAsaasNfseCapabilitiesSchema,
@@ -951,13 +962,26 @@ exports.zNexFinopsContractPaymentMethodsWriteSchema = zod_1.z
951
962
  default_payment_method_id: zod_1.z.string().min(1).max(128).optional().nullable(),
952
963
  })
953
964
  .strip();
954
- /** `POST /billings/:id/card-charge` (F2/F3). */
965
+ /**
966
+ * `POST /billings/:id/card-charge` (feat-253 F2b).
967
+ * - `preview`: prévia da cobrança no cartão salvo (não escreve).
968
+ * - `charge_now`: cobra no cartão salvo (`confirm` + `expected_value`).
969
+ * - `send_invoice`: fatura hospedada do Asaas (`billing_type` CREDIT_CARD captura o cartão; UNDEFINED = cliente escolhe).
970
+ * - `cancel_invoice`: cancela a fatura aberta (`asaas_payment_id`).
971
+ * `.strip()`: dados de cartão/token nunca entram por aqui.
972
+ */
955
973
  exports.zNexFinopsBillingCardChargeSchema = zod_1.z
956
974
  .object({
957
- action: zod_1.z.enum(["preview", "adjust", "revert", "charge_now"]),
958
- expected_value: zod_1.z.number(),
975
+ action: zod_1.z.enum(["preview", "charge_now", "send_invoice", "cancel_invoice"]),
976
+ expected_value: zod_1.z.number().optional(),
959
977
  asaas_payment_id: zod_1.z.string().min(1).max(128).optional(),
960
978
  confirm: zod_1.z.boolean().optional(),
979
+ capture_card: zod_1.z.boolean().optional(),
980
+ billing_type: zod_1.z.enum(["CREDIT_CARD", "UNDEFINED"]).optional(),
981
+ provider_id: zod_1.z.string().min(1).max(128).optional(),
982
+ env: zod_1.z.enum(["sandbox", "production"]).optional(),
983
+ taker_id: zod_1.z.string().min(1).max(128).optional(),
984
+ allow_early: zod_1.z.boolean().optional(),
961
985
  })
962
986
  .strip();
963
987
  /** `POST /payment-methods/discover` — sem `confirm` é dry-run. */
@@ -237,6 +237,13 @@ export const zAsaasEnvAuthConfigSchema = z
237
237
  rate_limit_max_per_minute: z.number().optional(),
238
238
  })
239
239
  .optional(),
240
+ /** feat-253 — IP enviado na cobrança com token quando a credencial não tem o do pagador. */
241
+ card_token: z
242
+ .object({
243
+ remote_ip: z.string().max(64).optional().nullable(),
244
+ })
245
+ .strip()
246
+ .optional(),
240
247
  })
241
248
  .passthrough();
242
249
 
@@ -256,10 +263,14 @@ export const zAsaasEnvFlagSchema = z
256
263
 
257
264
  export const zAsaasPaymentsCapabilitiesSchema = z.object({
258
265
  enabled: z.boolean(),
259
- /** feat-253 — kill-switch do caminho A. */
266
+ /** feat-253 — kill-switch do caminho A. @deprecated (caminho A saiu do modelo). */
260
267
  card_subscription_adjust: zAsaasEnvFlagSchema.optional(),
261
- /** feat-253 — flag do caminho B (token). */
268
+ /** feat-253 — flag do caminho B (captura + cobrança com token). */
262
269
  card_token: zAsaasEnvFlagSchema.optional(),
270
+ /** feat-253 — fatura hospedada (contingência C + entrada da captura). */
271
+ hosted_invoice: zAsaasEnvFlagSchema.optional(),
272
+ /** feat-253 — job de cobrança automática no vencimento (fatia 8). */
273
+ card_token_auto: zAsaasEnvFlagSchema.optional(),
263
274
  });
264
275
 
265
276
  export const zAsaasProviderCapabilitiesSchema = z.object({
@@ -1046,13 +1057,26 @@ export const zNexFinopsContractPaymentMethodsWriteSchema = z
1046
1057
  })
1047
1058
  .strip();
1048
1059
 
1049
- /** `POST /billings/:id/card-charge` (F2/F3). */
1060
+ /**
1061
+ * `POST /billings/:id/card-charge` (feat-253 F2b).
1062
+ * - `preview`: prévia da cobrança no cartão salvo (não escreve).
1063
+ * - `charge_now`: cobra no cartão salvo (`confirm` + `expected_value`).
1064
+ * - `send_invoice`: fatura hospedada do Asaas (`billing_type` CREDIT_CARD captura o cartão; UNDEFINED = cliente escolhe).
1065
+ * - `cancel_invoice`: cancela a fatura aberta (`asaas_payment_id`).
1066
+ * `.strip()`: dados de cartão/token nunca entram por aqui.
1067
+ */
1050
1068
  export const zNexFinopsBillingCardChargeSchema = z
1051
1069
  .object({
1052
- action: z.enum(["preview", "adjust", "revert", "charge_now"]),
1053
- expected_value: z.number(),
1070
+ action: z.enum(["preview", "charge_now", "send_invoice", "cancel_invoice"]),
1071
+ expected_value: z.number().optional(),
1054
1072
  asaas_payment_id: z.string().min(1).max(128).optional(),
1055
1073
  confirm: z.boolean().optional(),
1074
+ capture_card: z.boolean().optional(),
1075
+ billing_type: z.enum(["CREDIT_CARD", "UNDEFINED"]).optional(),
1076
+ provider_id: z.string().min(1).max(128).optional(),
1077
+ env: z.enum(["sandbox", "production"]).optional(),
1078
+ taker_id: z.string().min(1).max(128).optional(),
1079
+ allow_early: z.boolean().optional(),
1056
1080
  })
1057
1081
  .strip();
1058
1082
 
@@ -84,12 +84,16 @@ export interface INexFinopsBillingPaymentMethodSnapshot {
84
84
  }
85
85
  export type NexFinopsBillingCardChargeMode = 'subscription_adjust'
86
86
  /** Contingência A′. */
87
- | 'subscription_value_update' | 'token_charge';
88
- export type NexFinopsBillingCardChargeStatus = 'scheduled' | 'stale' | 'confirmed' | 'refused' | 'refunded' | 'chargeback' | 'canceled' | 'reverted';
87
+ | 'subscription_value_update' | 'token_charge'
88
+ /** feat-253 F2b: fatura avulsa hospedada no Asaas (cartão com captura, ou cliente escolhe). */
89
+ | 'hosted_invoice';
90
+ export type NexFinopsBillingCardChargeStatus = 'scheduled'
91
+ /** Fatura enviada aguardando pagamento, ou cobrança com token em análise. */
92
+ | 'pending' | 'stale' | 'confirmed' | 'refused' | 'refunded' | 'chargeback' | 'canceled' | 'reverted';
89
93
  export interface INexFinopsBillingCardChargeHistoryEntry {
90
94
  at: string;
91
95
  by: string | null;
92
- action: 'adjust' | 'readjust' | 'revert' | 'charge' | 'event';
96
+ action: 'adjust' | 'readjust' | 'revert' | 'charge' | 'event' | 'send_invoice' | 'cancel_invoice' | 'capture';
93
97
  value?: number | null;
94
98
  event?: string | null;
95
99
  }
@@ -106,6 +110,7 @@ export interface INexFinopsBillingCardCharge {
106
110
  value_after: number;
107
111
  status: NexFinopsBillingCardChargeStatus;
108
112
  raw_status?: string | null;
113
+ /** Mantido por compatibilidade: na F2b é o momento/autor da criação do `pay_`. */
109
114
  adjusted_at: string;
110
115
  adjusted_by: {
111
116
  kind: 'user' | 'system';
@@ -119,7 +124,21 @@ export interface INexFinopsBillingCardCharge {
119
124
  } | null;
120
125
  /** Capado em 30 entradas. */
121
126
  history: INexFinopsBillingCardChargeHistoryEntry[];
127
+ /** Fatura hospedada que, paga no cartão, captura o token (`billing_type: 'CREDIT_CARD'`). */
128
+ capture_card?: boolean | null;
129
+ /** `invoiceUrl` da fatura hospedada (pagável pelo cliente). */
130
+ invoice_url?: string | null;
131
+ /** `billingType` pedido ao Asaas. */
132
+ billing_type?: 'CREDIT_CARD' | 'UNDEFINED' | null;
133
+ /** Resultado da captura do token após o pagamento. */
134
+ capture_status?: NexFinopsBillingCardCaptureStatus | null;
135
+ /** Método `atok_` capturado por esta cobrança (a tela oferece usar como padrão). Interno (fora do portal). */
136
+ captured_payment_method_id?: string | null;
137
+ /** Provider/ambiente onde o `pay_` foi criado. */
138
+ provider_id?: string | null;
139
+ env?: 'sandbox' | 'production' | null;
122
140
  }
141
+ export type NexFinopsBillingCardCaptureStatus = 'captured' | 'no_token' | 'skipped';
123
142
  export interface INexFinopsBilling extends IFireGlobalDoc {
124
143
  customer_id: string;
125
144
  customer_ref?: string | null;
@@ -151,6 +170,11 @@ export interface INexFinopsBilling extends IFireGlobalDoc {
151
170
  /** Todos os `pay_` do Asaas já associados (A e B) — chave do roteamento do webhook. Interno. */
152
171
  card_payment_ids?: string[];
153
172
  card_charge?: INexFinopsBillingCardCharge | null;
173
+ /** Trava curta da cobrança no cartão (`charge_now`). Interno (fora das projeções). */
174
+ card_charge_lock?: {
175
+ by: string | null;
176
+ until: string;
177
+ } | null;
154
178
  }
155
179
  /**
156
180
  * Transições permitidas de status de cobrança.
@@ -107,10 +107,14 @@ export type NexFinopsBillingCardChargeMode =
107
107
  | 'subscription_adjust'
108
108
  /** Contingência A′. */
109
109
  | 'subscription_value_update'
110
- | 'token_charge';
110
+ | 'token_charge'
111
+ /** feat-253 F2b: fatura avulsa hospedada no Asaas (cartão com captura, ou cliente escolhe). */
112
+ | 'hosted_invoice';
111
113
 
112
114
  export type NexFinopsBillingCardChargeStatus =
113
115
  | 'scheduled'
116
+ /** Fatura enviada aguardando pagamento, ou cobrança com token em análise. */
117
+ | 'pending'
114
118
  | 'stale'
115
119
  | 'confirmed'
116
120
  | 'refused'
@@ -122,7 +126,7 @@ export type NexFinopsBillingCardChargeStatus =
122
126
  export interface INexFinopsBillingCardChargeHistoryEntry {
123
127
  at: string;
124
128
  by: string | null;
125
- action: 'adjust' | 'readjust' | 'revert' | 'charge' | 'event';
129
+ action: 'adjust' | 'readjust' | 'revert' | 'charge' | 'event' | 'send_invoice' | 'cancel_invoice' | 'capture';
126
130
  value?: number | null;
127
131
  event?: string | null;
128
132
  }
@@ -140,6 +144,7 @@ export interface INexFinopsBillingCardCharge {
140
144
  value_after: number;
141
145
  status: NexFinopsBillingCardChargeStatus;
142
146
  raw_status?: string | null;
147
+ /** Mantido por compatibilidade: na F2b é o momento/autor da criação do `pay_`. */
143
148
  adjusted_at: string;
144
149
  adjusted_by: { kind: 'user' | 'system'; id: string | null };
145
150
  last_event?: string | null;
@@ -147,8 +152,26 @@ export interface INexFinopsBillingCardCharge {
147
152
  failure?: { event: string; description?: string | null } | null;
148
153
  /** Capado em 30 entradas. */
149
154
  history: INexFinopsBillingCardChargeHistoryEntry[];
155
+
156
+ // ── F2b (fatura hospedada / token) ──
157
+
158
+ /** Fatura hospedada que, paga no cartão, captura o token (`billing_type: 'CREDIT_CARD'`). */
159
+ capture_card?: boolean | null;
160
+ /** `invoiceUrl` da fatura hospedada (pagável pelo cliente). */
161
+ invoice_url?: string | null;
162
+ /** `billingType` pedido ao Asaas. */
163
+ billing_type?: 'CREDIT_CARD' | 'UNDEFINED' | null;
164
+ /** Resultado da captura do token após o pagamento. */
165
+ capture_status?: NexFinopsBillingCardCaptureStatus | null;
166
+ /** Método `atok_` capturado por esta cobrança (a tela oferece usar como padrão). Interno (fora do portal). */
167
+ captured_payment_method_id?: string | null;
168
+ /** Provider/ambiente onde o `pay_` foi criado. */
169
+ provider_id?: string | null;
170
+ env?: 'sandbox' | 'production' | null;
150
171
  }
151
172
 
173
+ export type NexFinopsBillingCardCaptureStatus = 'captured' | 'no_token' | 'skipped';
174
+
152
175
  // ── Main Document ──
153
176
 
154
177
  export interface INexFinopsBilling extends IFireGlobalDoc {
@@ -214,6 +237,8 @@ export interface INexFinopsBilling extends IFireGlobalDoc {
214
237
  /** Todos os `pay_` do Asaas já associados (A e B) — chave do roteamento do webhook. Interno. */
215
238
  card_payment_ids?: string[];
216
239
  card_charge?: INexFinopsBillingCardCharge | null;
240
+ /** Trava curta da cobrança no cartão (`charge_now`). Interno (fora das projeções). */
241
+ card_charge_lock?: { by: string | null; until: string } | null;
217
242
  }
218
243
 
219
244
  // ── Status transitions ──
@@ -70,6 +70,8 @@ export interface INexFinopsCustomerPaymentMethod extends IFireGlobalDoc {
70
70
  last_synced_at?: string | null;
71
71
  last_used_at?: string | null;
72
72
  last_charge?: INexFinopsPaymentMethodLastCharge | null;
73
+ /** feat-253 F2b: `asub_` migrado aponta para o `atok_` que o substituiu. */
74
+ replaced_by_payment_method_id?: string | null;
73
75
  }
74
76
  /** Prefixos determinísticos dos ids (idempotência da descoberta). */
75
77
  export declare const NEX_FINOPS_PAYMENT_METHOD_ID_PREFIX: Record<NexFinopsPaymentMethodKind, string>;
@@ -94,6 +94,8 @@ export interface INexFinopsCustomerPaymentMethod extends IFireGlobalDoc {
94
94
  last_synced_at?: string | null;
95
95
  last_used_at?: string | null;
96
96
  last_charge?: INexFinopsPaymentMethodLastCharge | null;
97
+ /** feat-253 F2b: `asub_` migrado aponta para o `atok_` que o substituiu. */
98
+ replaced_by_payment_method_id?: string | null;
97
99
  }
98
100
 
99
101
  /** Prefixos determinísticos dos ids (idempotência da descoberta). */
@@ -156,6 +156,13 @@ export interface IAsaasEnvAuthConfig {
156
156
  operational?: {
157
157
  rate_limit_max_per_minute?: number;
158
158
  };
159
+ /**
160
+ * feat-253 (caminho B) — cobrança com `creditCardToken`. `remote_ip` é o IP enviado ao Asaas
161
+ * quando a credencial não guardou o IP do pagador. Ausente nos dois → a cobrança falha fechada.
162
+ */
163
+ card_token?: {
164
+ remote_ip?: string | null;
165
+ };
159
166
  }
160
167
  export interface IAsaasNfseCapabilities {
161
168
  enabled: boolean;
@@ -170,10 +177,17 @@ export interface IAsaasEnvFlag {
170
177
  }
171
178
  export interface IAsaasPaymentsCapabilities {
172
179
  enabled: boolean;
173
- /** feat-253 — kill-switch do caminho A (ajuste do valor da cobrança pendente da assinatura). */
180
+ /**
181
+ * feat-253 — kill-switch do caminho A (ajuste do valor da cobrança pendente da assinatura).
182
+ * @deprecated O caminho A saiu do modelo (o Asaas trava valor/vencimento após a 1ª fatura paga). Não usar.
183
+ */
174
184
  card_subscription_adjust?: IAsaasEnvFlag;
175
- /** feat-253 — flag do caminho B (cobrança com `creditCardToken`). Desligado até o Asaas habilitar. */
185
+ /** feat-253 — flag do caminho B (captura do token + cobrança com `creditCardToken`). Desligado até o Asaas habilitar. */
176
186
  card_token?: IAsaasEnvFlag;
187
+ /** feat-253 — fatura hospedada do Asaas gerada pelo Nexus para a cobrança (contingência C e entrada da captura). */
188
+ hosted_invoice?: IAsaasEnvFlag;
189
+ /** feat-253 — job diário que cobra no cartão salvo no vencimento (fatia 8). */
190
+ card_token_auto?: IAsaasEnvFlag;
177
191
  }
178
192
  export interface IAsaasProviderCapabilities {
179
193
  nfse: IAsaasNfseCapabilities;
@@ -225,6 +225,14 @@ export interface IAsaasEnvAuthConfig {
225
225
  operational?: {
226
226
  rate_limit_max_per_minute?: number;
227
227
  };
228
+
229
+ /**
230
+ * feat-253 (caminho B) — cobrança com `creditCardToken`. `remote_ip` é o IP enviado ao Asaas
231
+ * quando a credencial não guardou o IP do pagador. Ausente nos dois → a cobrança falha fechada.
232
+ */
233
+ card_token?: {
234
+ remote_ip?: string | null;
235
+ };
228
236
  }
229
237
 
230
238
  export interface IAsaasNfseCapabilities {
@@ -245,10 +253,17 @@ export interface IAsaasEnvFlag {
245
253
 
246
254
  export interface IAsaasPaymentsCapabilities {
247
255
  enabled: boolean; // false for now, future for payment links/subscriptions
248
- /** feat-253 — kill-switch do caminho A (ajuste do valor da cobrança pendente da assinatura). */
256
+ /**
257
+ * feat-253 — kill-switch do caminho A (ajuste do valor da cobrança pendente da assinatura).
258
+ * @deprecated O caminho A saiu do modelo (o Asaas trava valor/vencimento após a 1ª fatura paga). Não usar.
259
+ */
249
260
  card_subscription_adjust?: IAsaasEnvFlag;
250
- /** feat-253 — flag do caminho B (cobrança com `creditCardToken`). Desligado até o Asaas habilitar. */
261
+ /** feat-253 — flag do caminho B (captura do token + cobrança com `creditCardToken`). Desligado até o Asaas habilitar. */
251
262
  card_token?: IAsaasEnvFlag;
263
+ /** feat-253 — fatura hospedada do Asaas gerada pelo Nexus para a cobrança (contingência C e entrada da captura). */
264
+ hosted_invoice?: IAsaasEnvFlag;
265
+ /** feat-253 — job diário que cobra no cartão salvo no vencimento (fatia 8). */
266
+ card_token_auto?: IAsaasEnvFlag;
252
267
  }
253
268
 
254
269
  export interface IAsaasProviderCapabilities {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evo360-types",
3
- "version": "1.3.644",
3
+ "version": "1.3.647",
4
4
  "description": "HREVO360 Shared Types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",