/* tslint:disable */
/* eslint-disable */
/**
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

// May contain unused imports in some cases
// @ts-ignore
import { FiatMoneyUsd } from "./fiat-money-usd";

/**
 * Return information if the payout is returned by bank. Only present if `errorCode` of payout is `transaction_returned`.
 * @export
 * @interface UnwithdrawalObject
 */
export interface UnwithdrawalObject {
  /**
   * Unique system generated identifier for the entity.
   * @type {string}
   * @memberof UnwithdrawalObject
   */
  id?: string;
  /**
   * Universally unique identifier (UUID v4) of the payout that is associated with the return.
   * @type {string}
   * @memberof UnwithdrawalObject
   */
  payoutId?: string;
  /**
   *
   * @type {FiatMoneyUsd}
   * @memberof UnwithdrawalObject
   */
  amount?: FiatMoneyUsd;
  /**
   *
   * @type {FiatMoneyUsd}
   * @memberof UnwithdrawalObject
   */
  fees?: FiatMoneyUsd;
  /**
   * Reason for the return.
   * @type {string}
   * @memberof UnwithdrawalObject
   */
  reason?: string;
  /**
   * Status of the return. A `pending` status indicates that the return is in process; `complete` indicates it finished successfully; `failed` indicates it failed.
   * @type {string}
   * @memberof UnwithdrawalObject
   */
  status?: UnwithdrawalObjectStatusEnum;
  /**
   * ISO-8601 UTC date/time format.
   * @type {string}
   * @memberof UnwithdrawalObject
   */
  createDate?: string;
  /**
   * ISO-8601 UTC date/time format.
   * @type {string}
   * @memberof UnwithdrawalObject
   */
  updateDate?: string;
}

export const UnwithdrawalObjectStatusEnum = {
  Pending: "pending",
  Complete: "complete",
  Failed: "failed"
} as const;

export type UnwithdrawalObjectStatusEnum =
  typeof UnwithdrawalObjectStatusEnum[keyof typeof UnwithdrawalObjectStatusEnum];
