Saltar al contenido principal

API de Pagos - FlowPayments

La clase FlowPayments permite interactuar con la API de Pagos de Flow.cl, proporcionando métodos para crear, consultar y gestionar pagos realizados mediante la plataforma.

Inicialización

import Flow from '@nicotordev/flowcl-pagos';

const flow: Flow = new Flow(
'tu_api_key', // string
'tu_secret_key',
'sandbox', // o 'production'
);

const payments = flow.payments;

Métodos Disponibles

Crear Pagos

Crear un pago

payments.create(data: FlowCreatePaymentRequest): Promise<FlowCreatePaymentResponse>
  • Request (FlowCreatePaymentRequest):

    • commerceOrder: string
    • subject: string
    • currency: string (opcional)
    • amount: number
    • email: string
    • paymentMethod: string FlowPaymentMethods (opcional) // Este parametro es un numero en la API de Flow, se hace una conversión interna a string
    • urlReturn: string
    • urlConfirmation: string
    • optional: Record<string, string> (opcional)
    • timeout: number (opcional)
    • merchantId: string (opcional)
    • paymentCurrency: string (opcional)
  • Response (FlowCreatePaymentResponse):

    • token: string
    • url: string
    • flowOrder: number
    • redirectUrl: string

Crear Pago por Email

payments.createByEmail(data: FlowCreatePaymentByEmailRequest): Promise<FlowCreatePaymentByEmailResponse>
  • Request (FlowCreatePaymentByEmailRequest):

    • commerceOrder: string
    • subject: string
    • currency: string (opcional)
    • amount: number
    • email: string
    • paymentMethod: string FlowPaymentMethods (opcional) // Este parametro es un numero en la API de Flow, se hace una conversión interna a string
    • urlConfirmation: string
    • urlReturn: string
    • optional: string (opcional)
    • timeout: number (opcional)
    • merchantId: string (opcional)
    • payment_currency: string (opcional)
  • Response (FlowCreatePaymentByEmailResponse):

    • token: string
    • url: string
    • flowOrder: number
    • redirectUrl: string

Consultar Estado del Pago

Estado por Token

payments.status.byToken(token: string): Promise<FlowPaymentStatusResponse>

Estado por ID del Comercio

payments.status.byCommerceId(commerceId: string): Promise<FlowPaymentStatusResponse>

Estado por Número de Orden Flow

payments.status.byFlowOrder(flowOrder: number): Promise<FlowPaymentStatusResponse>
  • Response (FlowPaymentStatusResponse):

    • flowOrder: number
    • commerceOrder: string
    • requestDate: string
    • status: number 1 | 2 | 3 | 4
    • statusStr: FlowPaymentStatus
    • subject: string
    • currency: string
    • amount: number
    • payer: string
    • optional: string | null
    • pendingInfo: {
      • media: string
      • date: string }
    • paymentData: {
      • date: string | null;
      • media: string | null;
      • conversionDate: string | null;
      • conversionRate: number | null;
      • amount: number | null;
      • currency: string | null;
      • fee: number | null;
      • balance: number | null;
      • transferDate: string | null; } (opcional)
    • merchantId: string (opcional)

Estado Extendido del Pago

Por Token

payments.statusExtended.byToken(token: string): Promise<FlowPaymentsStatusExtendedResponse>

Por número de orden Flow

payments.statusExtended.byFlowOrder(flowOrder: number): Promise<FlowPaymentsStatusExtendedResponse>
  • Response (FlowPaymentsStatusExtendedResponse):
    • flowOrder: number
    • commerceOrder: string
    • requestDate: string
    • status: 1 | 2 | 3 | 4
    • statusStr: FlowPaymentStatus
    • subject: string
    • currency: string
    • amount: number
    • payer: string
    • optional: Record<string, unknown> | null
    • pendingInfo: {
      • media: string
      • date: string }
    • paymentData: {
      • date: string | null;
      • media: string | null;
      • conversionDate: string | null;
      • conversionRate: number | null;
      • amount: number | null;
      • currency: string | null;
      • fee: number | null;
      • balance: number | null;
      • transferDate: string | null; } (opcional)
    • paymentCurrency: string
    • paymentAmount: number
    • paymentMethod: string FlowPaymentMethods (opcional) // Este parametro es un numero en la API de Flow, se hace una conversión interna a string
    • merchantId: string (opcional)
    • lastError: {
      • medioCode: string
      • code: string
      • message: string }(opcional)

Consultas de Pagos

Listar Pagos Recibidos por Fecha

payments.listPaymentsByDate(data: FlowPaymentsReceivedByDateRequest): Promise<FlowPaymentsReceivedByDateResponse>
  • Request (FlowPaymentsReceivedByDateRequest):

    • date: string | Date
    • start: number (opcional)
    • limit: number (opcional)
  • Response (FlowPaymentsReceivedByDateResponse):

    • total: number
    • hasMore: 0 | 1
    • data: string

Pagos Recibidos Extendidos por Fecha

payments.listPaymentsExtendedByDate(data: FlowTransactionsReceivedByDateRequest): Promise<FlowTransactionsReceivedByDateResponse>
  • Request (FlowTransactionsReceivedByDateRequest):

    • date: string | Date
    • start: number (opcional)
    • limit: number (opcional)
  • Response (FlowTransactionsReceivedByDateResponse):

    • total: number
    • hasMore: 0 | 1
    • data: string

Manejo de Errores

ErrorDescripción
FlowAPIErrorError general de API de Flow.
FlowCreatePaymentErrorError al crear un pago.
FlowCreatePaymentByEmailErrorError al crear un pago por email.
FlowPaymentStatusErrorError al obtener el estado del pago.
FlowPaymentsListErrorError al listar pagos por fecha.
FlowPaymentsStatusExtendedErrorError al obtener el estado extendido del pago.

Para información adicional, visita la documentación oficial: Flow.cl API Docs - Payments.

Nota: Implementa siempre control de errores robusto en tu aplicación.