This guide outlines the key areas to check when diagnosing issues with Payment Link Auto Assignment. It provides a concise overview of where to look and what each location represents.
1. Store Configuration
Back Office → Stores → Select Store → Other
Check that:
Payment Link Auto Assignment is enabled.
A default register is selected if desired.
Why check here
If this setting is off, no auto assignment will happen and refunds may enter failure states.
2. Tender Type Setup
Back Office → Tender Types
Check that:
A tender type exists with Type set to Payment Link.
Tender type is Active.
Tender type belongs to the correct group.
Why check here
Auto assignment cannot apply credit without this tender type.
3. Register Batch Status
Back Office → Registers → Select Register
Check that:
The register used for auto assignment has an open batch.
Why check here
Auto assignment uses a register to post credit. If the register has no open batch, assignments and refunds cannot be processed.
4. Auto Assignment Queue
CitrusPay Payment Links → Auto Assignment Queue
This is the primary place to understand the status of each payment link.
Key fields:
AssignmentStatus
Pending, Assigned, Pending Refund, Refunded, Error, Failed.
AssignmentDate
Shows if the link was prepared for assignment.
RefundAmount
Shows pending or completed refund totals.
Error Message
Displays the exact cause when the system cannot process the item.
Requeue option (for applicable items)
Why check here
This page tells you:
What the system attempted
Why something failed
Whether an item can be requeued
Whether the item was ever assigned
Whether refunds were processed
5. Hangfire Job Monitoring (Internal Use Only)
Hangfire Dashboard
Check:
Is the BackgroundPaymentLinkAutoAssignmentTask running as expected.
Why check here
If the Hangfire job is not running or is failing consistently, no auto assignments or refunds will process.
6. Database Records
Tables
pos_PaymentLinkAutoAssignmentQueue
Full queue state.
pos_AdyenPaymentLink
Source data for payment link creation, payment, and refund triggers.
Why check here
Useful for confirming system state when user facing pages do not tell the full story.