ABOUT INVOICES /*ACCOUNTING METHOD, ACCRUAL OR CASH: So do you set the accounting method only at the Payables, Receivables levels, not at the GL Level? I believe so, because of those settings, payables and receivables will generate the journal entries accordingly. When we create an invoice we initially create an invoice batch and then create invoices in that batch. While creating invoice batch, we provide the control amount and control count (the initial batch amount and initial batch count), payment terms, type of invoice (like PO default, standard, CM, DM etc), pay group. These invoices go into the "ap_batches_all" table. However some of the above fields are optional at the batch level and can be specific at the invoice level. Having entered an invoice batch, we enter the invoices in that batch and enter the supplier information currency. Here the values mentioned at the batch level will default at the invoice level which can be changed at the invoice level. All the invoices go into the "ap_invoices_all" table. Each invoice will have distributions and each distribution (which could be either item or tax or freight charge) will correspond to a particular gl_account and will be stored in "ap_invoice_distributions_all" with the corresponding code_combination_id in the table. Having created an invoice the invoice needs to be validated, payables accounting process and approved (may not be required). For validating an invoice it is important that the control amount at the batch level sums up to the sum of the individual amounts of the invoices. The control count at the batch level should be equal to the number of invoices in that batch. The invoice can be validated by pressing the validate button. Make sure there are no holds on that invoice i.e. holds are 0. And only the validated invoices will be paid or payment applied. As mentioned before, the invoice is distributed on item, tax, freight etc), where we mentioned for each distribution which account it should go to i.e. the item should go to account1 and tax should go to another tax related account. Or we can create a distribution set where we mention the percentages of each item say the 70% of the invoice item should go to the account1 and 30% to account2.etc and assign that distribution set to that supplier. Once this is done, for every invoice corresponding to that supplier, if we select that distribution set, the above %'s are automatically applied. One feature of the Oracle Payables is that, the AP can also treat the employees in a particular company as suppliers (i.e. typically the suppliers send the invoices which are paid for) similarly the employees should also be paid for the services they render every pay period and what should be the employees payment terms. Accounting in Payables Transactions. There are two document classes in Accounts Payables which can give rise to accounting transactions.

Invoice (creating Invoices) Payment (Issuing Payments).

Entering an Invoice: An invoice increases the suppliers account balance by the invoice amount. Once the invoice is completed, the corresponding journal entries will be posted to the General Ledger in the next GL transfer. As an ex, the following are the entries created for an invoice entered for amount $200. Hence the three main accounts that are updated in an invoice entry are Account Derivation DR CR

-------- -------------------------------------------------------Liability : Defaulted from the Supplier site, otherwise can be entered: $235

at the invoice batch level Expense/ Asset: Defaulted from the Purchase Order, otherwise entered at the: $200 invoice level. Tax */ Select batch_id,batch_name,invoice_currency_code,payment_currency_code, terms_id,gl_date,invoice_type_lookup_code,org_id from ap_batches_all where batch_name ='mybatch9' select * from ap_terms_lines -- ap_terms_tl where terms_id = 1205 /* actually there is a payment term specified at the batch level and as well as the invoice level. However invoice level takes precedence. When you don’t mention anything at the invoice level/batch level, the term from supplier will default. Since invoices come from suppliers, there is a chance that two invoices from two different suppliers might have the same invoice number, and hence internally we assign a voucher number. For the same supplier u cannot have two invoices with the same invoice number.*/ SELECT * FROM ap_invoices_all WHERE 1 =1 and batch_id = 10065 --and invoice_num = 'myinv1' --where invoice_id = 52989 -- Just like AR, in AP as well, the payment schedules table will have the due dates etc. Even without any payments, once an invoice is created, it will figure in this table. select invoice_id, gross_amount, amount_remaining, due_date,payment_method_lookup_code, batch_id,org_id,inv_curr_gross_amount from ap_payment_schedules_all : Defaulted from tax name, can be overwritten during invoice. : $35

However this can be defaulted by defining a distribution set and associating that distribution set at the supplier site level. Invoice Validation.67170. ensure that the following setting is done. AR. There is also an expense account which is at the invoice distribution level. because it is a ledger system. Distribution Sets: We know that the default liability account will come from the Financials Options and which is shown at the invoice header level (liability account field can be sometimes hidden and hence should be unhidden. The gl_balances tables is a huge . Hence it is important that DISTRIBUTION SETS ARE ONLY FOR CHARGE ACCOUNTS NOT LIABILITY ACCOUNT.where invoice_id = 10544 SELECT * --dist_code_combination_id FROM ap_invoice_distributions_all WHERE invoice_id = 10663 /* While creating an invoice batch we can provide the liability account and while creating the invoice we provide the expense accounts for the main item and freight or tax purposes (called distributions) */ select * from gl_code_combinations -. 4. 3. So the various steps the payables invoices will go thru before they are transferred to GL are given below */ 1. */ select * from ap_invoice_distributions_all /*To approve or generate accounting entries online. AP. */ /*hence after this is done. journal import and posting).21330) and segment5 = 0000 and segment6 = 0000 and segment7 = 0000 and segment8 = 0000 /*Default Expense or Charge Account for AP Invoice. the gl_balances tables is updated. we want to transfer all this information into the GL. /*So once the payables txns are transferred (gl_je_headers and gl_je_lines) tables are populated and when the txns are posted. Payables Accounting Process. Assets are the feeder systems (or sub ledgers) in financials and they will be transferring the txn's to GL to reflect the accounts correctly. setup => options => payables => invoice tab => Allow Online Validation. Invoice Approval workflow and then Payables Transfer to gl(which involves payables transfer.1012 where segment1 =01 and segment2 = 0000 and segment3 = 0000 and segment4 in (73100. this can be done by "Payables Transfer to GL" program. In general this has to be entered manually at the dist level. From payables to GL. 2.

there is a standard workflow functionality to build the combination. However even this can be customized by developing our own workflow functionality and specifying at this location. Another interesting point is that. like. however we can change that accordingly. Here you can see for the item type "Project Supplier Invoice Account Generation". which is the standard value. query for the application "General Ledger" and the flexfield title "Accounting Flexfield" and for your corresponding structure. what kind of matching it uses 2-way. at the distributions the invoice match option is also specified which basically defaults from the supplier site. liability and expense account are already specified as part of the system options/distribution sets and hence it has to copy it straight from that. The default value is "Generate Default Account". correct? The only place where I saw account generator work is when you specify project information at the invoice distribution level. (from the General Ledger responsibility) Setup => Financials => Flexfields => Key => Accounts This will open the form "Account Generator Processes".table which consists of an entry for each account or code_combination_id. Matching Tax Distribution Period Status Exchange Rate so while it is matching the invoice. For ex. when we create a purchase order. there are two important parameters Invoice Match Option: PO (or Receipt) Match Approval Level: 2-Way (3-Way or 4-Way) 2-Way: Invoice Quantity <= PO Quantity. if you specify project information in the distribution level.3-way or 4-way. other than copy from the options. INVOICE VALIDATION: -------------------/*The Invoice validation program does a bunch of things when it starts validation. Any customized workflow process can be specified here. the corresponding accounts in the invoice distributions are updated accordingly. the invoice is matched against the purchase order. the Invoice Match Option is set to Purchase Order. 3-Way: 2-Way + Invoice Quantity <= Receipt Quantity (by the tolerance level) 4-Way: 3-Way + Invoice Quantity <= Accepted Quantity (by the tolerance level) . What I mean to say is that unlike Auto Accounting in AR (or FA). and then it will rebuild the distribution. Other than that. the Account generator does not really have to build segments of the code combination. Typically when we create an invoice we provide the supplier and supplier site information from where we are receiving that invoice. So for ex. Invoice Price <= PO Price. If at the supplier site. and then at the time of validation. when the txns are posted. Hence as we see. So the system will decide how to do the Matching based on the setting at the supplier site level. what is the process name. the Account Generator in AP does not have to build each segment.*/ /* ACCOUNT GENERATOR Role in Payables & Projects: Just want to talk about. which has to build each segment and the combination. say while creating an invoice. what is the role of account generator.

The validation flag gets updated in the ap_invoices_all table select * from ap_invoices_all -.unit_price < c. */ ap_invoice_distributions_all. */ select * from ap_invoice_distributions_all /*however let us take the case of a PO received and an invoice is created by matching the PO. by distribution id.a. and that is the best way to identify invoices that have been matched with PO. /* Generally. the following accounting entries gets generated at the time of receiving Inventory (Dr) AP accrual (Cr) . the quantity billed and the amount billed columns will get updated with the invoice prices).po_line_id = c.unit_price and a. This is very much similar to the relation that we have between requisition and the PO i.60354 and a. when an invoice is raised and there is a corresponding matching PO.approval_status? -. 5 Receipts => 5 Invoice */ -.po_distribution_id and b.unit_price . where you will manually enter the expense account. The distributions can be seen from the query.(Interestingly there is also a Invoice Match Option that you can set at the Financials Options Setup => Options => Financials Options) The different kinds of scenarios that are available are we can have 1 PO. c.unit_price. then it will put the Invoice on Hold.po_distribution_id So if the Matching fails.unit_price .a. */ select a.po_line_id and a. When the PO is received.po_distribution_id = po_distributions_all.e.accounting_date between trunc(sysdate -1) and trunc(sysdate-1) + 0.unit_price price_difference from ap_invoice_distributions_all a.c. Once an invoice is raised against this PO. We can run the Invoices on Hold report to see what invoices are hold. That is when you create a standalone AP Invoice.po_distribution_id is not null /* So basically the following query should be able to give us what is the corresponding PO from the invoice. 1 Receipt => 1 Invoice We can have 1 PO.quantity . -------------------------------ACCRUALS: We know that the two main accounts that get updated in Accounts payables when an invoice is created are LIABILITY (and EXPENSE).quantity_invoiced. po_distributions_all b. even though there is a column by name match_status_flag. without any PO matched.po_distribution_id = b. /* PAYABLES ACCOUNTING PROCESS .c.99999 --.Invoice Matching with Purchase Order and 3-way Matching. po_lines_all c where a. then the po_distribution_id column in the ap_invoice_distribution will be not null.

last_update_date from ap_ae_lines_all where creation_date >= trunc(sysdate) -. And if you want the HR hierarchy to be used for the AME. but it is in the headers table here */ select * from ap_ae_headers_all where ae_header_id = ( select distinct ae_header_id from ap_ae_lines_all where reference2 = 10407) /*Here in the lines table.entered_dr. So for the two document classes of Invoices and Payments. code_combination_id. accounted_dr.creation_date. Concept of Accounting Event: An accounting event is a payables transaction that results in an accounting impact. Unapplication. accounted_cr . the invoice references are there from reference2 (invoice_id) or from source _id */ Select ae_header_id.and source _id = 10467 -. ae_line_id. . Payments => Payment. the account is automatically defaulted with the accrual account from PO. entered_cr. So having created the accounting entries we can expect the data in these two tables with the balances being updated for the liability and the expense accounts. Invoice Adjustment. creation_date.and code_combination_id in (1012. unclearing. last_update_date from ap_ae_lines_all where reference2 = 10407 -. Interestingly we would expect the gl transfer flag in the lines.4583. We track this by using the code combination id.5933) /*INVOICE APPROVAL WORKFLOW: ---------------------------To setup the invoice approval workflow in AP. entered_cr. cancellation. you need to use the Oracle Approvals Management (AME) to define the required rules.and source_table in ('AP_INVOICES'. clearing. Cancellation.*/ In the headers table we will not have invoice references. once you match the PO.'AP_INVOICE_DISTRIBUTIONS') select ae_header_id. adjustment. Prepayment application. future dated payment. AP Accrual Acount Dr Trade Payables Cr Here one thing we need to notice is that. entered_dr.Later when AP invoice is created and matched. the accounting events would be Invoices => Invoice. then you need to define the logic accordingly in OAM. ae_line_id. accounted_dr. accounted_cr. code_combination_id.

*/ select * from po_vendors where vendor_name = 'mysupplier' -. branch. the parameters set of books id. we now create a payment batch and possible give the invoice batch name as the source for this payment. are not displayed and hence they don’t have any value. the payable transfer program will fail. Another thing I noticed is that some times. Interestingly at the payables invoice level. */ select * from gl_interface *Supplier Balances: Just as in AR (where the customer balances are given by the ar_payment_schedules_all).57175 select invoice_id. However there is no vendor id and hence the query to get the supplier balances are given by. so they are failing. What this means is. */ . the supplier balances are given by ap_payment_schedules_all table. in which case enable and display them and then run again.Manual holds after matching can be released. account form. gross_amount. no inv items are specified=> and hence no lines only distributions probably */ select * from ap_invoices_all /*Payables Transfer to GL: **************************** It is very important to understand that Payables Transfer to GL will result in failure if the accounting combination given is invalid. Built 4. Formatted 6. we have to provide the documents which we may have to create using the bank. New 2. Rebuilding 5. Confirmed (payment batch) 7. The different phases a payment will go thru are 1. Create Accounting All these statuses we can progress thru from the Action button. if say for the expense account combination if you give an asset account. A caveat is while creating a payment batch. amount_remaining from ap_payment_schedules_all where invoice_id in ( select invoice_id from ap_invoices_all where vendor_id = 57175) /*ABOUT PAYMENTS --------------Having created the invoice batch and invoices. Selecting 3.

we provide the GL account corresponding to the cash. this particular GL account is updated. we can use the "Automatic Payment Programs" window to define the payment programs that you use to build. start_print_document./* initially when we create a payment batch. The requery batch will show the different statuses like Selected. While creating a bank account. where we create a payable document (we also provide what kind of format it is) and provide all the relevant information. bank branch and then bank account. Oracle Payables defines 3 payment program types 1 standard program for building the payments => Build Payments. and banks) and then create a bank. What this means is that. We can go to the (setup. status.end_print_document. by pressing the invoices button. bank_account_name. */ --Actually the payment batches are called checkrun_names and they are stored in this table. And then we can "confirm" this batch as well. we create a batch which corresponds to a group of invoices from a particular supplier or from a particular pay group. What this means is that for each supplier how much amount is owed is provided. select checkrun_name. upon which the status changed to "Confirmed".last_update_date from ap_inv_selection_criteria_all order by last_update_date desc /* hence when we make payments. Now when look at the "payments" button for this particular payment batch. And the status of the payment batch is "Built". payments.(like the starting and ending check numbers in case of check payment method) So when this particular action is completed we do get a payment total which is equal to this sum. format payments or for creating a remittance advice. Built etc. we can create the payable documents. So having created successfully a bank account. we provide the document of payment.first_available_document. we want a payment to be made for the amount equal to the sum of all the invoices corresponding to that particular supplier chosen or corresponding to all the suppliers of a particular pay group. Also while creating a payment batch. org_id. In this screen we can also look at the division of this grand amount into individual invoice amounts. from the actions button. we select "select invoices and build payments options" and choose this action to be performed. . Conveniently we can also give a invoice batch created earlier and it would pick only the invoice corresponding to that particular batch. 13 standard programs for formatting the payments => Format Payments (Standard Oracle). That is when this document is encashed. After this. the liability account (5933) in Payables will get debited while the cash clearing account will get credited (4583) */ /*Automatic Payment Programs: ***************************** In Oracle Payables. and then we would see the diversification of this amount into different supplier amounts. This is +done as follows. payment_method_lookup_code.

You should create a bank account corresponding to that particular operating unit and then transact. Also during that entire process of building. So the relation is (Payment Formats. beyond which we cannot use. then you usually enter the value of 1 as minimum. we define banks. we associate the above defined programs (for build. We know that in AP. After this some payment batch has used this particular payment method. An exception is Wire method: Wire method of payment is a type of payment which you do outside of payable system and once payment is done then based on document sent by bank you record it in payable system and hence payment batch is not possible with wire transfer when you enter in the system. Now to get a bank and branch from the bank account name. In the case of checks. And it comes from the payables options level. it will update the last_used column to the appropriate value (i. but not the bank branch. When we define a payment format. And when we create a payables document. the bank account information is automatically defaulted. However let us take the simplest case of checks.e. LAST_USED => If you are defining a new payment method. by which time the payment is already done and hence no need to tell the system which invoices to be selected. formatting the payments. we associate the above created payment format and specify some other parameters like the min and max document numbers. format and remittance advice) and some other options.1 standard program for creating a separate advice for payments => Remittance Advice. branches accounts and for any particular bank we can define the payables documents. /* When you actually start creating a payment batch. run this query. no other payment batch can use this particular document.e not necessarily for checks). */ PAYMENT BATCHES: ---------------- . methods) => Payment Programs => Payables Documents Some information about the document numbers: the document numbers can be associated with any kind of payment method (i. then just having a bank account in US will not do. That is if you have banks in different countries. by the operating unit id.*/ select * from ap_bank_accounts WHERE bank_account_name like 'BofA_CN_INTERNAL' --'110 US 2788 BOFAUS3N USD' -select * from ap_bank_branches where bank_branch_id =48000 /*A bank account is striped by org_id i. LAST_AVAILABLE => is the document number that is the last available number.e. Also once any payment batch starts using this document. the document for that payment batch will be 1. Since it has used that. to value 1) and the value is not updatable until that batch is done processing. After that we can update that value again. Let us say you already defined this document number.

begin fnd_client_info. select checkrun_name. select * from ap_selected_invoices_all where checkrun_name = 'mypbatch7' order by last_update_date desc -. end_print_document. payment_method_lookup_code. -. start_print_document. PAY GROUP.set_org_context(fnd_profile. first_available_document.All the invoices that are selected for the payment batch are from this table.*/ different payment terms on batch level and invoice level. select * from ap_selected_invoice_checks_all -. status.: PAYTHRU DUE DATE. bank_account_name. END. last_update_date from ap_inv_selection_criteria_all order by last_update_date desc /*If you change the payment method code on a supplier .value ('ORG_ID')). then all the existing invoices/batches will not change. --BUILDING THE PAYMENTS: -----------------------/*Building is the process where the selection of the invoices & building for that batch happens. However all subsequent changes will have the new changed payment method code. org_id. you will have to manually change the payment method code.where checkrun_name ='mypbatch47' --and status_lookup_code = 'UNCONFIRMED SET UP' order by selected_check_id order by last_update_date desc FORMATTING THE PAYMENTS :( Very Important Step) ------------------------- . PAYMENT PRIORITY.We can also check what is the check number that is used for this payment here. PAYMENT METHOD*/ --Actually the payment batches are called checkrun_names and they are stored in this table. see and explore what exactly the pay thru date means. Only invoices which match the criteria of the payment batch will be selected. Basically we must ensure on the payment batch for the following things.

invoices_per_stub from ap_check_formats where name like 'Standard Check Format' order by last_update_date desc . The following query gives pretty much the formatting options. And once the payments are built. */ From the bank account => Payables document => document name => (payment format. aisc. the program that is specified in the payment method (like check etc). which you specify in the payment batch will be run. acf.check_stock_id = aisc. there are 13 different standard format programs which oracle provides. ap_check_formats acf.check_format_id -./*The next step after building the payments is formatting. the remittance advice program is part of the Format program and hence we don’t need to run any separate program.check_date FROM ap_invoice_selection_criteria aisc. */ SELECT aisc.Even though the table name says check formats all the payment formats are stored in this table. the checks last_used value will get updated as mentioned earlier. However for the payment methods like EFT. When you run the format program.print_check_stub.check_stock_id AND acs. ap_check_stocks acs WHERE aisc. formatted and confirmed.checkrun_name = 'mypbatch7' AND acs. As mentioned before. acf. print check stub or not it will show us how the check looks like in the output file once the program completes. And we can create as many as we want as well. method) => BUILD and FORMAT program name.*/ /*Basically formatting means (nothing much happens on the back end side) it searches for certain options and shows how the output or check will look like and based on the parameters like stub first or last. then there will be a separate remittance advice program which will be running.check_format_id = acf. select stub_first_flag. /*usually in the case of the check payment. separate_remittance_advice.checkrun_name.print_check_stub. acf.stub_first_flag.separate_remittance_advice.

/* Basically check stocks is not transaction dependent. is damaged. Basically we load the check documents in the printer. That is we choose the value "skip" and provide that number. in AP as well. We also tell which got printed successfully. batch_id. Let us say one particular check. we can check the invoice payments from Invoices => View Payments /*CONFIRMING THE PAYMENT BATCH ---------------------------Basically when we format the documents at that point of time. once the payments are made for the invoices. When you confirm a payment batch.*/ -. Payables inserts into this table when you build payments in a payment batch. the last_available and last_used ones will get updated successfully. So the formatting gives us with a lot of options like how the check document looks like. the payment schedules table will have the due dates etc. This is how it works. It tells you what is the starting number and ending number */ select * from ap_check_stocks order by last_update_date desc /* "ap_selected_invoice_checks_all" is a temporary table that stores payment information during a payment batch. Now when the printing of checks completes. After all this is done. amount_remaining. gross_amount. * from ap_checks_all order by last_update_date desc select * from ap_checkrun_conc_processes_all select * from ap_checkrun_confirmations_all /* Just like AR. due_date.*/ select invoice_id. . And then it deletes from the ap_selected_invoice_checks_all*/ select * -- FROM ap_selected_invoice_checks_all order by last_update_date desc /*I changed the option in the payment format from before document to after document. org_id. then we can tell the system during the confirm process. There will be one row for each payment issued during the current payment batch. say 1005. so that system will ignore that. inv_curr_gross_amount from ap_payment_schedules_all where invoice_id = 10544 --And from the form. and then the invoice information is printed below the check now. these check documents will already have the numbers on them. we can print the checks. your Oracle Payables application inserts these payments into"ap_checks_all" and creates a payment file. now we can see the amount remaining is zero. then we know what got printed successfully and what not.

check_id. That is when you build the payments it does not include any other invoices other than a pay-alone invoice. If there is pay alone and non payalone invoice. Payment batches can be accounted only after the corresponding invoice batches have been accounted for. */ /*ACCOUNTING FOR PAYMENT BATCHES. all at once. where the checks are inserted into ap_checks_all at the time of confirming. then pay alone invoice will be built first. We can identify such payments from the following table using the invoice id. ap_checks_all payment_method_lookup_code. and Refunds. We have seen that we progressed the payment batches thru building. confirming etc (regardless of the formatting method used).*/ /* Unlike in the case of batches.then you come to the manual payments screen and record that payment.*/ /*SINGLE PAYMENTS: ------------------The three different types of single payments are Manual Payments. Since there is no invoice selection criteria and you directly mention/enter the invoices they do not go into the table ap_inv_selection_criteria and they go to ap_invoice_payments_all. */ select payment_type_flag. is that true.*/ /*MANUAL Payments: One main functionality of the manual payments are when the payment has already been made.check_number from where check_number= '1000009' . otherwise it will just print one payment document. Quick Payments. */ select * from ap_accounting_events_all --where event_type_code like 'PAYMENT%' order by creation_date desc select * from ap_ae_headers_all order by last_update_date desc /*Pay Alone Invoices: ------------------Pay Alone Invoices: When the pay alone check box is checked at the invoice level (which actually defaults from the supplier site level and can be changed at the invoice level). Here at the time of creation itself the checks are inserted into ap_checks_all. then payables will create a separate payment document for that invoice.The confirm payment batch will print separate payment document for each supplier. One of the major difference between the single payments and batch payments is that in the single payments you do not have the process of building the payments. formatting. So it is basically after the fact and you mention the invoice for which it is paid so the invoice balance is reduced. And payment batches can be accounted only after they have been confirmed.

for the manual payments there are no further actions. invoice_id. the program will ask for the auto post set id. The advantage is that you can select an invoice regardless of the due date or payment terms.put the above check id here to get payment/invoice information. and here we can optionally mention to do the Journal Import as well. The steps involved are "Payables Transfer to GL". "Automatic Posting". we can check the data in the following tables. accounting_event_id. Basically when you create a payment. there is nothing like building . category. invoice_payment_type.formatting. cash_posted_flag. period_name. amount.*/ select * from gl_je_headers select * from gl_je_batches where creation_date gl_je_batches) select max(creation_date) from gl_je_lines /* Generally while running the Posting Process i. check_id. When we run the "Payables Transfer to GL".check_id. we can then run the conc program (we can also run from the same form) by providing this autopost set id */ = (select max(creation_date) from . invoice_id. source. the data gets moved into the GL_INTERFACE table. period_name. "Journal Import" and "Posting to General Ledger".check_number from where check_number= '1000010' -. accounting_date from ap_invoice_payments_all where check_id = 10480 SELECT * FROM ap_lookup_codes WHERE lookup_type = 'PAYMENT TYPE' AND lookup_code = 'M' /*Following this.-. */ /*QUICK Payments: Quick Payments is a process where you quickly print a payment document like check and send it to supplier.GL TRANSFER: /*Now we need to transfer these invoices and payments transactions to the General Ledger. select invoice_payment_id. confirming etc. The advantage of manual payments is that you can create a single manual payment for multiple pay-alone invoices or you can pay a supplier who has Hold All Payments enabled. balance type and period columns. i.e. invoice_payment_type. Hence after the Journal Import is done. For this we go to the form "Autopost Criteria Sets" and create a criteria set by providing the priority.e. select invoice_payment_id. It just reduces the supplier balance. accounting_event_id. but there is no build stage. However in this case.check_id. then only you specify which invoice you are paying. amount. Having created a criteria set.Put the above check id here to get payment/invoice information.*/ select payment_type_flag. Typically this happens in stages. cash_posted_flag. after you create a payment you will format and print the payment. ap_checks_all payment_method_lookup_code. accounting_date from ap_invoice_payments_all where check_id = 10500 SELECT * FROM ap_lookup_codes WHERE lookup_type = 'PAYMENT TYPE’ AND lookup_code = 'Q' -.

you first create a prepayment invoice for a particular supplier and make a payment for that prepayment invoice. why not partial?) 3) Now create a Standard Invoice for the same above supplier. In this case also the screen looks very similar with the exception that you have an additional check box "Prepayment on Invoice". */ /* PREPAYMENTS IN ACCOUNTS PAYABLES: There are two kinds of prepayments => Temporary and Permanent. only the summarized information. The only difference in both the ways of application is in the creation of accounting distributions. . If you check this. Then whenever you are entering an invoice for that * from gl_automatic_posting_sets /* Hence after Posting process is completed we can check the gl_balances table which will contain most importantly. The way you deal with the prepayments in AP is that. Temporary prepayments are those which you apply to an invoice. the system prompts you saying that. A payment document should need only one document number right? --why is that it needs so many document numbers from last used to last available numbers. a prepayment can be applied to the supplier invoice. If you created invoice and match to po the invoice will be on hold as no receipts are created.*/ /* You need create receipt first and invoice later. and provide a settlement date. make sure it is temporary. When you tab out of the supplier window. you pull up the Supplier invoice created in the step 3 and choose Actions => Apply/Unapply Payments. 2) Make a payment for this prepayment invoice by doing this Actions => Pay in Full (why the prepay invoices needs to paid in full. now this will give all the eligible invoices for that supplier and you can apply to one or more than one number of invoices. */ SELECT * FROM gl_balances where code_combination_id =4583 order by last_update_date desc /*Use the Payables function to print a check. * Second. * First you pull up the prepayment invoice and click on the Actions=> Apply/Unapply Payments. 4) Next there are two ways. 1) First create a Prepayment invoice. the system will prompt you saying that there is a prepayment against this supplier. there is a prepayment for this supplier. that what it means is that the supplier invoice has included the prepayment amount as well in the invoice amount.

(The fields next invoice period and the next amount indicate are non-editable fields). Once the invoice has been generated. */ select * from ap_invoice_prepays_all where last_update_date > sysdate -100 select * from ap_payment_history_all where last_update_date > sysdate -1 /*Payables & Cash Management => If the cash clearing needs to work. Further when you use the cash management you can reconcile the bank statements with the cash clearing account. you cannot create payments. And if you want first invoice period to be. Then it will hit the cash clearing account when a payment is account. then you need to give the correct cash clearing account information in the bank account as wells as the payables documents level. aida. the next period will be Jun.(Prepayment on Invoice checkbox: ticking the 'Prepayment on Invoice' checkbox when you apply the prepayment? This will create a new negative distribution line on the invoice and reduce the overall invoice distribution total accordingly) */ select aia. . prepay_amount_remaining from ap_invoices_all aia. About the calendar: Let us say if there is calendar consisting of 12 periods from January to December. with months.prepay_distribution_id. So at any point of time. A recurring invoice works on the line of recurring journals in GL. That is. Some of the important things that are needed in the template definition are Special calendar => needs to be defined. May. */ Recurring Invoices: ------------------Generally a supplier sends a invoice and we enter it into our system. It works in two steps. without a supplier invoice which has an open balance.invoice_id = aida. However sometimes we can also generate a invoice on behalf of supplier. say.invoice_num like '08-MAR-2007' select * from ap_payment_bsets_all /* In AP. we can see what will be the next recurring invoice period. Recurring Invoice template Definition Recurring invoice creation. quarters etc. This can be done by recurring invoice. Then the next period will be populated as May. ap_invoice_distributions_all aida where aia. you cannot create payments without associating them with the invoice.invoice_id and aia. invoice_date. Distribution source => get it from the distribution set or from PO.invoice_id. invoice_type_lookup_code.

count(*) from ap_invoices_interface where source = 'WW-Real Estate-Payments' group by source.Run the concurrent program "Payables Open Interface Import". status -. that means.set_org_context(fnd_profile. end. you cannot change any fields in the recurring template. The import program will create a record in the ap_batches_all . select status.Run the invoice_test. /*Payables Invoice Import Process The following process goes thru the flow of generating the invoices (along with the underlying table updates) until the ultimate GL Posting Process. Debit Memo: ---------------------------------A credit memo is a document sent by the supplier which decreases the supplier balance. A debit memo is a document which you create and send it to the supplier for their reference. other than the account distribution.sql to populate the invoices into the ap_invoices_interface table. source. Pay group: Pay group is a look up code defined in the purchasing application. Invoices Testing Queries: -. the invoice amount will be that amount. Q&A Receiving Transactions processor should be running.value('ORG_ID')). It is also a negative amount and is applied by matching to a supplier invoice and it decreases the supplier balance. Do we need to come to the template every time and run the recurring invoice isn't that cumbersome ? Payables Credit Memo. It is a negative amount and is applied by matching to a supplier invoice. Once a recurring invoice has been generated. with the invoice batch name as any name. on that period.Set the Environment */ begin fnd_client_info.There are two special amounts and periods. -.

to_char(last_update_date.'DD-MON-YYYY HH24:MI:SS'). /* "Invoice Validation" Concurrent Program.count(*)from ap_ae_lines_all where trunc(creation_date) =trunc(sysdate) group by to_char(creation_date. to_char(creation_date. Run the "Payables Accounting Process" Concurrent program.Get one such invoice imported into ap_invoices select invoice_id. by running the following query.(APPRVL) (Param: Process all matching lines) If the approval_status_lookup_code = 'APPROVED'. count(*) from ap_invoices_all where trunc(creation_date) = trunc(sysdate) group by to_char(creation_date. -.'DD-MON-YYYY HH24:MI:SS') creation_date. approval_status. THEN the status is 'VALIDATED'. (Param: Validate Accounts : select to_char(creation_date.'DD-MON-YYYY HH24:MI:SS') select invoice_id. OR "Invoice Approval Workflow" needs to be run. This is already enabled for every 30 sec in SJPRF.'DD-MON-YYYY HH24:MI:SS') select to_char(creation_date. approval_status_lookup_code from ap_invoices_v where invoice_id = 5354999 -NO). count(*) from ap_invoices_v where trunc(creation_date) = trunc(sysdate) and approval_status_lookup_code = 'APPROVED' group by to_char(creation_date. select to_char(creation_date. --Before approval.-.'DD-MON-YYYY HH24:MI:SS' /* "Workflow Background Process" for invoice approval.You can keep checking the query #1 whether the invoices are processed or not in the source table. wfapproval_status. if the approval_status lookup_code is 'NEEDS REAPPROVAL'. approval_status.'DD-MON-YYYY HH24:MI:SS') -.count(*) from ap_ae_headers_all where trunc(creation_date) =trunc(sysdate) group by to_char(creation_date.The Following programs are scheduled in SJPRF to run for every 10 minutes. then the status is 'needs revalidation' */ select to_char(creation_date.'DD-MON-YYYY HH24:MI:SS') . posting_status.We can also check in the destination table after setting the env.'DD-MON-YYYY HH24:MI:SS'). posting_status. wfapproval_status. the below query should give the import count# */ . 'DDMON-YYYY HH24:MI:SS') last_update_date from ap_invoices_all where creation_date = (select max(creation_date) from ap_invoices_all) and rownum < 2 -.'DD-MON-YYYY HH24:MI:SS').

the above query should give 0 records.'DD-MON-YYYY HH24:MI:SS') -.'DD-MON-YYYY HH24:MI:SS') .) After the feeder systems (i.After approval process.'DD-MON-YYYY HH24:MI:SS'). /* "Cisco Payables GL Transfer Post Program" ap_invoice_distributions_all (posted_flag).count(*) from gl_je_lines where trunc(creation_date) = trunc(sysdate) group by to_char(creation_date.count(*) from gl_je_headers where trunc(creation_date) = trunc(sysdate) group by to_char( to_char(creation_date. Automatic Posting Hence it is important we need to have US GL Super User responsibility assigned to yourself before we kick off this program. they are moved to the gl_je tables. Journal Import 3. */ /* Quick Invoices & Invoices Workbench: .'DD-MON-YYYY HH24:MI:SS') select table_name. they will update the gl_balances table. */ select to_char(creation_date.'DD-MON-YYYY HH24:MI:SS') select to_char(creation_date. (gl_interface. we can also look at them from the applications either in the invoice form or look at all the invoices in Invoice=>Invoices=>Open Interface Invoices.count(*) from ap_invoices_v where trunc(creation_date) =trunc(sysdate) and wfapproval_status = 'WFAPPROVED' group by to_char(creation_date. So this program essentially kicks off 1.e AP. gl_balances.AR ) transfer the data to GL. gl_je_batches.'DD-MON-YYYY HH24:MI:SS') .num_rows from dba_tables where table_name in ('AP_AE_LINES_ALL') /* Once the invoices are imported into the ap_invoices_all . ap_invoice_distributions_all tables from ap_invoices_interface and ap_invoice_lines_interface. Payables Transfer to GL 2. Once these entries are posted. they first go to gl_interface table and then from there .

payables options. you generally have one AP invoice. when u r receiving more than the PO line amount. --. And the hierarchy of preference can be found in the financial options. So we found that for the matching to succeed we really need a PO for the invoice. so no need to create anything new Create a new sequence with starting number. AP credit memo. -The only way you can enter a quantity invoiced amount in the invoice distribution is to match it to a po line /shipment. here too we define tax code(from tax types) and tax codes can be specified at different places like Supplier. otherwise it fails regardless of the PO. after which we can run the invoice import program to import them in AP. etc. when we validate them. cant the system go and find the related PO and match them. Just like in AR. You could edit that value if you want to and change it. invoice header. 2) What is a voucher and document sequence?? Since two suppliers can provide you two invoices which might have the same invoice number.Quick invoices window will not do much of the validation and do not default the values. however the over-receipt tolerance amount pertains to the scenario. . Simple steps are There are already predefined document categories like AP invoice. it is supplier who will have to apply the taxes. site. in which case. template. And so you can for an AP invoice. -you can receive any amount lesser than the PO line amount. Hence you have to create a voucher number within your system for these two invoices. for each receipt. */ -For invoice matching is the PO really required. invoice number cannot be unique. Also this information will go into the ap_invoices_interface table. Also we can assign a document sequence for each document category with in the Oracle applications system. then the quantity invoiced is defaulted to the value of the po line quantity requested. just by the supplier id. is For manually entered invoices. This is probably because the company is not taxing. However I did not find the location tax code in the tax code in the payables. where the PO information.QUESTIONNAIRE: 1) Is there a tax hierarchy in AP as well??? Yes. does it do matching and if it does. -so basically in matching the invoice distributions are matched to the PO lines/distributions or receiving distributions based on 2 way or 3 way matching. so that you can uniquely identify them.

and send it tto the supplier for verification. which one is used in what circumstances and what are the advantages of one over the other? When both of them can be used. 2-way matching is performed. 2 way vs. Category. 3) What happens in these matching scenarios?? PO. then the system just matches and validates it successfully. 3-way matching or matching with PO's. PO. format and confirmation. which will also reduce the invoice balance. without being part of a batch. which you can change. 5) Should every invoice in Payables be a part of an invoice batch? If the profile option "AP: Use Invoice Batch Control" is set to yes. the only way you can enter an invoice quantity (Match Quantity) is by matching it to a PO line. approval. Also between. which is preferred? Is it like the more receipts for a PO. Payments=> Entry => Payments. upon which the invoice quantity is defaulted from the PO line.4 way matching? 4) What are credit memos and debit memos in Payables?? A credit memo is a document sent by the Supplier which you will apply to an invoice and which reduces the invoice balance. 3-way matching is performed. What is that so & why there is no invoice qty field in the distribution form 8) What are the steps required to void a check in AP? 9) Difference between suppliers and vendors? . 2-way matching or 3-way matching with receipts Receipt. Start date) Ensure that Sequential Numbering profile option is aptly set. So you cannot manually type in the invoice quantity in the Invoice distribution without matching. Payments => Entry => Batches. 3-way => what will happen here. Set of Books. 2-way => what will happen here . A debit memo is a document which you will create.Assign the above sequence to a particular (Application. then you can create a standalone invoice. Receipt. Manual and Refund). If the above profile option is set to No. 7) What is the difference between online Matching and offline matching? When you are entering online invoice in Invoice workbench. they are called Single payments and they are of 3 types (Quick. Payment batches go thru the build. better 3. 2 -way => No confusion here. 3 way matching. 3-way => No confusion here. then you can create an invoice only after you create a invoice batch. 6) Should every payment be a part of a payment batch? No. If you enter a standalone payments. However if we manually create an invoice line which is identical to a PO line then run matching.

10) For manually entered invoices. then the accounting lines are automatically transferred to GL and can be seen in gl_interface. . Also Employee is a type of Supplier. The different kinds of suppliers are government. you cannot build corresponding to CHECK and ACH with in a payment batch. when you choose supplier type. it is important that you can only give one type of payment type’s i. In such case. when we validate them. you have a option of vendor there.e.In Oracle 11i. This is b’coz. i am not able to see the accounting entry for the accrual account?? Firstly ensure that you have accrued on receipt. where is the PO information?? Yes it does matching and its puts on hold if there is no corresponding matching. 12). 11). you can release the hold manually. So it is understandable bank is tied to an operating unit/ SOB id. Mfg.When I go to the view accounting from the receiving transaction. there is no centralized payment systems?? Which means that you just cannot have a bank defined in one country and send payments from that bank? You need to define banks in each operating unit.I believe vendor is a type of supplier. does it do matching and if it does. And then if you do that. Try to see where you can define supplier types. federal. When we build the payments.

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.