Convert order injection errors to charge errors
This guide outlines the steps needed to build an order injection charge error notification system to alleviate order injection errors and raise them as charge errors.
Platform:
- Custom
An order injection error is defined as an order with a charge that has been successfully processed in Recharge, but the accompanying order is not successfully created in the order management system (OMS). Order injection errors occur due to a gap in the architecture between Recharge and your OMS platform.
For example, your OMS may have different address validation requirements than Recharge, or there may be a lag in deprecating inventory in Recharge versus in your OMS.
The following table defines terms used throughout this article.
Term | Definition |
---|---|
Order injection | The process of receiving an order/created webhook from Recharge and creating that order in your order management system. This is commonly done with recurring orders that process in Recharge, or orders that initially go through the Recharge checkout. |
Order injection error | An order with a charge that has been successfully processed in Recharge, but the accompanying order is not successfully created in the order management system |
Missing order | Any Recharge order that does not have an external_order_id |
Log and categorize errors
Log and categorize errors returned from your OMS API. During order injection, your order management system may return an error when trying to create an order. You’ll want to catch and categorize the errors based on error type so that you can accurately report those errors in the charge error.
These errors usually can be categorized into specific reason types:
- Out of stock inventory errors
- Exceeds quantity requirements errors
- Invalid billing or shipping zipcode: Customers might have their billing or shipping address set to a really long string, something that is invalid and is rejected by BigCommerce.
Note:
Not all errors may need to end up as charge errors. For example, if you encounter errors from rate limits, you may need to build retry logic instead of raising a charge error.
Leverage the charge refund endpoint to raise charge errors
Implement the charge refund endpoint for order injection error process. This process will pull order injection errors, then refund and change the charge status to error in one API call.
POST /charges/{id}/refund
Example request payload:
{
"amount": "18.50",
"full_refund": true,
"retry": true,
"error": "test error message",
"error_type": "insufficient_inventory"
}
The response will be Recharge's existing charge API response schema. The error_type
will be populated with what was passed in the request, and the charge status will be ERROR.
This process will refund the order in Recharge and create a charge error that you can see and manage from the Recharge merchant portal. Access this page by clicking Customers and selecting Order errors.
Updated 3 months ago