API endpoint that returns "order amount" and "actually paid" in addition to "paid with" amount details

Hi,

I am adding crypto payments to my app, and I really like how easy it was to get going with Atlos, for example just logging in with a wallet.
I also love all the payment options I can give to my users, especially Monero.

As part of my payment flow I want to verify that the user paid the same amount as what the order specified before treating it as a successful payment in my app.

My first hurdle is that Payment/Get returns a 400 even though the PaymentId is valid:

{
	"ErrorCode": 1003,
	"ErrorMessage": "Pending payment id 'my-payment-id' doesn't exist."
}

The message mentions a pending state, and the id I’m using is completed not pending, but there is nothing in the documentation saying that this should only be used for pending payments, and it wouldn’t make much sense if so, there is even a status field in the response with a list of valid statuses.

Ok, so now I’m trying Transaction/List - this returns the payment along with other payments. I can work with that.
But not all the fields are returned that are visible in the Merchant Panel.

Fields returned for one transaction:

{
    "Id": "my-payment-id",
    "SubscriptionId": null,
    "MerchantId": "my-merchant-id",
    "UserWallet": null,
    "SenderAddress": null,
    "RecipientAddress": "an-address",
    "AssetCode": "XMR",
    "BlockchainCode": "XMR",
    "OrderId": "my-order-id",
    "Amount": 0.12345678,
    "Fee": 0.00000000,
    "BlockchainHash": "some-hash",
    "BlockNumber": 1234567,
    "TimeSent": "2026-04-22T00:00:00Z",
    "Status": 100
}

In the Merchant Panel at Merchant Login | ATLOS Payments there are more fields listed - I’m specifically interested in having:

  • Actually paid (in the order currency)

And optionally:

  • Order currency
  • Order amount

In addition to amounts in the user’s chosen currency.
This will allow me to know that the user actually paid 10 USD using XMR (for example), and I can treat it as successful if the order I created was also 10 USD, and unsuccessful if I created a 20 USD order.

Is there another way to get this information using your API?

Would it be possible to add these fields to Payment/Get, Transaction/List and Transaction/FindByHash?

Thanks in advance!

For the first error - Pending payment id 'my-payment-id' doesn't exist., you are likely passing a transaction id instead of a payment id. On your merchant dashboard, in the “payments” section, it shows a list of what our system considers transactions. These are not payments. The real payment id is returned when you call the Payment/Create endpoint.

We will add Actually paid, Order currency, and Order amount fields to Transaction/List and Transaction/FindByHash within a couple of days. For now, you can use our postback feature which sends you a postback (a.k.a. a webhook) notification each time a payment is successfully completed by the user and confirmed on the blockchain. Postbacks send “OrderCurrency”, “PaidAmount”, and “OrderAmount”.

We have now added these fields. Its not in the documentation yet, but calling Transaction/List or Transaction/FindByHash should output “OrderCurrency”, “OrderAmount”, and “PaidAmount”.

Thanks, I see the new fields, I’ll update my app to use them.

I was just about to ask how I can check if the hosted invoice has been underpaid, as I don’t know which currency has been selected. Should I use the new fields for this?

Yes. “OrderCurrency” specifies the currency, “OrderAmount” specifies the amount in order currency your user was supposed to pay and “PaidAmount” is the amount in order currency your user actually paid. These fields are returned by Transaction/List and Transaction/FindByHash. They are also available with out postback feature (webhooks).

Oh, so these amounts are in fiat? It’s a bit counterintuitive to get them via the “transactions list” route. Why not Invoice/Get for this purpose?

Yes, they are in fiat. We modeled this structure after our postback fields which are similar to transaction fields.