Pay-In API overview
The Cashela Pay-In API lets you collect money from your customers with the payment methods they use every day: bank transfers, cash vouchers, mobile money and cards. You create a deposit, your customer pays it, and Cashela sends you a signed notification with the outcome and credits the net amount to your Cashela account.
How it works
- List countries to see where you can collect and with which payment types.
- List payment methods for a country and an amount. Each method comes with its fees, the total your customer pays, the amount credited to you, and the customer fields you must send.
- Create a deposit with the chosen
payment_methodand the customer’s data. The response tells you how your customer pays: usually a link to a Cashela-hosted payment page, or payment instructions. - Receive the notification on your
notification_urlwhen the deposit reaches a final status, and read the deposit at any time with Get a deposit.
See Integration flow for the full sequence.
Environments
Every integration starts in sandbox and moves to production once Cashela approves your go-live request. Each environment has its own credentials: sandbox credentials never work in production, and production credentials never work in sandbox.
| Environment | Base URL | Real money |
|---|---|---|
| Sandbox | https://sandbox-api.cashela.com | No |
| Production | https://production-api.cashela.com | Yes |
All requests and responses are JSON over HTTPS. All endpoints live under /api/v1/pay-in/.
Endpoints
| Method | Path | What it does |
|---|---|---|
GET | /api/v1/pay-in/deposit-creation/countries | Countries and payment types available to your account |
POST | /api/v1/pay-in/deposit-creation/available-payment-methods | Payment methods for a country and amount, with fees and required customer fields |
POST | /api/v1/pay-in/deposit-creation/exchange-rates | Indicative exchange rate for a country and payment type |
POST | /api/v1/pay-in/deposit-creation | Creates a deposit. Moves money. |
GET | /api/v1/pay-in/transactions/{reference} | Reads a deposit and its status |
POST | /api/v1/pay-in/transactions/{reference}/callback | Re-sends the notification of a final deposit |
POST | /api/v1/pay-in/transactions/{reference}/void | Voids a card deposit before it settles. Moves money. |
POST | /api/v1/pay-in/transactions/{reference}/refund | Refunds a card deposit, in full or in part. Moves money. |
POST | /api/v1/pay-in/sandbox/transactions/{reference}/simulate | Sandbox only. Drives a deposit to a final status |
Before you start
You need:
- A verified Cashela Business account. Sign up at cashela.com/business-home.
- A server with HTTPS that can keep a secret and receive notifications (webhooks).
Then follow Get started to open the Developer Portal and create your sandbox API key.
Key ideas
- The catalog decides. The countries, payment methods, fees and required customer fields depend on the country, the amount, your account and the environment. Never hard-code payment method codes: ask Get payment methods before each deposit.
- Your server only. Your
api_secretauthenticates your requests and also signs the notifications Cashela sends you. Never put it in a browser or a mobile app. - Safe retries. Every deposit carries your own unique
external_identifier. Repeating a request never creates a second deposit. See Idempotency. - Verify every notification. Check the
X-Cashela-Signatureheader before trusting a notification. See Webhooks. - Production is stricter than sandbox. Production validates phone numbers, documents and emails more strictly. Test with realistic data for the deposit’s country. See Payer data & documents.
Support
When you contact Cashela support about a request, include the X-Trace-Id header you sent with it and the deposit reference. See Authentication.