Zoorya Pay Developers

Postman collection

Try the API in Postman.

The Postman collection has every Zoorya Pay request ready to send, in the order you would use them. It is the quickest way to try the API without writing code, and to see exactly what each request and response looks like.

Download the Postman collection

zoorya-pay-sandbox.postman_collection.json — one file for the sandbox. No environment to import: everything is inside the collection.

Set up#

  1. 1

    Import it

    In Postman, click Import and choose the file you downloaded.

  2. 2

    Fill in the variables

    Click the collection Zoorya Pay API — Sandbox, open the Variables tab, and fill in the values below. Save.

  3. 3

    Log in with your API key

    Open 1. Log in → Log in and paste your whole API key into the body, in place of {{apiKey}}:

    json
    { "apiKey": "zp-checkout-12345678:3f9c0e7a1b2d4c6e8f0a1b2c3d4e5f60" }

    Click Send. Postman splits the key into identity and password, which is what the API expects, and remembers it for every other request.

  4. 4

    Create a payment link

    Open 2. Checkout — payment link → Create one-time link and click Send. Open the completionUrl printed in the Postman Console and pay.

  5. 5

    Confirm the payment

    Run 5. After payment → Get a payment and check that status is SUCCESSFUL.

Variables#

VariableWhere it comes from
apiKeyMerchant portal → Developer → API keys. The whole key, zp-checkout-…:…. Paste it here, or straight into the Log in body
organisationIdMerchant portal → avatar menu → Profile → Company
walletIdMerchant portal → avatar menu → Profile → Company → Wallet ID
hmacKeyFor payment links. Create one, or use the one in the merchant portal → Payment links
callbackUrlWhere webhooks go, e.g. your ngrok address (optional)
mpesaPhone, phoneA phone you control, 9-digit form: 712345678, 912345678. Real prompts are sent to it
zemenAccount, zemenOtpA Zemen Bank account you control, and the SMS code you get in step 1
amountThe amount in ETB for every payment request. Defaults to 2

You don't fill in token, tenantId, paymentId, completionUrl or qrValue — the requests save them for you.

Folders#

The collection is split into folders that follow a real payment from start to finish:

FolderWhat it does
1. Log inPaste your API key into the body and send. Saves the token and tenantId; the token works for about 15 minutes, and later requests log in again by themselves
2. Checkout — payment linkCreate a one-time payment link. completionUrl is printed in the Console
3. C2B DirectC2B Direct: M-Pesa, Dashen Bank, Nib Bank, Telebirr, Zemen Bank (2 steps)
4. QR paymentsTelebirr QR (returns qrUrl) and EthSwitch QR (returns barcode)
5. After paymentGet a payment — confirm the status of the last payment

Every request has a description, a link to its docs page, and example responses (200, 400, 401) you can look at before you send anything.

For the QR payments, Postman shows only the QR value. To see it as a QR code you can scan, use Try it on Telebirr QR or EthSwitch QR.

The full walkthrough is in Test in sandbox.

Never put a production API key or HMACKey in a shared Postman workspace.

Note:

The Log in body in Postman has one field, apiKey, for convenience. The API itself takes { "identity": "<key id>", "password": "<secret>" } — use that in your own code. See Log in.