Connect any app
One connection to PAYWAYS → charge through any provider, in Israel and worldwide. SDK · REST · MCP.
🛡️
PCI-DSS · SAQ-A
Card data never touches your server or the PAYWAYS server. The shopper enters their card only on the gateway-hosted page; we store tokens only, never card numbers. That keeps you in the lowest PCI scope (SAQ-A) — no heavy compliance.
268
payment providers
🇮🇱 + 🌍
Israel + 17 regions
hosted
hosted payment pages
tokens
token-based recurring
Get a key and connect
Create an organization and get an x-pay-key (shown once). Your server uses it — never the browser.
SDK · @payways/sdkFor Node/Next apps
import { PayWays } from '@payways/sdk';
const pw = new PayWays({ apiBase: process.env.PAYWAYS_API, payKey: process.env.PAYWAYS_KEY });
// create a charge → redirect the shopper to the gateway-hosted page
const charge = await pw.charges.create({
amount: 295.0, description: 'Order #1042',
customer: { fullName: 'ישראל ישראלי', email },
successUrl: 'https://store.com/thanks',
});
res.redirect(charge.checkoutUrl);
// confirm (never trust the redirect alone)
const status = await pw.charges.waitForPayment(charge.id); // PAID | FAILEDREST · pay-api/v1Any language
curl -X POST $PAYWAYS_API/pay-api/v1/charges \
-H "x-pay-key: ddcpay_..." -H "Content-Type: application/json" \
-d '{"amount":295,"description":"Order #1042",
"customer":{"fullName":"ישראל ישראלי"},
"successUrl":"https://store.com/thanks"}'
# → { checkoutUrl, statusUrl, id }MCPFor AI agents
{
"mcpServers": {
"payways": {
"command": "node",
"args": ["packages/mcp/dist/index.js"],
"env": { "PAYWAYS_API_URL": "https://api.payways..." }
}
}
}The money flows through the business's own gateway — PAYWAYS only orchestrates. Never trust the redirect alone; verify with charges.get / waitForPayment. Or run the PAYWAYS_CONNECT_IDAN skill in any project and it connects automatically.