UNPKG

@vulog/aima-billing

Version:

Invoice management, credits, wallets, and refunds.

30 lines (25 loc) 932 B
import { Client } from '@vulog/aima-client'; import { z } from 'zod'; import { Invoice, ManualPayment } from './types'; const schema = z.object({ invoiceId: z.string().trim().min(1).uuid(), manualPayment: z.object({ requiresActionReturnUrl: z.string().default(''), online: z.boolean().default(true), scope: z.enum(['RENTAL', 'DEPOSIT']), }), }); export const payInvoice = async (client: Client, invoiceId: string, manualPayment: ManualPayment) => { const result = schema.safeParse({ invoiceId, manualPayment }); if (!result.success) { throw new TypeError('Invalid args', { cause: result.error.issues, }); } return client .post<Invoice>( `/boapi/proxy/billing/fleets/${client.clientOptions.fleetId}/invoices/${result.data.invoiceId}/payment`, result.data.manualPayment ) .then(({ data }) => data); };