Skip to main content
Kulmi Pay supports card and digital wallet payments through the POST /api/v1/collect/ endpoint. You can accept Visa and Mastercard credit and debit cards, as well as Apple Pay and Google Pay. Card payments process through a PCI-compliant gateway — Kulmi Pay handles the sensitive card data so your servers never need to.

Supported methods

Method valueDescription
CARD-PAYMENTVisa and Mastercard credit and debit cards.
APPLE-PAYApple Pay on supported Safari browsers and iOS devices.
GOOGLE-PAYGoogle Pay on supported Chrome browsers and Android devices.

Collect a card payment

curl -X POST https://app.kulmipay.com/api/v1/collect/ \
  -H "Content-Type: application/json" \
  -d '{
    "method": "CARD-PAYMENT",
    "currency": "USD",
    "amount": 50.00,
    "api_ref": "ORDER-002",
    "email": "customer@example.com",
    "first_name": "Jane",
    "last_name": "Doe",
    "card_number": "4111111111111111",
    "expiry": "12/26",
    "cvc": "123",
    "country": "KE",
    "city": "Nairobi",
    "state": "Nairobi",
    "address": "123 Main Street",
    "card_tarrif": "BUSINESS-PAYS",
    "public_key": "<your_public_key>"
  }'

Request fields

Core fields

FieldTypeRequiredDescription
methodstringYesCARD-PAYMENT, APPLE-PAY, or GOOGLE-PAY.
currencystringYesCurrency code: KES, USD, EUR, or GBP.
amountnumberYesAmount to charge, in the specified currency.
api_refstringNoYour internal reference for this transaction.
public_keystringYes*Your publishable API key. Required unless you are using a checkout signature.
card_tarrifstringNoBUSINESS-PAYS (default) or CUSTOMER-PAYS.

Card fields (CARD-PAYMENT only)

FieldTypeRequiredDescription
card_numberstringYes16-digit card number, no spaces or dashes.
expirystringYesExpiry date in MM/YY format, e.g. 12/26.
cvcstringYes3 or 4 digit card security code.

Billing fields

FieldTypeRequiredDescription
emailstringYesCustomer’s email address.
first_namestringYesCustomer’s first name.
last_namestringYesCustomer’s last name.
countrystringYesTwo-letter ISO country code, e.g. KE.
citystringNoCustomer’s city.
statestringNoCustomer’s state or county.
addressstringNoStreet address.
zipcodestringConditionalRequired when country is US, CA, or GB.
Card payments require your account to have card collection enabled. If you receive a “Card, Apple and Google payment is not allowed for this account” error, contact support@kulmipay.com to enable card payments on your account.
Kulmi Pay is PCI DSS compliant. Card data is encrypted before it leaves the client and is never stored in plain text. If you are building a custom checkout UI, contact Kulmi Pay to learn about the hosted fields integration that keeps raw card data off your servers entirely.