FAQ
The questions support hears most, with the answer and where to look.
Getting started
Do I need approval to start integrating?
No. Sign up, create a cash desk, and everything works against the sandbox provider: real keys, real signatures, real callbacks, no money. Approval switches the same keys to live providers. See Sandbox and approval.
Where is my secret? I closed the page.
Nowhere: it is stored encrypted and cannot be shown again. Open the cash desk card and issue a new one. The old one stops working the moment the new one is issued, so update your configuration right away.
Can I use one cash desk for everything?
You can, if everything uses one payment method. A cash desk is bound to one method for life, so a second method means a second cash desk. Separate cash desks also keep traffic, limits and reporting apart per product or country.
Which currencies can I charge in?
GET /gw/v1/rates lists the currencies your cash desk allows with a current rate; those with
priceable: true can be used right now. The cash desk's own currency list is set in the
cabinet. Settlement is always USD.
Signing
I get AUTH_FAILED and I am sure the key is right.
Then the signature is off. Hash the body exactly as sent, use the upper-case method, the path
without host and query, and lower-case hex. The debugging list
covers the usual culprits. Test on GET /gw/v1/methods, which needs no body.
Why AUTH_TIMESTAMP_SKEW when my request is fresh?
Your server clock differs from ours by more than 300 seconds, or you sent milliseconds instead
of seconds. Use NTP and time() in seconds.
Can I reuse a nonce across cash desks?
Yes: the replay window is per cash desk key. But a fresh random nonce per request is simpler and never wrong.
Orders
The customer paid but the order is still Created.
The provider has not confirmed yet. Most confirmations arrive within a minute; some rails take longer. If the order expires before the confirmation, the money is not lost: the confirmation still reaches us and the order completes on reconciliation, or you open an appeal with the receipt. Do not create a second order for the same purchase.
What does Payed mean, and why is there no callback yet?
The provider reported the payment; the platform is confirming that the funds actually landed
on its side before crediting you. The callback comes with Completed. Sandbox orders skip this
step. See Statuses.
My retry created a second order.
The idempotency window for orderRef is one hour per cash desk. A retry inside the hour
returns the same order; outside it creates a new one. If you must retry later, fetch the order
by orderRef first: GET /gw/v1/orders/{orderRef} returns the newest order with that
reference.
How long can an order live?
lifetimeMinutes from 1 to 1440; the default is 15. Expired orders are cancelled within
a second by a worker and answer subStatus: "Expired", cancelReason: "expired".
Can I change the amount of an order?
No. Cancel it and create a new one. A cancelled order cannot be reopened by you; only an accepted appeal or the platform's reconciliation reopens it.
What is direction: "Out"?
Pay-outs. The gateway accepts the field for compatibility, but pay-outs are not offered on
this platform today; every order you create is In.
Why does the create response say orderRef: null?
The create response does not echo your reference; GET and the callback do. This is a known
quirk of the create presenter.
Callbacks
The callback never arrived.
Open the order page in the cabinet and read What we sent you. It lists every attempt with the HTTP code and your server's response. The usual findings, in order of frequency:
- no attempts at all: the order has no callback URL, because neither the cash desk nor the request had one at creation;
no response: a timeout after 15 seconds or a connection error; check that the host is reachable from the internet and answers within 15 seconds;403from a bot filter: allow the User-AgentOneRamp/1.0 PesoCallback;301or302: we do not follow redirects; use the final URL;401or403from your own handler: the signature check failed, most often because the body was parsed and re-serialised before verifying.
I fixed my handler. Can I get the callback again?
Yes: Resend callback on the order page sends the current state as a new attempt, with a new event id. Available for closed orders.
I received the same callback twice.
Delivery repeats when your server did not answer 200 in time, or answered with 5xx. Both
deliveries carry the same X-Gate-Event-Id; process the first, answer 200 to the second
without doing anything.
Do you follow redirects or accept 204?
No and no. Exactly 200 counts as delivered; anything else is a rejection or a retry, as
described in Callbacks.
Can I whitelist your IP addresses?
Callbacks come from the platform's outbound addresses, which depend on the deployment; ask support for the current list. Do not rely on the list alone: verify the signature.
Is there a callback when an appeal is opened or resolved?
Opening sends order.appealed. Accepting sends order.completed once the order is credited;
rejecting sends order.cancelled with cancelReason: "appeal rejected".
Money
What rate is used?
The rate at the moment the order is created, spread included, exactly the value
GET /gw/v1/rates returned a moment before. It is written on the order as settled.rate and
never recalculated.
How is the fee calculated?
A percentage of the USD amount from the tariff attached to the cash desk, typically in bands
by amount. The fee and the credited amount are on the order after completion, in
GET /gw/v1/orders/{id} and on the order page. Rates are agreed with the platform.
When is my balance credited?
When the order becomes Completed: for live orders, after the platform confirms the funds
arrived; for sandbox orders, immediately on simulation. The Balance page lists every credit
with a link to the order.
How do I withdraw?
Withdrawals are arranged with support; the cabinet does not have a withdrawal form today. The balance is in USD.
Can a credit be reversed?
Only by the platform, on reconciliation, when a provider revokes a confirmation. It appears on the Balance page as a reversal linked to the order. This is rare and comes with an explanation from support.
Limits and errors
NO_AVAILABLE_METHOD: what now?
No provider currently accepts this rail and currency: every one of them is paused, failing or
out of capacity. Retry with a back-off; if it persists for more than a few minutes, check
GET /gw/v1/methods and contact support with the traceId.
TRAFFIC_LIMIT_REACHED: which limit?
fault.detail names the scope (cash desk, merchant, provider, platform) and the window (hour,
day, month). Windows are calendar-aligned. To raise a limit, contact support.
429 on order creation.
Thirty orders per ten seconds per cash desk. Spread the load or use several cash desks; if you need more, contact support.
What is traceId for?
It is the identifier of your exact request in our logs. Send it to support instead of the time and the amount.
Cabinet
I cannot see the "Team" tab.
You are signed in with a support account. Only the main account manages access.
How do I test my integration without customers?
Create a sandbox order and press Simulate payment on the order page. See Sandbox.
The CSV has only 200 rows.
The export takes what the current filters select, up to 200 rows. Narrow the period to export
in chunks, or use GET /gw/v1/orders/{id} for reconciliation per order.
I changed the callback URL on the cash desk, but old orders still call the old one.
The URL is captured on the order at creation. New orders use the new address; orders created before keep theirs.