Payment collection

The Payment collection transaction requests credit validation for orders that are pending authorization or charging.

Use this transaction for creating authorization and charge requests.

This transaction works in combination with the Payment execution transaction. Although the Payment collection transaction can run independent of the Payment execution transaction, authorization and collection occurs only after the Payment Execution dependencies are met. For more details, see Payment execution.

Attributes

The following are the attributes for this time-triggered transaction:

Table 1. Payment collection attributes for sales orders
Attribute Value
Base Transaction ID PAYMENT_COLLECTION
Base Document Type Order
Base Process Type Order Fulfillment
Abstract Transaction No
APIs Called requestCollection()
Table 2. Payment collection attributes for return orders
Attribute Value
Base Transaction ID PAYMENT_COLLECTION.0003
Base Document Type Order
Base Process Type Reverse Logistics
Abstract Transaction No
APIs Called requestCollection()

Criteria parameters

The following are the criteria parameters for this transaction:

Table 3. Payment collection criteria parameters
Parameter Description
Action Required. Triggers the transaction. If left blank, it defaults to Get, the only valid value.
Number of Records To Buffer Optional. Number of records to retrieve and process at one time. If left blank or specified as 0 (zero), it defaults to 5000.
EnterpriseCode Optional. The enterprise for which the transaction needs to be run. If left blank, orders for all enterprises are processed. If specified, only orders for that enterprise are processed.
ColonyID Required in a multischema deployment where a table may exist in multiple schemas. Runs the agent for the colony.
HoldTypeOnRollback If the HoldTypeOnRollback criteria is populated and the requestCollection agent throws an exception, for example, from the getFundsAvailable user exit, HoldTypeOnRollback will be used to put the order on hold. If using the old order hold functionality, this will be used as the hold reason. If the hold type does not exist, an exception is thrown.

If the HoldTypeOnRollback criteria is not populated, the order will not be put on hold if an exception is thrown.

AuthorizationExpirationDateWindowInDays Setting this criteria to a positive nonzero number would add an additional where clause for the Payment_Collection agent to pick orders having AUTHORIZATION EXPIRATION DATE between the current date and (current date - AuthorizationExpirationDateWindowInDays).

If the AuthorizationExpirationDateWindowInDays criteria is not populated, the agent queries for orders that have AUTHORIZATION EXPIRATION DATE less than current date.

Statistics tracked

The following statistics are tracked for this transaction:

Table 4. Payment collection statistics
Statistic Name Description
NumOrdersProcessed Number of orders processed.
NumChargeReqsCreated Number of charge requests created.
NumAuthorizationReqsCreated Number of authorization requests created.

Pending job count

For this transaction, the pending job count is the number of orders in the appropriate payment statuses with the value of the AUTHORIZATION_EXPIRATION_DATE is less than or equal to (<=) the current date. The appropriate payment statuses for such orders are:

  • AWAIT_PAY_INFO
  • AWAIT_AUTH
  • REQUESTED_AUTH
  • REQUEST_CHARGE
  • AUTHORIZED, INVOICED
  • PAID
  • RELEASE_HOLD
  • FAILED_AUTH
  • FAILED_CHARGE
  • VERIFY
  • FAILED

Events raised

The following events are raised by this time-triggered transaction:

Table 5. Events raised by the payment collection transaction
Transaction/Event Key Data Data Published Template Support?
INCOMPLETE_PAYMENT
_INFORMATION
modifyOrder
_dbd.txt
YFS_PAYMENT_
COLLECTON.INCOMPLETE
_PAYMENT
_INFORMATION.xml
Yes
PAYMENT_STATUS
YFS_PAYMENT
_COLLECTION
.PAYMENT
_STATUS_
dtd.txt
YFS_PAYMENT_
COLLECTION.
PAYMENT_STATUS.xml
Yes
REQUEST_PAYMENT_
STATUS
YFS_PAYMENT_
COLLECTION.REQUEST
_PAYMENT_STATUS.
xml
Yes
ON_LIABILITY_
TRANSFER
modifyOrder
_dbd.txt
YFS_PAYMENT_
COLLECTION.ON_
LIABILITY_TRANSFER.xml
Yes
ON_INVOICE_
COLLECTION
order_dbd/txt
YFS_CREATE_ORDER_
INVOICE.ON_
INVOICE_
COLLECTION.xml
Yes