FLEXBridge Transaction Service API
This document provides comprehensive technical documentation for the FlexBridge Transaction Service API, a RESTful API designed for performing various financial transactions within the Flex system (www.flexcutech.com). This API is essential for third-party applications and internal systems needing to programmatically manage member account transfers, check withdrawals, and general ledger transfers.
1. Introduction to FlexBridge Transaction Service API
The FLEXBridge Transaction Service API enables a wide range of financial operations, including transfers between member subaccounts, cross-account transfers, check withdrawals, and transfers involving general ledgers.
- Available FLEX Releases: 8.04 and up
2. General API Information
- RESTful API: Follows RESTful principles for communication.
- Authentication: Requires built-in authentication via HTTP request headers. Refer to the FLEXBridge Authentication Protocols and Other Information documentation for details.
3. Transaction Service Functions
The FLEXBridge Transaction Service API currently offers the following functions:
- Account Transfers:
- Transfer between a member’s subaccount/suffixes.
- Transfers between different member accounts (cross-account transfers).
- Check Withdrawals:
- Check Withdrawals from a member account.
- General Ledger Transfers:
- Transfer from a member’s subaccount to a general ledger.
- Transfers from a general ledger to a member’s subaccount.
- Transfer between general ledgers.
4. API Endpoints and Methods
All transaction functions are performed using POST requests.
4.1. Account and Subaccount Transfers
This endpoint covers transfers between a member’s subaccounts or cross-account transfers.
- Endpoint: https://{URL_ADDRESS}/api/transfer/immediate
- URL Parameters:
- tellerID={TELLER_ID} (Optional, String): Teller ID associated with the transfer. Max 4 chars.
- workstation={WORKSTATION_ID} (Optional, String): Workstation ID for the transfer. Max 10 chars.
- JSON Body Attributes (Account Transfer object):
- fromAccount (Required, Number): Account number to debit funds. Max 9 chars.
- fromSuffix (Required, Number): Suffix to debit funds. Max 3 chars.
- fromTranDescription (Optional, String): Transaction history description for the debiting account. Max 45 chars.
- toAccount (Required, Number): Account number to receive funds. Max 9 chars.
- toSuffix (Required, Number): Suffix to receive funds. Max 3 chars.
- toTranDescription (Optional, String): Transaction history description for the receiving account. Max 45 chars.
- transactionAmount (Required, Number): Amount of transaction. Max 9 chars.
- acceptFees (Required, Boolean): Indicates whether a transaction will assess a fee. Default false.
- calculateFee (Optional, Boolean): If true, the response will return if there will be a fee. Do not send transactionFeeList if true. Default false.
- acceptWarnings (Required, Boolean): Disregard system warnings. Default true.
- principleOnlyPayment (Optional, Boolean): Only for loan payments; indicates if payment includes interest. Default false.
- regDTransfer (Optional, Boolean): Indicates if the transfer counts toward Regulation D.
- allowSuffixBalanceToGoNegative (Optional, Boolean): Allows transfer to take a share suffix negative. Default false.
- creditCardAdjustment (Optional, Boolean): Indicates if a transfer will be a balance adjustment or go toward the required payment for a credit card. Default false.
- transactionFeeList (Optional, Object): Used to post a manual fee.
- Response Attributes:
- success (Boolean): Indicates whether the transaction was successful.
- transactionResponse (Object): Service response including comments, errors, fees, or warnings.
- referenceNumber (Number): Unique transaction reference number.
4.2. Check Withdrawal Transaction
This endpoint performs a Check Withdrawal from a member’s account.
- Endpoint: https://{URL_ADDRESS}/api/checkwithdrawal/immediate
- URL Parameters:
- tellerID={TELLER_ID} (Optional, String): Teller ID. Max 4 chars.
- workstation={WORKSTATION_ID} (Optional, String): Workstation ID. Max 10 chars.
- JSON Body Attributes (Check Withdrawal object):
- fromAccount (Required, Number): Account number to debit funds. Max 9 chars.
- fromSuffix (Required, Number): Suffix to debit funds. Max 3 chars.
- fromTranDescription (Optional, String): Check withdrawal history description. Max 45 chars.
- transactionAmount (Required, Number): Amount to withdraw. Max 9 chars.
- acceptFees (Required, Boolean): Indicates whether a transaction will assess a fee. Default false.
- acceptWarnings (Required, Boolean): Disregard system warnings. Default true.
- calculateFee (Optional, Boolean): If true, the response will return if there will be a fee. Do not send transactionFeeList if true. Default false.
- Response Attributes: Same as Account Transfer Response.
4.3. Transfer from a Member Subaccount to a General Ledger
This endpoint transfers an amount from a Member’s Subaccount to a General Ledger.
- Endpoint: https://{URL_ADDRESS}/api/transfer/from/subaccount/to/gl
- URL Parameters:
- tellerID={TELLER_ID} (Optional, String): Teller ID. Max 4 chars.
- workstation={WORKSTATION_ID} (Optional, String): Workstation ID. Max 10 chars.
- JSON Body Attributes (GL Transfer to Subaccount or Subaccount to GL object):
- accountNumber (Required, Number): Member Account Number. Max 9 chars.
- suffixNumber (Required, Number): Member Subaccount/Suffix. Max 3 chars.
- glAccountNumber (Required, Number): Credit Union General Ledger Account Number. Max 7 chars.
- fromTranDescription (Required, String): From Transfer Description. Max 45 chars.
- toTranDescription (Required, String): To Transfer Description. Max 45 chars.
- transactionAmount (Required, Number): Amount to transfer. Max 9 chars.
- acceptFees (Required, Boolean): Indicates whether a transaction will assess a fee. Default false.
- acceptWarnings (Required, Boolean): Disregard system warnings. Default true.
- principleOnlyPayment (Optional, Boolean): Only for loan payments; indicates if payment includes interest. Default false.
- allowSuffixBalanceToGoNegative (Optional, Boolean): Allows transfer to take a share suffix negative. Default false.
- Response Attributes:
- fees (List): Any fees applied.
- warnings (List): Warnings regarding the transaction.
- errors (List): Transaction errors.
- comments (List): Comments/notes for the transaction.
- fromSuffixInfo (Object): Transfer information for the from subaccount (null if from GL).
- toSuffixInfo (Object): Transfer information for the to subaccount (null if to GL).
- referenceNumber (Number): Unique transaction reference number.
4.4. Transfer from General Ledger to a Member Subaccount
This endpoint performs a General Ledger transfer to a Member Subaccount.
- Endpoint: https://{URL_ADDRESS}/api/transfer/from/gl/to/subaccount
- URL Parameters:
- tellerID={TELLER_ID} (Optional, String): Teller ID. Max 4 chars.
- workstation={WORKSTATION_ID} (Optional, String): Workstation ID. Max 10 chars.
- JSON Body Attributes: Same as “Transfer from a Member Subaccount to a General Ledger” JSON Body Attributes.
- Response Attributes: Same as “Transfer from a Member Subaccount to a General Ledger” Response Attributes.
4.5. Transfer Between General Ledgers
This endpoint transfers amounts between two general ledgers.
- Endpoint: https://{URL_ADDRESS}/api/transfer/generalledger
- JSON Body Attributes (Transfer Between General Ledgers object):
- fromGLAccountNumber (Required, Number): From General Ledger Account Number. Max 7 chars.
- toGLAccountNumber (Required, Number): To General Ledger Account Number. Max 7 chars.
- transactionAmount (Required, Number): Amount to transfer. Max 9 chars.
- fromTransactionDescription (Required, String): From Transfer Description. Max 30 chars.
- toTransactionDescription (Required, String): To Transfer Description. Max 30 chars.
- tellerID (Required, String): Credit union defined teller ID. Max 4 chars.
- workstation (Required, String): Credit union defined workstation. Max 10 chars.
- Response Attributes:
- success (Boolean): Indicates the status of the request.
- fromGLAccountNumber (Number): From GL account value used.
- toGLAccountNumber (Number): To GL account value used.
- transactionAmount (Number): Transaction amount.
- referenceNumber (Number): Transfer reference number.
5. Object References (Detailed Attributes)
This section provides a detailed breakdown of attributes for various JSON objects used in requests and responses.
5.1. Account Transfer Request JSON Body Attributes
- Attributes: fromAccount, fromSuffix, fromTranDescription, toAccount, toSuffix, toTranDescription, transactionAmount, acceptFees, calculateFee, acceptWarnings, principleOnlyPayment, regDTransfer, allowSuffixBalanceToGoNegative, creditCardAdjustment, transactionFeeList.
5.2. Check Withdrawal Request JSON Body Attributes
- Attributes: fromAccount, fromSuffix, fromTranDescription, transactionAmount, acceptFees, acceptWarnings, calculateFee.
5.3. GL Transfer to Subaccount or Subaccount to GL Request JSON Body Attributes
- Attributes: accountNumber, suffixNumber, glAccountNumber, fromTranDescription, toTranDescription, transactionAmount, acceptFees, acceptWarnings, principleOnlyPayment, allowSuffixBalanceToGoNegative.
5.4. Transfer Between General Ledgers Request JSON Body Attributes
- Attributes: fromGLAccountNumber, toGLAccountNumber, transactionAmount, fromTransactionDescription, toTransactionDescription, tellerID, workstation.
5.5. Transfer Fees (TSFee)
- transactionFeeList Attributes: amount, description, glAccountNumber.
5.6. Transaction Response
- transactionResponse Attributes: comments, warnings, errors, fees, fromSuffixInfo, toSuffixInfo, referenceNumber.
- fromSuffixInfo Attributes: accountNumber, suffix, currentBalance, availableBalance.
- toSuffixInfo Attributes: accountNumber, suffix, currentBalance, availableBalance.
- fees Attributes: amount, description, glAccountNumber.
6. Additional Information
6.1. Transaction Fees
- Charging Fees: To charge a transaction fee, acceptFees must be true.
- Calculating Fees: If calculateFee is true and acceptFees is false, the service will return any applicable fees without posting the transaction. This allows for validation or fee modification before re-submission.
- Modified Fees: When using the transactionFeeList object, acceptFees and acceptWarnings should be true.
6.2. Transaction Warnings
- Warnings can be bypassed by setting acceptWarnings to true. However, Flex recommends consulting with the Credit Union to determine which warnings should be ignored.
- Examples of Warnings: “Delinquent loans exist,” “This transaction will take the balance below the minimum required balance,” “Reg D Transfer Limit Exceeded.”
6.3. Transaction Errors
- Errors prevent a transaction from occurring and cannot be overridden. Some can be resolved by adjusting the transaction account, others require Credit Union adjustments.
- Examples of Errors: “Cannot draw from loan after draw expiration date,” “Teller not authorized to perform transactions when loans are delinquent,” “Transaction amount exceeds available shares.”
6.4. Transaction Comments
- Comments provide informational status about a transfer and do not affect the transaction process.
- Examples of Comments: “Transaction completed successfully,” “Transaction warnings were ignored.”
7. HTTPS 500 Error Messages
Flex provides additional information in 500 HTTP Status Code errors for troubleshooting. These errors usually indicate invalid attribute values or missing configurations.
- Common Endpoint Errors:
- “Internal server error – To Suffix is closed or frozen”
- “Internal server error – From Account/Suffix not valid”
- “Internal server error – Teller Id [ID] is not valid”
- General Ledger to General Ledger Endpoint Errors:
- “[The From GL 107300 is not valid]”: Invalid From GL value.
- “[The To GL 107300 is not valid]”: Invalid To GL value.
- “Failed to post transaction … Length is not valid.”: Teller ID has too many characters (max 4).
- “[The From GL 73001 is not valid, The To GL 73000 is not valid]”: Both From and To GL values are invalid.
- Troubleshooting Tip: Provide the exact error message to your Credit Union’s Flex support for efficient troubleshooting. They are typically familiar with these messages and how to correct the underlying data.