> ## Documentation Index
> Fetch the complete documentation index at: https://docs.archefusion.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment identifiers

> Understand the difference between merchantOrderId and paymentId, and know which one to use for tracking, verifying, and reconciling payments.

An Archefusion payment involves two identifiers you will work with. Because Archefusion sits between you and multiple gateways, these roles are split differently than in a direct gateway integration, where a single reference often does everything.

## The two identifiers

**merchantOrderId** is yours. You generate it to identify and reconcile the payment on your own system. It must be unique for every payment request.

**paymentId** is Archefusion's. Archefusion generates it to identify the payment within its system. Use it for every follow-up call to Archefusion, such as [verifying a payment](https://docs.archefusion.com/pages/accept-payments#verify-transaction) or checking its status.

## Quick reference

| Identifier        | Owned by    | Use it to                                          |
| ----------------- | ----------- | -------------------------------------------------- |
| `merchantOrderId` | You         | Track and reconcile the payment on your own system |
| `paymentId`       | Archefusion | Verify or check payment status with Archefusion    |

## Coming from a direct gateway integration

If you have integrated a gateway like Paystack or Flutterwave directly, you are used to generating a single reference and passing it to the gateway. That reference identified the transaction everywhere: you used it to start the payment, verify it, and reconcile.

With Archefusion, that role is split:

* The reference you would have passed to the gateway becomes your `merchantOrderId`. You still generate it and still use it to reconcile on your side.
* To verify or check the status of a payment, you use `paymentId`.

The gateway's own transaction reference is generated and managed by Archefusion internally. You do not need to set it or track it for normal integration.
