This essay describes the key tables and columns Receivables uses to store your accounts receivable transactions.
Following is a brief description of the Receivables tables discussed in this essay. For each table, it provides a detailed description of the important columns and identifies the primary key of each table. Additionally, this section establishes a set of assumptions to consider while discussing how Receivables stores specific transactions. You should use this section as a reference guide to the rest of the essay.
Receivables uses the following tables to store your accounts receivable transactions:
CUSTOMER_TRX_ID column
TRX_NUMBER column
BILL_TO_CUSTOMER_ID column
TRX_DATE column
The RA_CUSTOMER_TRX table stores invoice, debit memo, commitment and credit memo header information. Each of these transactions is stored as a unique record, based on the primary key, customer_trx_id. The transaction number, transaction date and billing customer are stored in the trx_number, trx_date and bill_to_customer_id columns, respectively.
Additional information stored in this table includes ship-to customer, document sequence number, currency code and a transaction complete flag. The transaction type for the invoice is stored in the RA_CUST_TRX_TYPES table, but can be referenced via the foreign key cust_trx_type_id.
CUSTOMER_TRX_LINE_ID column
CUSTOMER_TRX_ID column
LINK_TO_CUST_TRX_LINE_ID column
LINE_TYPE column
EXTENDED_AMOUNT column
The RA_CUSTOMER_TRX_LINES table stores invoice, debit memo, commitment and credit memo line level information. Each transaction line is stored as a unique record, based on the primary key, customer_trx_line_id column. The customer_trx_id column is a foreign key to the RA_CUSTOMER_TRX table. The line_type column identifies the type of data contained in the record. Valid line types are CHARGES, FREIGHT, LINE and TAX. Any record with a line type of TAX or FREIGHT refers to the original invoice line via the link_to_cust_trx_line_id column, except for header freight transactions. The total amount for each transaction line is stored in the column extended_amount.
CUST_TRX_LINE_SALESREP_ID column
SALES_REP_ID column
CUSTOMER_TRX_LINE_ID column
REVENUE_AMOUNT_SPLIT column
NON_REVENUE_AMOUNT_SPLIT column
PREV_CUST_TRX_LINE_SALESREP_ID column
RA_CUST_TRX_LINE_SALESREPS stores sales credit assignments for invoice lines. Each assignment is stored as a unique record, based on the primary key, cust_trx_line_salesrep_id. If you base your accounting distributions on sales credits, the sales credit assignments in this table map to the RA_CUST_TRX_LINE_GL_DIST table. The sales_rep_id column identifies the salesperson receiving the credit for this transaction. The customer_trx_line_id column is a foreign key to the RA_CUSTOMER_TRX_LINES table.
The revenue_amount_split column stores the amount of the invoice line assigned to this salesperson. The non_revenue_amount_split column stores the amount of the non-header freight and tax lines assigned to this salesperson. If the sales credit were derived based on a percentage of the transaction line rather than a specific amount, the columns revenue_percent_split and non_revenue_percent_split would store the percentages of the transaction lines assigned to this salesperson. The prev_cust_trx_line_salesrep_id column references another sales credit assignment to which the current record is being applied.
CUST_TRX_LINE_GL_DIST_ID column
CODE_COMBINATION_ID column
CUSTOMER_TRX_LINE_ID column
ACCOUNT_CLASS column
AMOUNT column
RA_CUST_TRX_LINE_GL_DIST stores the accounting distribution for invoice, debit memo, commitment, and credit memo transactions. Each distribution is stored as a unique record, based on the primary key, cust_trx_line_gl_dist_id. The customer_trx_line_id column is a foreign key to the RA_CUSTOMER_TRX_LINES table. The account_class column describes the account type, while the code_combination_id column identifies the general ledger account. Valid account classes are CHARGES, FREIGHT, REC, REV, SUSPENSE, TAX, UNBILL and UNEARN. The account_class, REC, represents the receivable account distribution. The amount column for REC records is equal to the sum of all invoice lines. Therefore, there is no link to RA_CUSTOMER_TRX_LINES and the column customer_trx_line_id is null for these records. The REC record is linked to the table, RA_CUSTOMER_TRX, via the customer_trx_id column. For all other account classes, credits are represented by positive numbers and debits are represented by negative numbers.
PAYMENT_SCHEDULE_ID column
AMOUNT_DUE_ORIGINAL column
AMOUNT_DUE_REMAINING column
CUSTOMER_TRX_ID column
CASH_RECEIPT_ID column
TRX_NUMBER column
STATUS column
AMOUNT_APPLIED column
CLASS column
AR_PAYMENT_SCHEDULES stores customer balance information at the transaction level. Each transaction's balance is stored as a unique record, based on the primary key, payment_schedule_id. The class column identifies the transaction type and determines which columns Receivables updates when a transaction is stored. For billing transactions, the AR_PAYMENT_SCHEDULES table joins the RA_CUSTOMER_TRX table via the customer_trx_id column and stores NULL in the cash_receipt_id column. For payment transactions, the AR_PAYMENT_SCHEDULES table joins the AR_CASH_RECEIPTS table via the cash_receipt_id column and stores NULL in the customer_trx_id column.
The table below illustrates the tables that Receivables updates for billing and payment transactions.
| TRANSACTION | CLASS | FOREIGN KEY | TABLE |
|---|---|---|---|
| Invoices | INV | customer_trx_id | RA_CUSTOMER_TRX |
| Debit Memos | DM | customer_trx_id | RA_CUSTOMER_TRX |
| Credit Memos | CM | customer_trx_id | RA_CUSTOMER_TRX |
| Deposits | DEP | customer_trx_id | RA_CUSTOMER_TRX |
| Guarantees | GUAR | customer_trx_id | RA_CUSTOMER_TRX |
| Chargebacks | CB | customer_trx_id | RA_CUSTOMER_TRX |
| Receipts | PMT | cash_receipts_id | AR_CASH_RECEIPTS |
The status column identifies whether the transaction is open or closed, while the trx_number column stores the transaction number. The amount_applied column stores the sum of all transactions applied to the balance of the selected transaction. The amount_due_original column equals either the sum of the extended_amount column in the RA_CUSTOMER_TRX_LINES table for the given customer_trx_id or the sum of the amount column in the AR_CASH_RECEIPTS table for the given cash_receipts_id. The amount_due_remaining column represents the balance for the selected transaction.
For the amount_due_original and amount_due_remaining columns debit items, such as invoices, are stored as positive numbers and credit items, such as credit memos and payments, are stored as negative numbers. The current customer balance is reflected by the sum of the amount_due_remaining column for all confirmed payment schedules for a given customer.
ADJUSTMENT_ID column
AMOUNT column
CUSTOMER_TRX_ID column
TYPE column
PAYMENT_SCHEDULE_ID column
CODE_COMBINATION_ID column
AR_ADJUSTMENTS stores information about invoice adjustments. Each adjustment is stored as a unique record, based on the primary key, adjustment_id. The amount column stores the amount of the adjustment. Receivables uses the customer_trx_id and payment_schedule_id to link the adjustment to the adjusted transaction and to update the amount_due_remaining and amount_adjusted columns of the adjusted transaction's payment schedule in the AR_PAYMENT_SCHEDULES table. The type column stores a description of the transaction to which the adjustment applies. Valid types include:
Charges Adjustments
Freight Adjustments
Invoice Adjustments
Line Adjustments
Tax Adjustments
The code_combination_id column stores the accounting distribution associated with the adjustment transaction.
RECEIVABLE_APPLICATION_ID column
AMOUNT_APPLIED column
STATUS column
PAYMENT_SCHEDULE_ID column
CODE_COMBINATION_ID column
CASH_RECEIPT_ID column
APPLIED_PAYMENT_SCHEDULE_ID column
APPLIED_CUSTOMER_TRX_ID column
AR_RECEIVABLE_APPLICATIONS stores account distributions for receipt and credit memo applications and maps the application transaction to the applied transaction. Each accounting distribution is stored as a unique record, based on the primary key, receivable_application_id. The payment_schedule_id column links the receipt or credit memo to its payment schedule in the AR_PAYMENT_SCHEDULES table. The cash_receipt_id column stores the receipt id of payment transactions, while the cust_trx_id column, which is not shown, stores the transaction id for credit memo transactions. The applied_payment_schedule_id and applied_customer_trx_id columns reference the transaction to which this record applies.
The status column describes the state of the application transaction. For credit memos, the status will always be APP to identify the credit memo as applied. For receipt transactions, valid status values are APP, UNAPP, UNID, REV, NSF, and STOP. The code_combination_id column stores the general ledger account for the application transaction, based on the status. The amount_applied column stores the amount of the receipt or credit memo as a positive value.
Note: For cash basis accounting, Receivables uses the table AR_CASH_BASIS_DISTRIBUTIONS to store account distribution information. This table shows the distribution to revenue accounts of a given receipt based on the application of the receipt.
CREDIT_MEMO_AMOUNT_ID column
CUSTOMER_TRX_LINE_ID column
GL_DATE column
AMOUNT column
AR_CREDIT_MEMO_AMOUNTS stores the GL dates and amounts for credit memos to use when they are applied to invoices with rules. Each credit memo application date is stored as a unique record, based on the primary key, credit_memo_amount_id. The customer_trx_line_id references the transaction line to which this credit memo applies. The gl_date column stores the date the credit memo should be applied to the invoice and the amount column stores the amount to apply.
CASH_RECEIPT_ID column
AMOUNT column
STATUS column
RECEIPT_NUMBER column
TYPE column
AR_CASH_RECEIPTS stores a unique record for each receipt, based on the primary key, cash_receipt_id. The status column describes the state of the receipt in relation to customer invoices and balances. Valid status values are:
UNID - The receipt customer is unidentified and no customer balance has been updated.
UNAPP - The receipt customer has been identified, but the receipt has not been entirely applied to a specific invoice or been placed on account.
APP - The entire amount of the receipt has been placed on account or applied to specific customer invoices.
REV - The receipt has been reversed.
NSF - The receipt has been reversed due to insufficient funds.
STOP - The receipt has been reversed by a stop payment.
The type column identifies the receipt as either CASH or MISC to indicate whether the receipt is a customer payment or a miscellaneous receipt (not related to a receivable activity). The amount column stores the net amount of the receipt, while the receipt_number column stores the receipt_number.
CASH_RECEIPT_HISTORY_ID column
AMOUNT column
STATUS column
AR_CASH_RECEIPT_HISTORY stores the current status and history of a receipt. Each status change is stored as a unique transaction, based on the primary key, cash_receipt_history_id. The status column describes which step of the receipt's life cycle the receipt has reached. Valid status values are:
APPROVED - This is only valid for automatic receipts and signifies the receipt has been approved for automatic creation. These record types are never postable.
CONFIRMED - This is only valid for automatic receipts and signifies the receipt has been confirmed by the customer.
REMITTED - This is valid for both manual and automatic receipts and signifies the receipt has been remitted.
CLEARED - This is valid for both manual and automatic receipts and signifies the receipt has been cleared.
REVERSED - This is valid for both manual and automatic receipts and signifies the receipt has been reversed.
As the receipt moves through its life cycle, Receivables inserts a new record into AR_CASH_RECEIPTS_HISTORY with the current_record_flag column set to 'Y'. Receivables also updates the previous record related to this receipt, by setting the current_record_flag to NULL and by setting the reversal_gl_date. The amount column stores the amount of the receipt. The cash_receipts_id column links AR_CASH_RECEIPTS_HISTORY to AR_CASH_RECEIPTS.
MISC_CASH_DISTRIBUTION_ID column
CASH_RECEIPT_ID column
CODE_COMBINATION_ID column
AR_MISC_CASH_DISTRIBUTIONS stores the accounting distribution for miscellaneous cash receipts. Each distribution is stored as a unique record, based on the primary key, misc_cash_distribution_id. The distributions are linked to the receipt by the column cash_receipt_id. The code_combination_id column stores the general ledger account assigned to this receipt.
To simplify the discussion of how Receivables stores specific transactions, this essay uses the following assumptions:
All transactions are postable to the general ledger, are included in agings, and occur in the same accounting period. Therefore, there will not be any installment transactions or split term invoices.
No invoicing rules will be applied to any of the billing transactions.
No accounting rules will be applied to any of the billing transactions.
Credit memo transactions will not use a credit method for invoices with rules or for split term invoices.
Payment schedules will not allow discounts and all due dates will be 30 days after the date of the transaction.
Late charges will not be calculated on overdue items.
Examples involving sales credit assignments will be expressly identified.