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.