Introduction

Teyra Pay is one API for accepting KNET, mada, cards, Apple Pay and other Gulf payment methods through a hosted checkout.

Teyra Pay lets your business accept online payments across the GCC with one integration. You create a payment from your server, send the customer to a secure Teyra Pay checkout page, and receive a signed webhook when the payment settles. You never handle card data.

What you can build

  • Online checkout for your website or app, using hosted checkout.
  • Payment links you share by WhatsApp, SMS or email, with no code at all. See Payment links.
  • Store plugins for Shopify and WooCommerce.
  • Refunds, full or partial, from the API or the dashboard. See Refunds.

Payment methods

Methodpayment_method valueTypical markets
KNETknetKuwait
madamadaSaudi Arabia
Visa, Mastercard, American ExpresscardAll markets
Apple Payapple_payAll markets
Google Paygoogle_payAll markets
BenefitbenefitBahrain
STC Paystc_paySaudi Arabia

Which methods the customer sees depends on the currency, the customer's device and your account: cards, Apple Pay and Google Pay are available on every account, while KNET, mada, Benefit and STC Pay are available on accounts that support them. See Payment methods and your account.

How it works

Create a payment

Your server calls POST /v1/payments with the amount in minor units, the currency and a return_url. Teyra Pay returns a Payment with a checkout_url.

Redirect the customer

Send the customer's browser to checkout_url. They choose a method and pay on a page hosted by Teyra Pay, in Arabic or English.

Customer returns

The customer comes back to your return_url with payment_id and status in the query string.

Confirm and fulfil

Confirm the result with GET /v1/payments/:id or a verified payment.succeeded webhook, then fulfil the order.

The API at a glance

TopicDetails
Base URLhttps://api.teyra.co
Version/v1 in every path
AuthenticationAuthorization: Bearer sk_test_… or sk_live_…. See Authentication
FormatJSON in and out, snake_case field names
MoneyIntegers in minor units plus an ISO currency code
IDsPrefixed strings: pay_, re_, plink_, evt_, we_, dep_
TimestampsISO 8601 in UTC, for example 2026-10-28T14:07:00.000Z
Safe retriesIdempotency-Key header on every POST. See Idempotency
ListsCursor pagination. See Pagination

Next steps