zibri
    Preparing search index...

    Interface for a payment service.

    interface PaymentServiceInterface<
        Methods extends readonly PaymentMethod[],
        P extends
            readonly PaymentProviderInterface<
                Methods[number][],
                Record<Methods[number], AnyObject & { transactionId: string }>,
                Record<Methods[number], AnyObject & { transactionId: string }>,
                Record<Methods[number], AnyObject>,
                Record<Methods[number], AnyObject>,
                Record<Methods[number], boolean>,
                Record<Methods[number], boolean>,
                Record<Methods[number], boolean>,
            >[],
    > {
        cancelPayment: <M extends PaymentMethod>(
            payment:
                | PaymentForMethod<Methods, M, P>
                | PaymentReservationForMethod<Methods, M, P>,
        ) => void | Promise<void>;
        collectPaymentFromReservation: <M extends PaymentMethod>(
            payment: PaymentReservationForMethod<Methods, M, P>,
        ) => void | Promise<void>;
        confirmPayment: <M extends PaymentMethod>(
            payment: PaymentForMethod<Methods, M, P>,
        ) => void | Promise<void>;
        confirmPaymentReservation: <M extends PaymentMethod>(
            payment: PaymentReservationForMethod<Methods, M, P>,
        ) => void | Promise<void>;
        refundPayment: <M extends PaymentMethod>(
            payment: PaymentForMethod<Methods, M, P>,
        ) => void | Promise<void>;
        startPayment: <M extends PaymentMethod>(
            method: M,
            data: ValidatedPaymentDataForMethod<Methods, M, P>,
        ) =>
            | PaymentForMethod<Methods, M, P>
            | Promise<PaymentForMethod<Methods, M, P>>;
        startPaymentReservation: <M extends PaymentMethod>(
            method: M,
            data: ValidatedPaymentDataForMethod<Methods, M, P>,
        ) =>
            | PaymentReservationForMethod<Methods, M, P>
            | Promise<PaymentReservationForMethod<Methods, M, P>>;
        validatePaymentData: <M extends PaymentMethod>(
            method: M,
            data: PaymentDataForMethod<Methods, M, P>,
        ) =>
            | ValidatedPaymentDataForMethod<Methods, M, P>
            | Promise<ValidatedPaymentDataForMethod<Methods, M, P>>;
    }

    Type Parameters

    Implemented by

    Index

    Properties

    cancelPayment: <M extends PaymentMethod>(
        payment:
            | PaymentForMethod<Methods, M, P>
            | PaymentReservationForMethod<Methods, M, P>,
    ) => void | Promise<void>

    Cancels the given payment. Only works if it has not been paid already.

    collectPaymentFromReservation: <M extends PaymentMethod>(
        payment: PaymentReservationForMethod<Methods, M, P>,
    ) => void | Promise<void>

    Collects a payment of the given reserved payment.

    confirmPayment: <M extends PaymentMethod>(
        payment: PaymentForMethod<Methods, M, P>,
    ) => void | Promise<void>

    Confirms the given payment.

    confirmPaymentReservation: <M extends PaymentMethod>(
        payment: PaymentReservationForMethod<Methods, M, P>,
    ) => void | Promise<void>

    Confirms a payment reservations. This just reserves/freezes the funds, it does NOT move any money yet.

    refundPayment: <M extends PaymentMethod>(
        payment: PaymentForMethod<Methods, M, P>,
    ) => void | Promise<void>

    Refunds the given payment.

    startPayment: <M extends PaymentMethod>(
        method: M,
        data: ValidatedPaymentDataForMethod<Methods, M, P>,
    ) =>
        | PaymentForMethod<Methods, M, P>
        | Promise<PaymentForMethod<Methods, M, P>>

    Starts a payment with the given method and data.

    startPaymentReservation: <M extends PaymentMethod>(
        method: M,
        data: ValidatedPaymentDataForMethod<Methods, M, P>,
    ) =>
        | PaymentReservationForMethod<Methods, M, P>
        | Promise<PaymentReservationForMethod<Methods, M, P>>

    Starts a payment reservation.

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

    Validates the given data of the given payment method.