Most data that reaches Oracle Fusion in bulk arrives through FBDI. Invoices from a scanning tool, journals from a legacy ledger, suppliers from a master data system: each ends up as a zip of CSV files that Fusion loads and imports. Doing that by hand once is a good way to learn FBDI. Doing it every night is a job for Oracle Integration Cloud.
This guide builds that integration end to end: OIC picks up a source file, reshapes it into the FBDI format, sends it to Fusion and finds out whether the import worked. The example loads Payables invoices, because they are the most common FBDI integration and the one interviewers ask about most, but the same pattern works for any object FBDI supports.
What FBDI does, in one paragraph
FBDI (File-Based Data Import) is Fusion's bulk import route. For each object, Oracle publishes a spreadsheet template that defines the interface table columns. The data goes into CSV files in exactly that column order, the CSVs are zipped, and the zip is uploaded to Fusion's content server (UCM). A process called Load Interface File for Import moves the rows into interface tables, and the object's own import process, here Import Payables Invoices, validates them and creates the real records. Rows that fail stay in the interface tables with an error.
Done by hand, that is four steps in Fusion. The point of the integration is to do all four without anyone logging in.
The shape of the integration
The flow has four parts:
- Get the source file. A scheduled integration reads a CSV from an FTP server. In a real project this could just as well be a REST call, a database or an object storage bucket.
- Build the FBDI files. OIC maps each source row to the FBDI layout and writes the CSV files Fusion expects, then zips them.
- Send it to Fusion. The Oracle ERP Cloud adapter's Import Bulk Data into Oracle ERP Cloud operation uploads the zip and starts the load and import.
- Check the result. Fusion reports back when the import finishes, through a callback, and the integration records or reports what happened.
You need an OIC instance with an FTP connection and an ERP Cloud connection to a Fusion instance, and a Fusion user with permission to run Payables imports and upload files.
Step 1: Create the connections
In OIC, open Design > Connections and create two:
- FTP adapter, pointing at the server where the source file lands, with its host, port and credentials. Test it before moving on.
- Oracle ERP Cloud adapter, with the Fusion instance URL (the base URL you sign in at, without any path) and a Fusion user under Security. Test it: a successful test means OIC can reach Fusion's web services as that user.
A connection that tests green but fails later is usually a permission problem on the Fusion side rather than a wrong password, so note which user you used.
Step 2: Read the source file
Create a Scheduled integration. Add the FTP connection as an invoke and choose Download File (or Read a File for small files), pointing at the folder and file name of your source CSV. For a first build, a simple file with one invoice per row is enough:
INVOICE_NUM,SUPPLIER,SUPPLIER_SITE,INVOICE_DATE,AMOUNT,CURRENCY,DESCRIPTION
INV-1001,Advanced Corp,MAIN,2026/10/01,1250.00,USD,Office supplies
INV-1002,Advanced Corp,MAIN,2026/10/02,480.00,USD,Printer toner
Supplier and site names must exist in your Fusion instance, so pick ones you can see in Payables.
Step 3: Build the FBDI files with Stage File
The Stage File action is OIC's tool for working with files inside a flow. You will use it three times.
- Read Entire File on the downloaded source, with a schema from a sample of the CSV, so OIC knows its columns.
- Write File for the invoice headers. The target schema is the FBDI file
ApInvoicesInterface.csv, built from the Payables invoice import template. Map each source column to the matching header column: invoice number, supplier name, supplier site, invoice date, amount, currency, business unit, invoice type and source. Write a second file,ApInvoiceLinesInterface.csv, with one line per invoice: line number, line typeITEM, amount and description. - Zip Files on the folder holding both CSVs, to produce the zip Fusion will import.
Three details cause most first-time failures here:
- Column order is the contract. FBDI reads columns by position, not by name. The schema you write must follow the template's column order exactly, including empty columns in between. Build it from the template, not from memory.
- No header row. FBDI CSVs carry data only. Make sure the write does not add column names on the first line.
- Formats. Dates go as
YYYY/MM/DD, amounts without thousand separators, and the business unit and source must be values that exist in your Fusion setup.
The header and line files are linked by the invoice ID column, so give each invoice the same ID in both files.
Step 4: Import with the ERP Cloud adapter
Add the ERP Cloud connection as an invoke and choose Import Bulk Data into Oracle ERP Cloud. The wizard asks you to pick the business object; choose the Payables invoice import. Behind the scenes this is the ERP Integration Service's importBulkData operation, and the adapter takes care of the parts that are tedious by hand: it uploads the zip to the right UCM account, runs Load Interface File for Import and then starts Import Payables Invoices.
On the same page, ask for notification by callback, so Fusion tells OIC when the job finishes instead of OIC having to keep asking.
In the mapper for this invoke, pass the zip from the Stage File step as the file content, give it a file name, and fill the job parameters the import needs, such as the business unit and the source. The parameter names follow the import process's own parameters in Fusion, so it helps to run Import Payables Invoices once by hand and note what it asks for.
When this step runs, the response contains a request ID. That ID is the thread that ties everything together: it appears in Scheduled Processes in Fusion and in the callback.
Step 5: Handle the callback
Fusion sends the callback to an integration you build for the purpose. Create an App Driven Orchestration whose trigger is the ERP Cloud connection, configured to receive the callback for bulk imports. When Fusion finishes the load and import, this integration starts with a payload describing the outcome: the request IDs of each job and whether each succeeded, ended with warnings or failed.
What you do with it depends on the project. Common choices:
- Log the summary with a Logger action so it shows in the activity stream.
- Send an email to the AP team when the import has errors.
- Call the ERP Integration Service to download the job's output and log files for the record.
If you prefer polling, the ERP Integration Service also offers operations to check a job's status and download its execution details by request ID, which you can call in a loop with a wait between tries. Callbacks are usually cleaner.
Step 6: Run it and check in Fusion
Activate both integrations with tracing on, then run the scheduled one with Submit Now. In OIC, open Monitoring > Track Instances to follow it through each action.
In Fusion, open Navigator > Tools > Scheduled Processes. You should see Load Interface File for Import followed by Import Payables Invoices, carrying the request IDs from the integration. Open the import process's output report to see how many invoices were imported and why any were rejected. The new invoices appear in Payables > Invoices, searchable by invoice number.
When it goes wrong
- The integration fails at the ERP invoke. Check the Fusion user's roles: it needs to upload files and run the import. Also confirm the connection URL is the base URL of the instance.
- Load Interface File for Import fails. The zip or CSV shape is wrong: a missing file, a header row, columns out of order or a file name the import does not expect. Compare against a zip generated from Oracle's own template.
- Load succeeds but invoices are rejected. The data is wrong for Fusion: an unknown supplier or site, a business unit the source is not set up for, or a date outside an open period. The import report names the reason for each row. Payables also offers a correction spreadsheet for rejected invoices, which you can use to fix and resubmit them.
- Nothing happens after the import. The callback integration is not active, or the callback option was not chosen on the invoke.
What to practise next
With this flow working, the same skeleton covers a lot of real project work:
- Load GL journals or suppliers by changing the business object and the FBDI files.
- Add error handling with a Scope and fault handler, so a bad file is moved to an error folder on the FTP server instead of stopping the run.
- Use a lookup to translate source codes, such as business unit names, into Fusion values.
- Pull the import results back with a BI Publisher report called from OIC, and email a reconciliation.
All of this needs an OIC instance and a Fusion instance that can talk to each other, with FTP and a database on hand. Our Fusion + OIC combo plan gives you both, and the OIC plans include VBCS, ATP and FTP.
Questions people ask
What is the difference between FBDI and the ERP Cloud adapter?
FBDI is Fusion's file format and import process. The ERP Cloud adapter is how OIC talks to Fusion; its Import Bulk Data operation automates the FBDI steps of uploading the zip, loading the interface tables and running the import.
Do I need the FBDI spreadsheet template if OIC builds the files?
You need it to design the files: it defines the columns and their order for each object. Once the schema in OIC matches it, the spreadsheet itself is not used at run time.
Why do the CSV files have no header row?
FBDI reads each column by its position in the template, so the files carry data only. A header row is read as data and usually fails the load.
Is FBDI or REST better for loading data from OIC?
FBDI suits bulk loads, such as hundreds or thousands of invoices at once. REST APIs suit single records in real time, such as one supplier created as it is approved. Many projects use both.