Zoorya Pay Developers

Pay with SMS code

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

Recent Requests

TimeStatusUser agent

Make a request to see history.

Step 2 of a Zemen Bank payment. First call Zemen Bank — Verify account so the customer gets an SMS code.

  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.

A wrong code is rejected with 400. Ask the customer again and send a new externalUniqueId.

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 use a phone or account you control — the prompt or SMS is real.

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 ZEMEN_TOP_UP

Must be ZEMEN_TOP_UP for Zemen Bank — Pay with SMS code.

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 1006

Up to 200 characters.

additionalFieldsobject[]required

The Zemen Bank payment fields. Each item is { "id": "…", "value": "…" }: one for accountNumber, one for otp.

Response#

paymentIdinteger

Use it with Get a payment.

statusstring

PENDING until the customer approves.

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