ahlan hamad

Sandbox & testing

You build and test against a sandbox company of your own that holds only generated data. You create it yourself with one button; nobody at Ahlan Hamad has to do anything.

Create a sandbox

  1. Sign in to Ahlan Hamad, or create a free account.
  2. Open Integrations → API keys and press Create sandbox company.
  3. Pick the country: Kuwait, Saudi Arabia, UAE, Qatar, Bahrain or Oman. Currency, timezone, weekend and social-insurance rules follow the country you pick.
  4. You become the sandbox's CEO by membership only — your current company does not change. Use Switch to sandbox when you want to work in it.
  5. In the sandbox, create an API key and choose its scopes. It starts with ah_test_ and is shown once — copy it straight away.
curl https://actions.ahlanhamad.com/v1/company \
  -H "Authorization: Bearer ah_test_…"

Each user can have one sandbox company. Resetting or deleting a sandbox is not available yet.

What the sandbox contains

Staff numberJob titleDepartmentNationalityemployment_type
SBX-001General ManagerManagementNational of the sandbox countryfull_time
SBX-002Finance ManagerFinanceNational of the sandbox countryfull_time
SBX-003HR OfficerHuman ResourcesNational of the sandbox countryfull_time
SBX-004Store ManagerRetailIndianfull_time
SBX-005CashierRetailFilipinofull_time
SBX-006CashierRetailEgyptianfull_time
SBX-007CashierRetailIndianpart_time
SBX-008Stock AssociateRetailFilipinofull_time
SBX-009DriverOperationsPakistanifull_time
SBX-010AccountantFinanceJordaniancontract

How test keys behave

What you can call today

Generated from openapi.yaml: the operations that are live now, and the ones published in the contract that have not shipped yet.

OperationReleaseStatus
GET /v1/companyv1.0Live
GET /v1/employeesv1.0Not yet live
GET /v1/employees/{employee_id}v1.0Not yet live
GET /v1/payroll-runsv1.0Not yet live
GET /v1/payroll-runs/{payroll_run_id}v1.0Not yet live
POST /v1/attendance/eventsv1.1Not yet live
GET /v1/attendancev1.1Not yet live
GET /v1/webhooksv1.2Not yet live
POST /v1/webhooksv1.2Not yet live
GET /v1/webhooks/{webhook_id}v1.2Not yet live
PATCH /v1/webhooks/{webhook_id}v1.2Not yet live
DELETE /v1/webhooks/{webhook_id}v1.2Not yet live
POST /v1/webhooks/{webhook_id}/testv1.2Not yet live
GET /v1/webhooks/{webhook_id}/deliveriesv1.2Not yet live
POST /v1/webhooks/{webhook_id}/deliveries/{delivery_id}/redeliverv1.2Not yet live

Follow the changelog for what ships next. To try every endpoint quickly, import the Postman collection and set its apiKey variable to your ah_test_ key.