Main Page | Class Hierarchy | Data Structures | File List | Data Fields | Globals

inc/libofx.h File Reference


Detailed Description

Main header file containing the LibOfx API.

This file should be included for all applications who use this API. This header file will work with both C and C++ programs. The entire API is made of the following structures and functions.

All of the following ofx_proc_* functions are callbacks (Except ofx_proc_file which is the entry point). They must be implemented by your program, but can be left empty if not needed. They are called each time the associated structure is filled by the library.

Important note: The variables associated with every data element have a _valid companion. Always check that data_valid == true before using. Not only will you ensure that the data is meaningfull, but also that pointers are valid and strings point to a null terminated string. Elements listed as mandatory are for information purpose only, do not trust the bank not to send you non-conforming data...

Definition in file inc/libofx.h.

Go to the source code of this file.

Data Structures

struct  LibofxFileFormatInfo
struct  OfxStatusData
 An abstraction of an OFX STATUS element. More...
struct  OfxAccountData
 An abstraction of an account. More...
struct  OfxSecurityData
 An abstraction of a security, such as a stock, mutual fund, etc. More...
struct  OfxTransactionData
 An abstraction of a transaction in an account. More...
struct  OfxStatementData
 An abstraction of an account statement. More...
struct  OfxCurrency
 NOT YET SUPPORTED. More...
struct  OfxFiLogin
 Information sufficient to log into an financial institution. More...
struct  OfxAccountInfo
 Information sufficient to identify an account. More...

Creating OFX Files

This group deals with creating OFX files

enum  AccountType {
  OFX_NO_ACCOUNT = 0, OFX_BANK_ACCOUNT, OFX_INVEST_ACCOUNT, OFX_CREDITCARD_ACCOUNT,
  OFX_INVALID_ACCOUNT
}
CFCT char * libofx_request_statement (const struct OfxFiLogin *fi, const struct OfxAccountInfo *account, time_t date_from)
 Creates an OFX statement request in string form.
CFCT char * libofx_request_accountinfo (const struct OfxFiLogin *login)
 Creates an OFX account info (list) request in string form.

Defines

#define CFCT
#define true   1
#define false   0
#define OFX_ELEMENT_NAME_LENGTH   100
#define OFX_SVRTID2_LENGTH   36 + 1
#define OFX_CHECK_NUMBER_LENGTH   12 + 1
#define OFX_REFERENCE_NUMBER_LENGTH   32 + 1
#define OFX_FITID_LENGTH   255 + 1
#define OFX_TOKEN2_LENGTH   36 + 1
#define OFX_MEMO2_LENGTH   390 + 1
#define OFX_BALANCE_NAME_LENGTH   32 + 1
#define OFX_BALANCE_DESCRIPTION_LENGTH   80 + 1
#define OFX_CURRENCY_LENGTH   3 + 1
#define OFX_BANKID_LENGTH   9 + 1
#define OFX_BRANCHID_LENGTH   22 + 1
#define OFX_ACCTID_LENGTH   22 + 1
#define OFX_ACCTKEY_LENGTH   22 + 1
#define OFX_BROKERID_LENGTH   22 + 1
#define OFX_ACCOUNT_ID_LENGTH   OFX_BANKID_LENGTH + OFX_BRANCHID_LENGTH + OFX_ACCTID_LENGTH + 1
#define OFX_ACCOUNT_NAME_LENGTH   255
#define OFX_MARKETING_INFO_LENGTH   360 + 1
#define OFX_TRANSACTION_NAME_LENGTH   32 + 1
#define OFX_UNIQUE_ID_LENGTH   32 + 1
#define OFX_UNIQUE_ID_TYPE_LENGTH   10 + 1
#define OFX_SECNAME_LENGTH   32 + 1
#define OFX_TICKER_LENGTH   32 + 1
#define OFX_ORG_LENGTH   32 + 1
#define OFX_FID_LENGTH   32 + 1
#define OFX_USERID_LENGTH   32 + 1
#define OFX_USERPASS_LENGTH   32 + 1

Typedefs

typedef void * LibofxContextPtr

Enumerations

enum  LibofxFileFormat {
  AUTODETECT, OFX, OFC, QIF,
  UNKNOWN, LAST
}
enum  TransactionType {
  OFX_CREDIT, OFX_DEBIT, OFX_INT, OFX_DIV,
  OFX_FEE, OFX_SRVCHG, OFX_DEP, OFX_ATM,
  OFX_POS, OFX_XFER, OFX_CHECK, OFX_PAYMENT,
  OFX_CASH, OFX_DIRECTDEP, OFX_DIRECTDEBIT, OFX_REPEATPMT,
  OFX_OTHER
}
enum  InvTransactionType {
  OFX_BUYDEBT, OFX_BUYMF, OFX_BUYOPT, OFX_BUYOTHER,
  OFX_BUYSTOCK, OFX_CLOSUREOPT, OFX_INCOME, OFX_INVEXPENSE,
  OFX_JRNLFUND, OFX_JRNLSEC, OFX_MARGININTEREST, OFX_REINVEST,
  OFX_RETOFCAP, OFX_SELLDEBT, OFX_SELLMF, OFX_SELLOPT,
  OFX_SELLOTHER, OFX_SELLSTOCK, OFX_SPLIT, OFX_TRANSFER
}
enum  FiIdCorrectionAction { DELETE, REPLACE }

Functions

CFCT LibofxContextPtr libofx_get_new_context ()
 Initialise the library and return a new context.
CFCT int libofx_free_context (LibofxContextPtr)
 Free all ressources used by this context.
CFCT enum LibofxFileFormat libofx_get_file_format_from_str (const struct LibofxFileFormatInfo format_list[], const char *file_type_string)
CFCT const char * libofx_get_file_format_description (const struct LibofxFileFormatInfo format_list[], enum LibofxFileFormat file_format)
CFCT int libofx_proc_file (LibofxContextPtr libofx_context, const char *p_filename, enum LibofxFileFormat ftype)
 libofx_proc_file is the entry point of the library.
CFCT void ofx_set_status_cb (LibofxContextPtr ctx, LibofxProcStatusCallback cb, void *user_data)
CFCT void ofx_set_account_cb (LibofxContextPtr ctx, LibofxProcAccountCallback cb, void *user_data)
CFCT void ofx_set_security_cb (LibofxContextPtr ctx, LibofxProcSecurityCallback cb, void *user_data)
CFCT void ofx_set_transaction_cb (LibofxContextPtr ctx, LibofxProcTransactionCallback cb, void *user_data)
CFCT void ofx_set_statement_cb (LibofxContextPtr ctx, LibofxProcStatementCallback cb, void *user_data)
CFCT int libofx_proc_buffer (LibofxContextPtr ctx, const char *s, unsigned int size)

Variables

const struct LibofxFileFormatInfo LibofxImportFormatList []
const struct LibofxFileFormatInfo LibofxExportFormatList []
CFCT typedef int(* LibofxProcStatusCallback )(const struct OfxStatusData data, void *status_data)
 The callback function for the OfxStatusData stucture.
CFCT typedef int(* LibofxProcAccountCallback )(const struct OfxAccountData data, void *account_data)
 The callback function for the OfxAccountData stucture.
CFCT typedef int(* LibofxProcSecurityCallback )(const struct OfxSecurityData data, void *security_data)
 The callback function for the OfxSecurityData stucture.
CFCT typedef int(* LibofxProcTransactionCallback )(const struct OfxTransactionData data, void *transaction_data)
 The callback function for the OfxTransactionData stucture.
CFCT typedef int(* LibofxProcStatementCallback )(const struct OfxStatementData data, void *statement_data)
 The callback function for the OfxStatementData stucture.


Enumeration Type Documentation

enum FiIdCorrectionAction
 

Enumeration values:
DELETE  The transaction with a fi_id matching fi_id_corrected should be deleted
REPLACE  The transaction with a fi_id matching fi_id_corrected should be replaced with this one

Definition at line 385 of file inc/libofx.h.

enum InvTransactionType
 

Enumeration values:
OFX_BUYDEBT  Buy debt security
OFX_BUYMF  Buy mutual fund
OFX_BUYOPT  Buy option
OFX_BUYOTHER  Buy other security type
OFX_BUYSTOCK  Buy stock
OFX_CLOSUREOPT  Close a position for an option
OFX_INCOME  Investment income is realized as cash into the investment account
OFX_INVEXPENSE  Misc investment expense that is associated with a specific security
OFX_JRNLFUND  Journaling cash holdings between subaccounts within the same investment account
OFX_JRNLSEC  Journaling security holdings between subaccounts within the same investment account
OFX_MARGININTEREST  Margin interest expense
OFX_REINVEST  Reinvestment of income
OFX_RETOFCAP  Return of capital
OFX_SELLDEBT  Sell debt security. Used when debt is sold, called, or reached maturity
OFX_SELLMF  Sell mutual fund
OFX_SELLOPT  Sell option
OFX_SELLOTHER  Sell other type of security
OFX_SELLSTOCK  Sell stock
OFX_SPLIT  Stock or mutial fund split
OFX_TRANSFER  Transfer holdings in and out of the investment account

Definition at line 363 of file inc/libofx.h.

enum LibofxFileFormat
 

List of possible file formats

Enumeration values:
AUTODETECT  Not really a file format, used to tell the library to try to autodetect the format
OFX  Open Financial eXchange (OFX/QFX) file
OFC  Microsoft Open Financial Connectivity (OFC)
QIF  Intuit Quicken Interchange Format (QIF)
UNKNOWN  Unknown file format
LAST  Not a file format, meant as a loop breaking condition

Definition at line 99 of file inc/libofx.h.

Referenced by libofx_detect_file_type(), and main().

enum TransactionType
 

Enumeration values:
OFX_CREDIT  Generic credit
OFX_DEBIT  Generic debit
OFX_INT  Interest earned or paid (Note: Depends on signage of amount)
OFX_DIV  Dividend
OFX_FEE  FI fee
OFX_SRVCHG  Service charge
OFX_DEP  Deposit
OFX_ATM  ATM debit or credit (Note: Depends on signage of amount)
OFX_POS  Point of sale debit or credit (Note: Depends on signage of amount)
OFX_XFER  Transfer
OFX_CHECK  Check
OFX_PAYMENT  Electronic payment
OFX_CASH  Cash withdrawal
OFX_DIRECTDEP  Direct deposit
OFX_DIRECTDEBIT  Merchant initiated debit
OFX_REPEATPMT  Repeating payment/standing order
OFX_OTHER  Somer other type of transaction

Definition at line 343 of file inc/libofx.h.


Function Documentation

CFCT int libofx_free_context LibofxContextPtr   ) 
 

Free all ressources used by this context.

Returns:
0 if successfull.

Definition at line 144 of file context.cpp.

CFCT LibofxContextPtr libofx_get_new_context  ) 
 

Initialise the library and return a new context.

Note:
: Actual object returned is LibofxContext *

Definition at line 140 of file context.cpp.

Referenced by main().

CFCT int libofx_proc_buffer LibofxContextPtr  ctx,
const char *  s,
unsigned int  size
 

Parses the content of the given buffer.

Definition at line 201 of file ofx_preproc.cpp.

CFCT int libofx_proc_file LibofxContextPtr  libofx_context,
const char *  p_filename,
enum LibofxFileFormat  ftype
 

libofx_proc_file is the entry point of the library.

libofx_proc_file must be called by the client, with a list of 1 or more OFX files to be parsed in command line format.

Referenced by main().

CFCT char* libofx_request_accountinfo const struct OfxFiLogin login  ) 
 

Creates an OFX account info (list) request in string form.

Creates a string which should be passed to an OFX server. This string is an OFX request suitable to retrieve a list of accounts from the fi

Parameters:
fi Identifies the financial institution and the user logging in.
Returns:
string pointer to the request. This is allocated via malloc(), and is the callers responsibility to free.

CFCT char* libofx_request_statement const struct OfxFiLogin fi,
const struct OfxAccountInfo account,
time_t  date_from
 

Creates an OFX statement request in string form.

Creates a string which should be passed to an OFX server. This string is an OFX request suitable to retrieve a statement for the account from the fi

Parameters:
fi Identifies the financial institution and the user logging in.
account Idenfities the account for which a statement is desired
Returns:
string pointer to the request. This is allocated via malloc(), and is the callers responsibility to free.

CFCT void ofx_set_account_cb LibofxContextPtr  ctx,
LibofxProcAccountCallback  cb,
void *  user_data
 

Set the account callback in the given context.

Parameters:
ctx context
cb callback function
user_data user data to be passed to the callback

Definition at line 160 of file context.cpp.

Referenced by main().

CFCT void ofx_set_security_cb LibofxContextPtr  ctx,
LibofxProcSecurityCallback  cb,
void *  user_data
 

Set the security callback in the given context.

Parameters:
ctx context
cb callback function
user_data user data to be passed to the callback

Definition at line 168 of file context.cpp.

Referenced by main().

CFCT void ofx_set_statement_cb LibofxContextPtr  ctx,
LibofxProcStatementCallback  cb,
void *  user_data
 

Set the statement callback in the given context.

Parameters:
ctx context
cb callback function
user_data user data to be passed to the callback

Definition at line 184 of file context.cpp.

Referenced by main().

CFCT void ofx_set_status_cb LibofxContextPtr  ctx,
LibofxProcStatusCallback  cb,
void *  user_data
 

Set the status callback in the given context.

Parameters:
ctx context
cb callback function
user_data user data to be passed to the callback

Definition at line 153 of file context.cpp.

Referenced by main().

CFCT void ofx_set_transaction_cb LibofxContextPtr  ctx,
LibofxProcTransactionCallback  cb,
void *  user_data
 

Set the transaction callback in the given context.

Parameters:
ctx context
cb callback function
user_data user data to be passed to the callback

Definition at line 176 of file context.cpp.

Referenced by main().


Variable Documentation

const struct LibofxFileFormatInfo LibofxExportFormatList[]
 

Initial value:

 
{
{QIF, "QIF", "QIF (Intuit Quicken Interchange Format) NOT IMPLEMENTED"},
{LAST, "LAST", "Not a file format, meant as a loop breaking condition"}
}

Definition at line 125 of file inc/libofx.h.

const struct LibofxFileFormatInfo LibofxImportFormatList[]
 

Initial value:

 
{
{AUTODETECT, "AUTODETECT", "AUTODETECT (File format will be automatically detected later)"},
{OFX, "OFX", "OFX (Open Financial eXchange (OFX or QFX))"},
{OFC, "OFC", "OFC (Microsoft Open Financial Connectivity)"},
{QIF, "QIF", "QIF (Intuit Quicken Interchange Format) NOT IMPLEMENTED"},
{LAST, "LAST", "Not a file format, meant as a loop breaking condition"}
}

Definition at line 116 of file inc/libofx.h.

CFCT typedef int(* LibofxProcAccountCallback)(const struct OfxAccountData data, void *account_data)
 

The callback function for the OfxAccountData stucture.

The ofx_proc_account_cb event is always generated first, to allow the application to create accounts or ask the user to match an existing account before the ofx_proc_statement and ofx_proc_transaction event are received. An OfxAccountData is passed to this event.

Note however that this OfxAccountData structure will also be available as part of OfxStatementData structure passed to ofx_proc_statement event, as well as a pointer to an arbitrary data structure.

Definition at line 285 of file inc/libofx.h.

CFCT typedef int(* LibofxProcSecurityCallback)(const struct OfxSecurityData data, void *security_data)
 

The callback function for the OfxSecurityData stucture.

An ofx_proc_security_cb event is generated for any securities listed in the ofx file. It is generated after ofx_proc_statement but before ofx_proc_transaction. It is meant to be used to allow the client to create a new commodity or security (such as a new stock type). Please note however that this information is usually also available as part of each OfxtransactionData. An OfxSecurityData structure is passed to this event, as well as a pointer to an arbitrary data structure.

Definition at line 341 of file inc/libofx.h.

CFCT typedef int(* LibofxProcStatementCallback)(const struct OfxStatementData data, void *statement_data)
 

The callback function for the OfxStatementData stucture.

The ofx_proc_statement_cb event is sent after all ofx_proc_transaction events have been sent. An OfxStatementData is passed to this event, as well as a pointer to an arbitrary data structure.

Definition at line 588 of file inc/libofx.h.

CFCT typedef int(* LibofxProcStatusCallback)(const struct OfxStatusData data, void *status_data)
 

The callback function for the OfxStatusData stucture.

An ofx_proc_status_cb event is sent everytime the server has generated a OFX STATUS element. As such, it could be received at any time(but not during other events). An OfxStatusData structure is passed to this event, as well as a pointer to an arbitrary data structure.

Definition at line 219 of file inc/libofx.h.

CFCT typedef int(* LibofxProcTransactionCallback)(const struct OfxTransactionData data, void *transaction_data)
 

The callback function for the OfxTransactionData stucture.

An ofx_proc_transaction_cb event is generated for every transaction in the ofx response, after ofx_proc_statement (and possibly ofx_proc_security is generated. An OfxTransactionData structure is passed to this event, as well as a pointer to an arbitrary data structure.

Definition at line 519 of file inc/libofx.h.


Generated on Sun Jul 31 15:38:35 2005 for LibOFX by  doxygen 1.3.9.1