Payment gateways
eSewa, Khalti, Stripe, PayPal and bank gateways, including callbacks, verification and refund handling.
API integration — Nepal
Soft Himalaya connects payment gateways, CRMs, ERPs, couriers and custom APIs from Kathmandu for businesses in Nepal, the UK, Australia, the USA and Canada.

Engineering for real systems
Field ownership, credentials, retries and alerts are designed before data moves between systems.
What we integrate
Most integration work is not exotic. It is making two systems agree on what a customer, an order or an invoice is, and handling the cases where one of them is unavailable.
eSewa, Khalti, Stripe, PayPal and bank gateways, including callbacks, verification and refund handling.
Contacts, deals and activity synced between your website, forms and the CRM your team works in.
Invoices, inventory and ledger records exchanged with the accounting or ERP system of record.
Courier booking, label generation, rate lookups and tracking status pulled back into your own interface.
Transactional messaging through providers, with delivery status and retry behaviour handled explicitly.
Catalogue, stock and order synchronisation between your platform and the marketplaces you sell on.
APIs built for your own products or partners, with versioning, authentication and documentation.
Inbound events received, verified, queued and processed so a burst of traffic does not drop records.
Older systems exposed through a defined interface instead of allowing direct access to their database.
Why it matters
Connecting two systems on a good day is straightforward. The work worth paying for is what happens when a provider times out, changes a field, rate-limits you or sends the same event twice.
Staff copying orders between systems is slow and produces mismatches that surface weeks later during reconciliation.
Providers have outages and maintenance windows. Queues, retries and clear fallback behaviour keep your side working while theirs recovers.
A timeout does not mean the call failed. Without idempotency keys and reconciliation, a retry becomes a second charge or a second shipment.
Fields get deprecated and versions retire. Integrations need monitoring and an owner, not a one-time build and a hope.
How we work
Timelines depend on the provider's documentation quality, sandbox availability and how quickly credentials and approvals come through — often the slowest part of the work.
We read the provider's API docs, confirm what your plan actually allows, and identify rate limits, sandboxes and approval steps.
Fields are mapped between systems, the source of truth for each record is decided, and the interface is documented before implementation.
The integration is built against the provider's test environment with credentials kept out of the codebase from the start.
Timeouts, partial failures, duplicate events and rate limits are handled deliberately, with idempotency where records are created.
We test the unhappy cases as well as the happy one: provider down, malformed response, replayed webhook, expired credential.
The integration goes live with logging, alerting and a documented runbook so a failure is noticed by you before it is noticed by a customer.
Integration planning
Rather than showing invented dashboards of requests we have processed, these are the decisions that determine whether an integration is reliable or a recurring support ticket.
API keys, OAuth or signed requests — plus how credentials are rotated and who holds them.
Which system owns each field, how records are matched, and what happens when both sides change the same record.
Retry policy, backoff, dead-letter handling and what the user sees while a provider is unavailable.
What is logged, what triggers an alert, and who is expected to act when an integration stops.
Credentials and provider accounts are registered in your business's name, so access does not depend on us.
Tools
Stack choices follow the systems being connected and what your team can maintain afterwards.
Integration services, webhooks and API layers
Integrations inside existing PHP applications
Data-heavy syncs and scheduled jobs
Interface design, versioning and documentation
Retries, backoff and burst handling
Record storage, idempotency keys and caching
Security and reliability
No integration is unbreakable, and any agency claiming a security guarantee is overselling. What we can commit to is a set of practices applied consistently, and a clear account of what an integration does with your data.
Keys live in environment variables or a secret store, never in the repository, and are scoped to the minimum the integration needs.
Calls run over TLS, and inbound webhooks are rejected unless their signature verifies against the provider's secret.
Requests respect the provider's published limits, with exponential backoff and queueing rather than hammering a failing endpoint.
Personal and payment data is logged only where necessary, redacted where it is not, and retained according to what you agree.
Project estimates
Cost depends on the provider's API quality, how many systems are involved, whether a sandbox exists and how much reconciliation logic is required. We review the documentation before quoting.
One provider connected to one system — a payment gateway, a courier or a messaging service.
Two or more systems kept in agreement, with ownership rules and reconciliation between them.
An API you expose to partners or your own applications, with versioning and documentation.
Questions
Common questions about providers, timelines, failure handling and how integration work is quoted.
It is connecting two systems so they exchange data without anyone re-keying it — a website to a CRM, a store to a courier, an application to a payment gateway. Most of the work is deciding which system owns each record and what happens when one of them is unavailable.
Working together
We do not publish anonymous client quotes, uptime percentages or request-volume graphs that cannot be verified. These are the standards we hold ourselves to instead.
The fields, endpoints, error codes and retry behaviour are written down and handed over, not held in one developer's head.
Provider accounts are opened in your business's name, with our access scoped and removable.
We show what happens when a provider is down or returns an error, not only that the happy path works.
Source code, environment configuration and a runbook for common failures go to whoever supports the system next.
Start a project
Send the systems involved, links to the provider's API documentation if you have them, and what currently happens manually. We will reply with questions, a suggested scope and an estimate.