Redwood: Get Advance Payments for Sales Orders

Receive part of or the entire payment from each of your customers when they place a sales order instead of waiting until after fulfillment. Get paid before you ship and fulfill the item. Send an invoice after you finish fulfillment, and it will include the advance payment and any remaining balance.

Get and save the amount that your customer pays when you create a sales order in the Order Management work area. Order Management will create an advance, process it, then create a receipt for that payment. As an option, you can wait to receive the receipt's clearance before you fulfill the item. Order Management will then automatically process the lines, fulfill the item, send billing details to Oracle Receivables, and Receivables will apply the receipt to the invoice. If there's any remaining balance, Receivables will bill it to your customer.  

Use this feature to help avoid the manual work that happens when your user in Order Management must communicate with a user in Receivables to manage the payment as its own receipt in Receivables, and when the user in Receivables must manually apply the receipt to the invoice.

Try It

Create a sales order, then add an order line:

xxxxxx

Save the sales order, then click Payments:

xxxxxxxxxxxx

 Here are the details: 

Attribute

Value

Order Total Including Tax

6552.00 USD

Payment Term

30 Net

This value comes from the order header.

Prepayment Amount Entered

0

Starts as 0, and then displays the running total of payments that you enter in the Order Payments section.

This attribute displays the value before Receivables creates the receipt for the payment. 

The value in Prepayment Amount Entered can't exceed the value in Order Total Including Tax.

Prepayment Amount Processed

0

Same as Prepayment Amount Entered, except this attribute displays the value after Receivables creates the receipt for the payment.

Balance Due

6552

It's the Order Total Including Tax which is 6552, minus Prepayment Amount Processed of 0.

Click the plus (+) under Order Payments, then add your payment. Assume you add a 10% payment:

xxxxxxxxxx

Additional details:

Attribute

Value

Prepayment Amount Entered

655.20

Contains the payment that you entered.

Balance Due

6552

It's the 6552 in Order Total Including Tax minus the 0 in Prepayment Amount Processed.

Type

Prepay

Method

Cash

You can also use Check for the method.

Amount

655.20

If you set this attribute, then Order Management calculates Percentage as Amount divided by Order Total Including Tax.

Percentage is up to 2 decimals, and can't be greater than 100.

Percentage

10%

If you set this attribute, then Order Management calculates Amount as Amount Percentage multiplied by Order Total Including Tax divided by 100.

Rounds to precision according to the header's currency.

Amount can't be greater than Order Total Including Tax.

Receipt Method

CASH

You must set a value.

Payment Date

5/4/25

Defaults to system date. You can modify it.

Order Management sends this date to Receivables, and Receivables uses it when it creates the receipt for this payment.

Payment Date can be in the past or future, but it can't be earlier than the header's date.

Receipt Number

Empty because Receivables hasn't processed the payment.

Submit the order, then notice the revised attribute values: 

xxxxxxxxxxxx

Go to Oracle Receivables and examine the payment's receipt:

xxxxxxxxxx

Now examine the main receipt for the payment that used the Check method:

xxxxxxxxxxxx

Make sure the receipt's status is Cleared, run the Import AutoInvoice scheduled process, then view the invoice:

xxxxxxxxxxx

Notice that the invoice doesn't have the payment's receipt:

xxxxxxxxxx

Run the Match Prepayments scheduled process, then notice that the invoice now has the payment. The Balance Details dialog displays a $6552 amount, the total receipt's amount is $1638 for the 2 receipts, and the invoice balance that's due from your customer is $4914:

xxxxxxxxxxx

The Transaction Activities dialog indicates that receipt 12345 for the payment has an amount of $982.80 and the receipt's status is Cleared:

xxxxxxxxxxxxxx

Receipt 300100644139866 for the cash payment has a $655.20 amount, is in Cleared status, and billing applied that amount to the invoice:

xxxxxxxxxxxx

Revise Your Payment

You have different options when you revise your payment.

Action You Attempt to Take

Original Payment's Receipt Status

What Billing Does

Increase the payment's amount.

Can be any status

Rejects the change. You can't increase the amount. Instead, you can add a new payment.

Reduce the payment's amount.

Confirmed

Reverses the original receipt, then creates a new receipt that has the same receipt number for the revised amount in the Confirmed status.

Cancel the order.

Confirmed

Reverses the original receipt.

Reduce the payment's amount.

Cleared

Creates a refund request that has the original amount minus the reduced amount. It doesn't modify the amount or status on the original receipt.

Cancel the order.

Cleared

Creates a refund request for the amount on the original receipt. It doesn't modify the amount or status on the original receipt.

Delete the payment.

Can be any status

Rejects the change. You can't delete it. Instead, you can reduce the payment's amount to 0.

Steps to Enable

You don't need to do anything in Oracle Order Management to enable this feature. However, you do need to do some setup for Oracle Receivables:

  1. Make sure you have set up Receivables so it can create and process standard receipts.
  2. Go Home > Setup and Maintenance > Search > Manage Receivables Activities.
  3. Click Create, then set the values:
    xxxxxxxxxxxxxxxxxxx
     
    • You must set the Activity Type attribute to Prepayment. Set the other attributes to meet your needs.
    • Each business unit can have only one receivables activity with its Activity Type attribute set to Prepayment and the Active option enabled.  
  4. Click Save and Close.

You can process a refund request on a prepayment receipt that's already cleared. For example, you cancel a sales order but you already collected the prepayment. Click Create again:

xxxxxxxxxxxxxx

  • You must set the Activity Type attribute to Refund. Set the other attributes to meet your needs.
  • Each business unit can have only one receivables activity with its Activity Type attribute set to Refund and the Active option enabled.  

Get a Refund

If you need to cancel the sales order or lower the payment amount when it's already in Cleared status, then you must use the Manage Approval Limits task in the Setup and Maintenance work area to create a refund request for that payment. Set these attributes when you use the task:

Attribute

Value

Document Type

Credit Memo Refund

Currency

Minimum and Maximum Amounts

Optional Setup

If you need to clear your payment before you reserve or interface the order line to shipping, then you must add the Pause for Prepayment Confirmation pause step to your orchestration process. The predefined DOO_OrderFulfillmentGenericProcessWithPrepayment process has this step:

xxxxxxxxxxx

Here are the details:

xxxxxxxxxxxxxx

The step's rule:

xxxxxxxxxxxx

The retry interval in the rule comes predefined to retry one time each day. You can modify it to meet your needs. As an option, you can also set the Number of Times to Retry Pause order management parameter.

Tips And Considerations

  • You can use this feature only on Order Management's redesigned pages. You can't use it on the classic pages.
  • If you revise a sales order, then Order Management doesn't modify the order total. If the total increases, then you can add a new payment. If it decreases, you can lower the existing amount.
  • The receipt's currency must match the sales order's currency. 
  • Order Management doesn't send the exchange rate, exchange type, or exchange date to Receivables when it creates the receipt.
  • If you want to use credit check for a prepaid order, then you must use an order management extension to implement this logic.
  • If you use a check, then Order Management sets the receipt number to the check number. The check number can be alphanumeric.

Payments

  • You can create a payment, lower the payment's amount after you already processed it, or refund the payment when you cancel the sales order.
  • You can use your payment only on the sales order. You can't use one on the order line.
  • You can use a payment only with cash or check. You can't use it with a credit card, electronic funds transfer, or direct debit.
  • The payment's amount can't exceed the sum of the order total plus tax.
  • You can't delete or increase the payment after Order Management processes it.
  • The payment date is the receipt date and it can be a date in the past, the current date, or a future date.
  • The payment date can't happen before the order date.
  • Order Management doesn't send the Payment Set ID to Receivables for a return line.
  • The Copy Order action doesn't copy the payment from the original order to the new order.

FBDI and REST API

You can include a payment in your FBDI or REST API payload. For example:

"PaymentTypeCode": "ORA_CASH"
"PaymentMethodCode": 1002 (This is the Receipt Method Id)
"PaymentModeCode": "ORA_PREPAY"
"PrepaidAmount": 2000
"PaymentDate": "2025-06-30"
"CheckNumber": 12345 (This is required for CHECK only)

Troubleshoot

Trouble

Shoot

I enter the payment details on the sales order and submit it, but get an error message:

Sales order couldn't be submitted. Prepayment processing for the order didn't complete. Here's why: You must enter a valid receipt method ID. Ensure the prepayment data is valid and try again.

Make sure your set up on the Manage Receivables Activities task for the Prepayment activity type correctly supports the sales order's business unit. 

I submit the sales order and Oracle Receivables creates the payment receipt, but I don't see any data under Receipt on the sales order's Payments tab.

Create and assign the data security policies for the sales order's business unit. See the Access Requirements section, below.

Key Resources

Access Requirements

  • The person who uses the Order Management work area must have the predefined Order Entry Specialist role or your own custom order entry role.
  • Use the Manage Data Access for Users task to make sure the Order Entry Specialist role or your custom role has the business unit that you use.
  • Assign the Manage Receivables Receipt privilege to the Order Entry Specialist role or your custom role.

To create and assign the data security policies according to the business unit, go to the Security Console, query for the predefined role or your custom role, then set these values:

Data Resource

Privilege

Condition

Business Unit

Manage Receivables Receipts; View Receivables Activities; Manage Receivables Activity Data; Manage Receivables Activities; Manage Payables Invoice

Access the business units for which the user is explicitly authorized