@cfxlabsinc/b2b-services
    Preparing search index...

    Girasol transaction authorization event payload

    type GirasolTransactionEvent = {
        amount?: number;
        payload: {
            amount: { cardholder: { amount: string } };
            card: { card_id: string };
            merchant?: {
                category_code?: string;
                city?: string;
                country?: string;
                mcc: string;
                name: string;
            };
            original_transaction?: { transaction_id: string };
            transaction_id: string;
            transaction_type: string;
        };
        reason: string;
        request_type: "authorization"
        | "reversal"
        | "notification";
        status: "declined" | "approved";
        statusDescription?: string;
    }
    Index
    amount?: number

    Ignored and not validated: a number on every event since 2025-11-13, absent before, and not always equal to payload.amount.cardholder.amount, which is the amount read.

    payload: {
        amount: { cardholder: { amount: string } };
        card: { card_id: string };
        merchant?: {
            category_code?: string;
            city?: string;
            country?: string;
            mcc: string;
            name: string;
        };
        original_transaction?: { transaction_id: string };
        transaction_id: string;
        transaction_type: string;
    }

    Type Declaration

    • amount: { cardholder: { amount: string } }
    • card: { card_id: string }
    • Optionalmerchant?: {
          category_code?: string;
          city?: string;
          country?: string;
          mcc: string;
          name: string;
      }
    • Optionaloriginal_transaction?: { transaction_id: string }
    • transaction_id: string
    • transaction_type: string

      One of GIRASOL_TRANSACTION_TYPES so far. Left a string because the webhook must store an unrecognised value rather than 400 it (Hookdeck drops a 4xx); girasolTransactionTypeOf narrows it.

    reason: string
    request_type: "authorization" | "reversal" | "notification"
    status: "declined" | "approved"
    statusDescription?: string