/* tslint:disable */ /* eslint-disable */ /** * Paystack * The OpenAPI specification of the Paystack API that merchants and developers can harness to build financial solutions in Africa. * * The version of the Paystack Node library: 1.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { exists, mapValues } from '../runtime'; /** * * @export * @interface TransactionInitialize */ export interface TransactionInitialize { /** * Customer's email address * @type {string} * @memberof TransactionInitialize */ email: string; /** * Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR * @type {number} * @memberof TransactionInitialize */ amount: number; /** * The transaction currency * @type {string} * @memberof TransactionInitialize */ currency?: string; /** * Unique transaction reference. Only -, ., = and alphanumeric characters allowed. * @type {string} * @memberof TransactionInitialize */ reference?: string; /** * Fully qualified url, e.g. https://example.com/ . Use this to override the callback url provided on the dashboard for this transaction * @type {string} * @memberof TransactionInitialize */ callbackUrl?: string; /** * If transaction is to create a subscription to a predefined plan, provide plan code here. * This would invalidate the value provided in amount * @type {string} * @memberof TransactionInitialize */ plan?: string; /** * Number of times to charge customer during subscription to plan * @type {number} * @memberof TransactionInitialize */ invoiceLimit?: number; /** * Stringified JSON object of custom data * @type {string} * @memberof TransactionInitialize */ metadata?: string; /** * An array of payment channels to control what channels you want to make available to the user to make a payment with * @type {Array} * @memberof TransactionInitialize */ channels?: Array; /** * The split code of the transaction split * @type {string} * @memberof TransactionInitialize */ splitCode?: string; /** * The code for the subaccount that owns the payment * @type {string} * @memberof TransactionInitialize */ subaccount?: string; /** * A flat fee to charge the subaccount for a transaction. * This overrides the split percentage set when the subaccount was created * @type {string} * @memberof TransactionInitialize */ transactionCharge?: string; /** * The beare of the transaction charge * @type {string} * @memberof TransactionInitialize */ bearer?: string; } export function TransactionInitializeFromJSON(json: any): TransactionInitialize { return TransactionInitializeFromJSONTyped(json, false); } export function TransactionInitializeFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransactionInitialize { if ((json === undefined) || (json === null)) { return json; } return { 'email': json['email'], 'amount': json['amount'], 'currency': !exists(json, 'currency') ? undefined : json['currency'], 'reference': !exists(json, 'reference') ? undefined : json['reference'], 'callbackUrl': !exists(json, 'callback_url') ? undefined : json['callback_url'], 'plan': !exists(json, 'plan') ? undefined : json['plan'], 'invoiceLimit': !exists(json, 'invoice_limit') ? undefined : json['invoice_limit'], 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], 'channels': !exists(json, 'channels') ? undefined : json['channels'], 'splitCode': !exists(json, 'split_code') ? undefined : json['split_code'], 'subaccount': !exists(json, 'subaccount') ? undefined : json['subaccount'], 'transactionCharge': !exists(json, 'transaction_charge') ? undefined : json['transaction_charge'], 'bearer': !exists(json, 'bearer') ? undefined : json['bearer'], }; } export function TransactionInitializeToJSON(value?: TransactionInitialize | null): any { if (value === undefined) { return undefined; } if (value === null) { return null; } return { 'email': value.email, 'amount': value.amount, 'currency': value.currency, 'reference': value.reference, 'callback_url': value.callbackUrl, 'plan': value.plan, 'invoice_limit': value.invoiceLimit, 'metadata': value.metadata, 'channels': value.channels, 'split_code': value.splitCode, 'subaccount': value.subaccount, 'transaction_charge': value.transactionCharge, 'bearer': value.bearer, }; }