Zoorya Pay Developers

EthSwitch QR

POSThttps://sandbox.eclipse.et/eclipse-conductor/rest/v1/tenants/{tenantId}/organisations/{organisationId}/payments

Recent Requests

TimeStatusUser agent

Make a request to see history.

Creates an EthSwitch QR payment that works with many Ethiopian banks. The response has a QR code value: show it as a QR code, and the customer scans it with their own bank app and approves. The result arrives on your callbackUrl.

  1. 1

    Log in first

    Call Log in with your API key: copy it in the merchant portal (Developer → API keys) and paste it. Keep headerValue and tenantId from the response.

  2. 2

    Then call this endpoint with the token

    Copy headerValue from the Log in response and paste it as the Authorization header of this call — it already starts with Bearer . Put tenantId in the URL, with your organisationId and destinationWalletId from the merchant portal.

Note:

The token works for about 15 minutes (expires in the login response). Reuse it for every payment until then; after that this call returns 401 — log in again.

In Try it: first run Log in with your API key. The token and tenantId are then filled in here for you. Fill in your other IDs and click Try It!. The QR code from barcode is drawn under the response — scan it with your bank app and approve to test the payment.

Headers#

Authorizationstringrequired
Set in Credentials →

Paste headerValue from Log in — the whole value, including Bearer .

Path#

tenantIdintegerrequired

Your tenant ID — returned as tenantId by Log in.

organisationIdintegerrequired

Your organisation ID — merchant portal → Profile → Company.

Body#

New externalUniqueId
…

Paste it into externalUniqueId in Try it. Click New ID before every new payment.

amountnumberrequiredDefaults to 2

Amount in ETB, at most 2 decimals.

currencystringrequiredDefaults to ETB

Always ETB.

typestringrequiredDefaults to ETTA_ETH_SWITCH_TOP_UP

Must be ETTA_ETH_SWITCH_TOP_UP for EthSwitch QR.

externalUniqueIdstringrequired

Your own unique ID for this payment. Use a new one every time — letters and digits only, at least 6 characters. Get one from the New ID box above.

destinationWalletIdintegerrequired

The wallet that receives the money — merchant portal → avatar menu → Profile → Company → Wallet ID.

callbackUrlstring

Where the final result is POSTed — the same object as the response, with a final status.

descriptionstringDefaults to Order 1005

Up to 200 characters.

Response#

paymentIdinteger

Use it with Get a payment.

statusstring

PENDING until the customer approves.

additionalFieldsobject[]

Contains barcode — turn its value into a QR code and show it to the customer.

Then wait for your callback and confirm with Get a payment. Deliver only when status is SUCCESSFUL.