zibri
    Preparing search index...

    Interface PaymentProviderInterface<SupportedMethods, PaymentDataForMethod, ValidatedPaymentDataForMethod, ProviderPaymentDataForMethod, ProviderReservationPaymentDataForMethod, CancellationSupport, RefundSupport, ReservationSupport>

    Interface for a payment provider.

    interface PaymentProviderInterface<
        SupportedMethods extends readonly PaymentMethod[],
        PaymentDataForMethod extends
            Record<SupportedMethods[number], AnyObject & { transactionId: string }>,
        ValidatedPaymentDataForMethod extends
            Record<SupportedMethods[number], AnyObject & { transactionId: string }>,
        ProviderPaymentDataForMethod extends
            Record<SupportedMethods[number], AnyObject>,
        ProviderReservationPaymentDataForMethod extends
            Record<SupportedMethods[number], AnyObject>,
        CancellationSupport extends Record<SupportedMethods[number], boolean>,
        RefundSupport extends Record<SupportedMethods[number], boolean>,
        ReservationSupport extends Record<SupportedMethods[number], boolean>,
    > {
        cancellationSupported: CancellationSupport;
        cancelPayment: <M extends PaymentMethod>(
            payment:
                | Payment<M, ProviderPaymentDataForMethod[M]>
                | Payment<M, ProviderReservationPaymentDataForMethod[M]>,
        ) => void | Promise<void>;
        collectPaymentFromReservation: <M extends PaymentMethod>(
            payment: Payment<M, ProviderReservationPaymentDataForMethod[M]>,
        ) => void | Promise<void>;
        confirmPayment: <M extends PaymentMethod>(
            payment: Payment<M, ProviderPaymentDataForMethod[M]>,
        ) => void | Promise<void>;
        confirmPaymentReservation: <M extends PaymentMethod>(
            payment: Payment<M, ProviderReservationPaymentDataForMethod[M]>,
        ) => void | Promise<void>;
        name: string;
        refundPayment: <M extends PaymentMethod>(
            payment: Payment<M, ProviderPaymentDataForMethod[M]>,
        ) => void | Promise<void>;
        refundSupported: RefundSupport;
        reservationSupported: ReservationSupport;
        startPayment: <M extends PaymentMethod>(
            method: M,
            data: ValidatedPaymentDataForMethod[M],
        ) =>
            | Payment<M, ProviderPaymentDataForMethod[M]>
            | Promise<Payment<M, ProviderPaymentDataForMethod[M]>>;
        startPaymentReservation: <M extends PaymentMethod>(
            method: M,
            data: ValidatedPaymentDataForMethod[M],
        ) =>
            | Payment<M, ProviderReservationPaymentDataForMethod[M]>
            | Promise<Payment<M, ProviderReservationPaymentDataForMethod[M]>>;
        validatePaymentData: <M extends PaymentMethod>(
            method: M,
            data: PaymentDataForMethod[M],
        ) =>
            | ValidatedPaymentDataForMethod[M]
            | Promise<ValidatedPaymentDataForMethod[M]>;
    }

    Type Parameters

    Implemented by

    Index

    Properties

    cancellationSupported: CancellationSupport

    A map that defines which payment methods support cancellation.

    cancelPayment: <M extends PaymentMethod>(
        payment:
            | Payment<M, ProviderPaymentDataForMethod[M]>
            | Payment<M, ProviderReservationPaymentDataForMethod[M]>,
    ) => void | Promise<void>

    Cancels the given payment.

    collectPaymentFromReservation: <M extends PaymentMethod>(
        payment: Payment<M, ProviderReservationPaymentDataForMethod[M]>,
    ) => void | Promise<void>

    Collects payment from the given payment reservation.

    confirmPayment: <M extends PaymentMethod>(
        payment: Payment<M, ProviderPaymentDataForMethod[M]>,
    ) => void | Promise<void>

    Confirms and finishes a payment.

    confirmPaymentReservation: <M extends PaymentMethod>(
        payment: Payment<M, ProviderReservationPaymentDataForMethod[M]>,
    ) => void | Promise<void>

    Confirms The given payment reservation. This does NOT move any money yet, it just reserves the funds.

    name: string

    The unique name of the provider, used to differentiate between them.

    refundPayment: <M extends PaymentMethod>(
        payment: Payment<M, ProviderPaymentDataForMethod[M]>,
    ) => void | Promise<void>

    Refunds the given payment.

    refundSupported: RefundSupport

    A map that defines which payment methods support refunding.

    reservationSupported: ReservationSupport

    A map that defines which payment methods support reservation.

    startPayment: <M extends PaymentMethod>(
        method: M,
        data: ValidatedPaymentDataForMethod[M],
    ) =>
        | Payment<M, ProviderPaymentDataForMethod[M]>
        | Promise<Payment<M, ProviderPaymentDataForMethod[M]>>

    Starts a new payment with the given method and data.

    startPaymentReservation: <M extends PaymentMethod>(
        method: M,
        data: ValidatedPaymentDataForMethod[M],
    ) =>
        | Payment<M, ProviderReservationPaymentDataForMethod[M]>
        | Promise<Payment<M, ProviderReservationPaymentDataForMethod[M]>>

    Starts a new payment reservation with the given method and data.

    validatePaymentData: <M extends PaymentMethod>(
        method: M,
        data: PaymentDataForMethod[M],
    ) =>
        | ValidatedPaymentDataForMethod[M]
        | Promise<ValidatedPaymentDataForMethod[M]>

    Validates the given payment data for the given method.