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 libofx-0.9.1/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  OfxFiServiceInfo
 Information returned by the OFX Partner Server about a financial institution. More...
struct  OfxFiLogin
 Information sufficient to log into an financial institution. More...
struct  OfxPayment
struct  OfxPayee

Creating OFX Files

This group deals with creating OFX files

#define OFX_AMOUNT_LENGTH   (32 + 1)
#define OFX_PAYACCT_LENGTH   (32 + 1)
#define OFX_STATE_LENGTH   (5 + 1)
#define OFX_POSTALCODE_LENGTH   (11 + 1)
#define OFX_NAME_LENGTH   (32 + 1)
CFCT char * libofx_request_statement (const struct OfxFiLogin *fi, const struct OfxAccountData *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.
CFCT char * libofx_request_payment (const struct OfxFiLogin *login, const struct OfxAccountData *account, const struct OfxPayee *payee, const struct OfxPayment *payment)
CFCT char * libofx_request_payment_status (const struct OfxFiLogin *login, const char *transactionid)

Defines

#define LIBOFX_MAJOR_VERSION   0
#define LIBOFX_MINOR_VERSION   9
#define LIBOFX_MICRO_VERSION   1
#define LIBOFX_BUILD_VERSION   0
#define LIBOFX_VERSION_RELEASE_STRING   "0.9.1"
#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_MEMO_LENGTH   (255 + 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)
#define OFX_URL_LENGTH   (500 + 1)
#define OFX_APPID_LENGTH   (32)
#define OFX_APPVER_LENGTH   (32)
#define OFX_HEADERVERSION_LENGTH   (32)

Typedefs

typedef void * LibofxContextPtr

Enumerations

enum  LibofxFileFormat {
  AUTODETECT, OFX, OFC, QIF,
  UNKNOWN, LAST, 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, 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,
  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, 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 void libofx_set_dtd_dir (LibofxContextPtr libofx_context, const char *s)
CFCT enum LibofxFileFormat libofx_get_file_format_from_str (const struct LibofxFileFormatInfo format_list[], const char *file_type_string)
 libofx_get_file_type returns a proper enum from a file type string.
CFCT const char * libofx_get_file_format_description (const struct LibofxFileFormatInfo format_list[], enum LibofxFileFormat file_format)
 get_file_format_description returns a string description of a LibofxFileType.
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

LibofxFileFormatInfo LibofxImportFormatList []
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

Enumerator:
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
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 410 of file libofx-0.9.1/inc/libofx.h.

enum InvTransactionType

Enumerator:
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
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 388 of file libofx-0.9.1/inc/libofx.h.

enum LibofxFileFormat

List of possible file formats

Enumerator:
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
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 114 of file libofx-0.9.1/inc/libofx.h.

enum TransactionType

Enumerator:
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
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 368 of file libofx-0.9.1/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 const char* libofx_get_file_format_description ( const struct LibofxFileFormatInfo  format_list[],
enum LibofxFileFormat  file_format 
)

get_file_format_description returns a string description of a LibofxFileType.

The file format list in which the format should be looked up, usually LibofxImportFormatList or LibofxExportFormatList The file format which should match one of the formats in the list.

Returns:
null terminated string suitable for debugging output or user communication.

Definition at line 37 of file file_preproc.cpp.

CFCT enum LibofxFileFormat libofx_get_file_format_from_str ( const struct LibofxFileFormatInfo  format_list[],
const char *  file_type_string 
)

libofx_get_file_type returns a proper enum from a file type string.

The file format list in which the format string should be found, usually LibofxImportFormatList or LibofxExportFormatList The string which contain the file format matching one of the format_name of the list.

Returns:
the file format, or UNKNOWN if the format wasn't recognised.

Definition at line 54 of file file_preproc.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.

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

Parses the content of the given buffer.

Definition at line 280 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.

Definition at line 67 of file file_preproc.cpp.

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 OfxAccountData 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 169 of file context.cpp.

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 177 of file context.cpp.

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 193 of file context.cpp.

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 162 of file context.cpp.

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 185 of file context.cpp.


Variable Documentation

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 140 of file libofx-0.9.1/inc/libofx.h.

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 131 of file libofx-0.9.1/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 310 of file libofx-0.9.1/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 366 of file libofx-0.9.1/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 622 of file libofx-0.9.1/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 234 of file libofx-0.9.1/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 553 of file libofx-0.9.1/inc/libofx.h.


Generated on Mon Feb 9 21:22:00 2009 for LibOFX by  doxygen 1.5.0