Legacy platform

Verify address

There might be various scenarios like order capture or change of order address which mandates address verification. The application provides an address verification agent to verify addresses on the order and raise alerts to notify users to take appropriate action.

Solution

The following section describes APIs, user exits, services, and other components.

While capturing or modifying an address, the verifyAddress API takes address information and attempts to verify it upfront, through an address verification system (AVS). The communication with the AVS is handled by the YCDVerifyAddressWithAVSUE user exit. The status of the verification process is returned. The possible values are:
  • UE_MISSING - An implementation for the user exit YCDVerifyAddressWithAVSUE could not be found.
  • AVS_DOWN - The address verification system did not respond
  • FAILED - This address could not be verified by the address verification system
  • VERIFIED - This address was verified by the address verification system

During order creation, if the IsAddressVerified attribute is set to N and passed in the input to the createOrder API, the address verification system validates the address. If the YCDVerifyAddressWithAVSUE user exit indicates an invalid address, the order is put on hold of type YCD_VERIFY_ADDRESS. Orders with address verification hold cannot be scheduled or released.

The Address Verification agent picks up orders that are placed on the address verification hold. For each address in an order that must be validated, the agent calls the verifyAddress API, which in turn calls the YCDVerifyAddressWithAVSUE user exit to interact with the AVS.

If the AVS confirms that all addresses are valid, the agent removes the hold on the order.

If the address is invalid, the agent rejects the hold. When an address is not valid, the AVS returns multiple possible close matches if it can. The agent handles this situation in the same way as if the AVS had indicated an invalid address: it rejects the hold on the order and raises an alert. The agent does not reprocess the order unless an address is changed manually.

If the AVS is not online, the agent can be configured to either remove the hold from the order and process it, or reject it, to be reprocessed by the agent later.

Figure 1. Address verification agent
The Address Verification Agent

The details for the address verification agent are as follows:

Table 1. Attributes
Attribute Value
Base Transaction ID PROCESS_ORDER_HOLD_TYPE
Base Document Type 0001 (Sales Order)
Base Process Type ORDER_FULFILLMENT (Order Fulfillment)
Abstract Transaction No
APIs Called verifyAddress
Table 2. Critical parameters
Parameter Description
Action This field is used internally by the application. The only valid value is Get. Do not modify this field.
Number of Records to Buffer Optional. Number of records to retrieve and process at one time. If blank or specified as 0 (zero), it defaults to 5000.
CollectPendingJobs

If this parameter is set to N, the agent does not collect information on the pending jobs for this time-triggered transaction. This pending job information is used to monitor the agent in the System Management Console.

By default, CollectPendingJobs is set to Y. It can be helpful to set it to N if one particular time-triggered transaction is performing a significant number of getPendingJobs queries, and the overhead cost is too high.

Next Task Queue Interval

The number of hours to wait before attempting to process an address again. This value is used with the MUST_VERIFY_ADDRESS rule. If not set, the default value is 5 hours from the current time.

Statistics Tracked

None.

Pending Job Count

The number of orders that need to have addresses verified.

Table 3. Events raised by the address verification agent
Transaction/Event Key Data Data Published Template Support?
VERIFY_ADDRESS_FAILED
OrderHeaderKey,
OrderNo
VERIFY_ADDRESS.0001
.VERIFY_ADDRESS_
FAILED.001.xml
Yes

The YCD_VerifyAddressFailedAlert_1.0 service is invoked to raise alerts of type YCD_VERIFY_ADDRESS. Users are notified of the addresses that failed verification through these alerts so that they can resolve the hold.

The users can open the alert and view its details. The getExceptionDetails API is called to display the alert details. The getCompleteOrderDetails API is called to retrieve a list of unverified addresses on an order. A link is provided to allow the users to update the order addresses as required.

Implementation

To use the address verification feature, the following steps must be completed:
  1. Ensure that the YCD_VERIFY_ADDRESS hold type is implemented for the enterprise that does the address verification. Do the following steps to implement a Address Verification hold type:
    1. Launch Applications Manager -> Distributed Order Management, and load the enterprise that does address verification.
    2. Go to Distributed Order Management -> <Document Specific> -> <Document Type> -> Fulfillment -> Hold Types.
    3. Click the Create icon to create the address verification hold type with the following details:
      • In the Hold Type field, enter YCD_VERIFY_ADDRESS.
      • In the Hold Creation tab, select the following options:
        • On Draft Order Confirmation
        • On Order Creation
      • In the Hold Resolution tab, select Address Verification as the time triggered transaction that will process the created holds.
      • In the Hold Effects tab, you can specify the transactions that will be stopped from processing orders on this hold.
    4. Click Save. The hold type is saved.
    Note: The attributes mentioned in the procedure are important. Additionally, you can specify other attributes for the hold type based on your business needs.
  2. Implement the YCDVerifyAddressWithAVSUE user exit to verify the address with AVS.
  3. Configure the address verification agent. To configure the behavior of the agent when the AVS is not online, see the Organization and participant modeling concepts.
  4. Configure the time that the agent must wait to reprocess an address. To configure the amount of time that the agent must wait before attempting to reprocess an address that could not be verified, can be configured in the Applications Manager. For more information about configuring agent criteria parameters, refer to the Organization and participant modeling concepts.

End-user impact

The users can verify the address and update if required, so that the orders are dispatched and billed to the correct address.