/**
 * Stripe Node - Version 1
 * Discriminator: resource=charge, operation=get
 */


interface Credentials {
  stripeApi: CredentialReference;
}

/** Get a balance */
export type StripeV1ChargeGetParams = {
  resource: 'charge';
  operation: 'get';
/**
 * ID of the charge to retrieve
 */
    chargeId?: string | Expression<string> | PlaceholderValue;
};

export type StripeV1ChargeGetOutput = {
  amount?: number;
  amount_captured?: number;
  amount_refunded?: number;
  application_fee?: null;
  application_fee_amount?: null;
  captured?: boolean;
  created?: number;
  currency?: string;
  destination?: null;
  dispute?: null;
  disputed?: boolean;
  failure_balance_transaction?: null;
  id?: string;
  livemode?: boolean;
  metadata?: {
    date_due?: string;
    erp_provider_dimension_id?: string;
    invoice_id?: string;
    period_end?: string;
    period_start?: string;
    reservation_id?: string;
    type?: string;
  };
  object?: string;
  on_behalf_of?: null;
  order?: null;
  outcome?: {
    network_status?: string;
    risk_level?: string;
    risk_score?: number;
    seller_message?: string;
    type?: string;
  };
  paid?: boolean;
  payment_intent?: string;
  payment_method?: string;
  payment_method_details?: {
    card?: {
      brand?: string;
      capture_before?: number;
      country?: string;
      exp_month?: number;
      exp_year?: number;
      extended_authorization?: {
        status?: string;
      };
      fingerprint?: string;
      funding?: string;
      incremental_authorization?: {
        status?: string;
      };
      installments?: null;
      last4?: string;
      mandate?: null;
      multicapture?: {
        status?: string;
      };
      network?: string;
      network_token?: {
        used?: boolean;
      };
      network_transaction_id?: string;
      overcapture?: {
        maximum_amount_capturable?: number;
        status?: string;
      };
      regulated_status?: string;
      three_d_secure?: null;
    };
    type?: string;
  };
  refunded?: boolean;
  refunds?: {
    data?: Array<{
      amount?: number;
      balance_transaction?: string;
      charge?: string;
      created?: number;
      currency?: string;
      destination_details?: {
        card?: {
          reference?: string;
          reference_status?: string;
          reference_type?: string;
          type?: string;
        };
        type?: string;
      };
      id?: string;
      object?: string;
      payment_intent?: string;
      reason?: null;
      source_transfer_reversal?: null;
      status?: string;
      transfer_reversal?: null;
    }>;
    has_more?: boolean;
    object?: string;
    total_count?: number;
    url?: string;
  };
  review?: null;
  shipping?: null;
  source?: null;
  source_transfer?: null;
  statement_descriptor?: null;
  statement_descriptor_suffix?: null;
  status?: string;
  transfer_data?: null;
  transfer_group?: null;
};

export type StripeV1ChargeGetNode = {
  type: 'n8n-nodes-base.stripe';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<StripeV1ChargeGetParams>;
  output?: Items<StripeV1ChargeGetOutput>;
};