UNPKG

sdk-node-apis-efi

Version:

Module for integration with Efi Bank API

576 lines (504 loc) 14.2 kB
import { z } from 'zod/v4' export const StatusPixReceivedSchema = z.enum(['ATIVA', 'CONCLUIDA', 'REMOVIDA_PELO_USUARIO_RECEBEDOR', 'REMOVIDA_PELO_PSP']) export const StatusPixDevolutionSchema = z.enum(['EM_PROCESSAMENTO', 'DEVOLVIDO', 'NAO_REALIZADO']) export type StatusPixDevolution = z.infer<typeof StatusPixDevolutionSchema> export type StatusPixReceived = z.infer<typeof StatusPixReceivedSchema> export const PixCOBCalendarioSchema = z .object({ expiracao: z.number(), }) .strict() export type PixCOBCalendario = z.infer<typeof PixCOBCalendarioSchema> export const PixCOBVCalendarioSchema = z .object({ dataDeVencimento: z.string(), validadeAposVencimento: z.number().optional(), }) .strict() export type PixCOBVCalendario = z.infer<typeof PixCOBVCalendarioSchema> export const PixCOBDevedorSchema = z .union([ z .object({ cpf: z.string().describe('CPF do devedor (somente números)'), nome: z.string().describe('Nome do devedor'), }) .strict(), z .object({ cnpj: z.string().describe('CNPJ do devedor (somente números)'), nome: z.string().describe('Nome do devedor'), }) .strict(), ]) .optional() export type PixCOBDevedor = z.infer<typeof PixCOBDevedorSchema> export const PixCOBVDevedorSchema = z.union([ z .object({ cpf: z.string().describe('CPF do devedor (somente números)'), nome: z.string().describe('Nome do devedor'), email: z.email().optional(), logradouro: z.string().optional(), cidade: z.string().optional(), uf: z.string().optional(), cep: z.string().optional(), }) .strict(), z .object({ cnpj: z.string().describe('CNPJ do devedor (somente números)'), nome: z.string().describe('Nome do devedor'), email: z.email().optional(), logradouro: z.string().optional(), cidade: z.string().optional(), uf: z.string().optional(), cep: z.string().optional(), }) .strict(), ]) export type PixCOBVDevedor = z.infer<typeof PixCOBVDevedorSchema> export const PixCOBValorSchema = z .object({ original: z.string(), }) .strict() export type PixCOBValor = z.infer<typeof PixCOBValorSchema> export const PixCOBVValorSchema = z .object({ original: z.string(), multa: z .object({ modalidade: z.number(), valorPerc: z.string(), }) .strict() .optional(), juros: z .object({ modalidade: z.number(), valorPerc: z.string(), }) .strict() .optional(), abatimento: z .object({ modalidade: z.number(), valorPerc: z.string(), }) .strict() .optional(), desconto: z .union([ z .object({ modalidade: z.number(), valorPerc: z.string(), }) .strict(), z .object({ modalidade: z.number(), descontoDataFixa: z.array( z.object({ data: z.string(), valorPerc: z.string(), }), ), }) .strict(), ]) .optional(), }) .strict() export type PixCOBVValor = z.infer<typeof PixCOBVValorSchema> export const PixInfoAdicionalSchema = z .object({ nome: z.string(), valor: z.string(), }) .strict() export type PixInfoAdicional = z.infer<typeof PixInfoAdicionalSchema> // ------------------------------------------- // Criar cobrança imediata (sem txid) // ------------------------------------------- export const PixCreateImmediateChargeBodySchema = z .object({ calendario: PixCOBCalendarioSchema, devedor: PixCOBDevedorSchema, valor: PixCOBValorSchema, chave: z.string(), solicitacaoPagador: z.string().optional(), loc: z.object({ id: z.number() }).optional(), infoAdicionais: z.array(PixInfoAdicionalSchema).optional(), }) .strict() export type PixCreateImmediateChargeBody = z.infer<typeof PixCreateImmediateChargeBodySchema> export const PixCreateImmediateChargeResponseSchema = z .object({ calendario: PixCOBCalendarioSchema.extend({ criacao: z.string() }), txid: z.string(), revisao: z.number(), status: StatusPixReceivedSchema, valor: PixCOBValorSchema, chave: z.string(), devedor: PixCOBDevedorSchema, solicitacaoPagador: z.string().optional(), infoAdicionais: z.array(PixInfoAdicionalSchema).optional(), loc: z.object({ id: z.number(), location: z.string(), tipoCob: z.literal('cob'), criacao: z.string(), }), location: z.string(), pixCopiaECola: z.string(), }) .strict() export type PixCreateImmediateChargeResponse = z.infer<typeof PixCreateImmediateChargeResponseSchema> // ------------------------------------------- // Criar cobrança (com txid) // ------------------------------------------- export const PixCreateChargeParamsSchema = z .object({ txid: z.string(), }) .strict() export type PixCreateChargeParams = z.infer<typeof PixCreateChargeParamsSchema> export const PixCreateChargeBodySchema = PixCreateImmediateChargeBodySchema export type PixCreateChargeBody = z.infer<typeof PixCreateChargeBodySchema> export const PixCreateChargeResponseSchema = PixCreateImmediateChargeResponseSchema export type PixCreateChargeResponse = z.infer<typeof PixCreateChargeResponseSchema> // ------------------------------------------- // Revisar cobrança // ------------------------------------------- export const PixUpdateChargeParamsSchema = z .object({ txid: z.string(), }) .strict() export type PixUpdateChargeParams = z.infer<typeof PixUpdateChargeParamsSchema> export const PixUpdateChargeBodySchema = z .object({ calendario: PixCOBCalendarioSchema.optional(), devedor: PixCOBDevedorSchema, valor: PixCOBValorSchema.optional(), status: StatusPixReceivedSchema.optional(), chave: z.string().optional(), solicitacaoPagador: z.string().optional(), loc: z.object({ id: z.number() }).optional(), infoAdicionais: z.array(PixInfoAdicionalSchema).optional(), }) .strict() export type PixUpdateChargeBody = z.infer<typeof PixUpdateChargeBodySchema> export const PixUpdateChargeResponseSchema = z .object({ calendario: PixCOBCalendarioSchema.extend({ criacao: z.string(), }), txid: z.string(), revisao: z.number(), status: StatusPixReceivedSchema, valor: PixCOBValorSchema, chave: z.string(), devedor: PixCOBDevedorSchema, solicitacaoPagador: z.string().optional(), infoAdicionais: z.array(PixInfoAdicionalSchema).optional(), loc: z.object({ id: z.number(), location: z.string(), tipoCob: z.literal('cob'), criacao: z.string(), }), location: z.string(), pixCopiaECola: z.string(), }) .strict() export type PixUpdateChargeResponse = z.infer<typeof PixUpdateChargeResponseSchema> // ------------------------------------------- // Consultar cobrança // ------------------------------------------- export const PixDetailChargeParamsSchema = z .object({ txid: z.string(), revisao: z.number().optional(), }) .strict() export type PixDetailChargeParams = z.infer<typeof PixDetailChargeParamsSchema> export const PixDetailChargeResponseSchema = z .object({ calendario: PixCOBCalendarioSchema.extend({ criacao: z.string(), }), txid: z.string(), revisao: z.number(), status: StatusPixReceivedSchema, valor: PixCOBValorSchema, chave: z.string(), devedor: PixCOBDevedorSchema, solicitacaoPagador: z.string().optional(), infoAdicionais: z.array(PixInfoAdicionalSchema).optional(), loc: z.object({ id: z.number(), location: z.string(), tipoCob: z.literal('cob'), criacao: z.string(), }), location: z.string(), pixCopiaECola: z.string().optional(), pix: z .array( z .object({ endToEndId: z.string(), txid: z.string(), valor: z.string(), horario: z.string(), infoPagador: z.string().optional(), devolucoes: z .array( z .object({ id: z.string(), rtrId: z.string(), valor: z.string(), horario: z.object({ solicitacao: z.string(), }), status: StatusPixDevolutionSchema, }) .strict(), ) .optional(), }) .strict(), ) .optional(), }) .strict() export type PixDetailChargeResponse = z.infer<typeof PixDetailChargeResponseSchema> // ------------------------------------------- // Listar cobranças // ------------------------------------------- export const PixListChargesParamsSchema = z .object({ inicio: z.string(), fim: z.string(), cpf: z.string().optional(), cnpj: z.string().optional(), status: StatusPixReceivedSchema.optional(), 'paginacao.paginaAtual': z.number().optional(), 'paginacao.itensPorPagina': z.number().optional(), }) .strict() export type PixListChargesParams = z.infer<typeof PixListChargesParamsSchema> export const PixListChargesResponseSchema = z .object({ parametros: z .object({ inicio: z.string(), fim: z.string(), paginacao: z .object({ paginaAtual: z.number(), itensPorPagina: z.number(), quantidadeDePaginas: z.number(), quantidadeTotalDeItens: z.number(), }) .strict(), cpf: z.string().optional(), cnpj: z.string().optional(), status: StatusPixReceivedSchema.optional(), }) .strict(), cobs: z.array( z .object({ calendario: PixCOBCalendarioSchema.extend({ criacao: z.string(), }), txid: z.string(), revisao: z.number(), status: StatusPixReceivedSchema, valor: PixCOBValorSchema, chave: z.string(), devedor: PixCOBDevedorSchema, solicitacaoPagador: z.string().optional(), infoAdicionais: z.array(PixInfoAdicionalSchema).optional(), loc: z.object({ id: z.number(), location: z.string(), tipoCob: z.literal('cob'), criacao: z.string(), }), location: z.string(), pixCopiaECola: z.string().optional(), pix: z .array( z .object({ endToEndId: z.string(), txid: z.string(), valor: z.string(), chave: z.string(), horario: z.string(), infoPagador: z.string().optional(), devolucoes: z .array( z .object({ id: z.string(), rtrId: z.string(), valor: z.string(), horario: z.object({ solicitacao: z.string(), liquidacao: z.string().optional(), }), status: StatusPixDevolutionSchema, }) .strict(), ) .optional(), }) .strict(), ) .optional(), }) .strict(), ), }) .strict() export type PixListChargesResponse = z.infer<typeof PixListChargesResponseSchema> // ------------------------------------------- // Criar cobrança com vencimento // ------------------------------------------- export const PixCreateDueChargeParamsSchema = z .object({ txid: z.string(), }) .strict() export const PixCreateDueChargeBodySchema = z .object({ calendario: PixCOBVCalendarioSchema, devedor: PixCOBVDevedorSchema, valor: PixCOBVValorSchema, chave: z.string(), solicitacaoPagador: z.string().optional(), loc: z.object({ id: z.number() }).optional(), infoAdicionais: z.array(PixInfoAdicionalSchema).optional(), }) .strict() export type PixCreateDueChargeBody = z.infer<typeof PixCreateDueChargeBodySchema> export const PixCreateDueChargeResponseSchema = z .object({ calendario: PixCOBVCalendarioSchema.extend({ criacao: z.string() }), txid: z.string(), revisao: z.number(), status: StatusPixReceivedSchema, devedor: PixCOBVDevedorSchema, recebedor: z.union([ z .object({ cpf: z.string(), nome: z.string(), logradouro: z.string(), cidade: z.string(), uf: z.string(), cep: z.string(), }) .strict(), z .object({ cnpj: z.string(), nome: z.string(), nomeFantasia: z.string(), logradouro: z.string(), cidade: z.string(), uf: z.string(), cep: z.string(), }) .strict(), ]), valor: PixCOBVValorSchema, chave: z.string(), solicitacaoPagador: z.string().optional(), infoAdicionais: z.array(PixInfoAdicionalSchema).optional(), loc: z.object({ id: z.number(), location: z.string(), tipoCob: z.literal('cobv'), criacao: z.string(), }), pixCopiaECola: z.string(), }) .strict() export type PixCreateDueChargeResponse = z.infer<typeof PixCreateDueChargeResponseSchema> // ------------------------------------------- // Revisar cobrança com vencimento // ------------------------------------------- export const PixUpdateDueChargeParamsSchema = z .object({ txid: z.string(), }) .strict() export type PixUpdateDueChargeParams = z.infer<typeof PixUpdateDueChargeParamsSchema> export const PixUpdateDueChargeBodySchema = z .object({ calendario: PixCOBCalendarioSchema.optional(), devedor: PixCOBVDevedorSchema, valor: PixCOBVValorSchema.optional(), status: StatusPixReceivedSchema.optional(), chave: z.string().optional(), solicitacaoPagador: z.string().optional(), loc: z.object({ id: z.number() }).optional(), infoAdicionais: z.array(PixInfoAdicionalSchema).optional(), }) .strict() export type PixUpdateDueChargeBody = z.infer<typeof PixUpdateDueChargeBodySchema> export const PixUpdateDueChargeResponseSchema = z .object({ calendario: PixCOBVCalendarioSchema.extend({ criacao: z.string() }), txid: z.string(), revisao: z.number(), status: StatusPixReceivedSchema, valor: PixCOBVValorSchema, chave: z.string(), devedor: PixCOBVDevedorSchema, recebedor: z.union([ z .object({ cpf: z.string(), nome: z.string(), logradouro: z.string(), cidade: z.string(), uf: z.string(), cep: z.string(), }) .strict(), z .object({ cnpj: z.string(), nome: z.string(), nomeFantasia: z.string(), logradouro: z.string(), cidade: z.string(), uf: z.string(), cep: z.string(), }) .strict(), ]), solicitacaoPagador: z.string().optional(), infoAdicionais: z.array(PixInfoAdicionalSchema).optional(), loc: z.object({ id: z.number(), location: z.string(), tipoCob: z.literal('cobv'), criacao: z.string(), }), pixCopiaECola: z.string(), }) .strict() export type PixUpdateDueChargeResponse = z.infer<typeof PixUpdateDueChargeResponseSchema> // --