Salami Gateway

API Documentation
Back to Dashboard

Payment Apps

Payment Apps are the core configuration entities in the Salami Payments module. Each app binds a payment provider driver to a set of credentials and settings.

List Payment Apps

Retrieve all payment apps belonging to the authenticated user.

GET /api/pay/apps

Authentication

Requires Bearer token.

Response

{
  "data": {
    "current_page": 1,
    "data": [
      {
        "id": 1,
        "name": "My M-Pesa STK",
        "type": "MpesaKeExpress",
        "is_live": false,
        "dedicated": true,
        "parent_app_id": null,
        "created_by": 1,
        "updated_by": 1,
        "created_at": "2026-01-15T10:30:00.000000Z",
        "updated_at": "2026-01-15T10:30:00.000000Z"
      },
      {
        "id": 2,
        "name": "B2C Disbursements",
        "type": "MpesaKeB2C",
        "is_live": true,
        "dedicated": true,
        "parent_app_id": null,
        "created_by": 1,
        "updated_by": 1,
        "created_at": "2026-02-01T08:00:00.000000Z",
        "updated_at": "2026-02-01T08:00:00.000000Z"
      }
    ],
    "per_page": 15,
    "total": 2
  }
}

Response Fields

Field Type Description
id integer Unique app identifier
name string Display name
type string Driver type identifier
is_live boolean Whether the app uses production credentials
dedicated boolean Whether this is a dedicated (not shared) app
parent_app_id integer/null Parent app for shared configurations
created_by integer User ID of the creator
created_at datetime Creation timestamp

Status Codes

Code Description
200 Success
401 Unauthenticated

Creating Payment Apps

Payment Apps are created through the Salami web dashboard. Navigate to Payments > Apps > Create New App.

Required Fields (All Providers)

Field Type Required Description
name string Yes Unique name for the app
settings string Yes Driver type (e.g., MpesaKeExpress)
is_live boolean Yes Sandbox (false) or Production (true)

Driver Types and Configuration Fields

M-Pesa Express (STK Push) -- MpesaKeExpress

Field Type Required Description
consumer_key string Yes Safaricom API consumer key
consumer_secret string Yes Safaricom API consumer secret
short_code string Yes M-Pesa business short code or paybill number
passkey string Yes Lipa Na M-Pesa Online passkey
initiator_name string Yes API initiator username
security_credential string Yes Encrypted initiator password

M-Pesa C2B -- MpesaKeC2B

Field Type Required Description
consumer_key string Yes Safaricom API consumer key
consumer_secret string Yes Safaricom API consumer secret
short_code string Yes Business short code or paybill
initiator_name string Yes API initiator username
security_credential string Yes Encrypted initiator password

M-Pesa B2C -- MpesaKeB2C

Field Type Required Description
consumer_key string Yes Safaricom API consumer key
consumer_secret string Yes Safaricom API consumer secret
short_code string Yes Business short code
initiator_name string Yes API initiator username
security_credential string Yes Encrypted initiator password
test_phone_number string Yes Phone number for sandbox testing

M-Pesa B2B -- MpesaKeB2B

Field Type Required Description
consumer_key string Yes Safaricom API consumer key
consumer_secret string Yes Safaricom API consumer secret
short_code string Yes Business short code
initiator_name string Yes API initiator username
security_credential string Yes Encrypted initiator password
test_phone_number string Yes Short code for sandbox testing

Airtel Kenya -- AirtelKe

Field Type Required Description
business_name string Yes Airtel business/merchant name
username string Yes Airtel API username
password string Yes Airtel API password

Equity Bank Kenya -- EquityBankKe

Field Type Required Description
host string Yes Equity API host URL
consumer_key string Yes API consumer key
consumer_secret string Yes API consumer secret
merchant string Yes Merchant identifier
username string Yes API username
password string Yes API password

PayPal IPN -- PaypalIPN

Field Type Required Description
email string Yes PayPal account email address

Pesalink Kenya -- PesalinkKe

Field Type Required Description
bankName string Yes Bank name
acNo string Yes Account number
acName string Yes Account name

Kopokopo -- Kopokopo

Field Type Required Description
secret string Yes Kopokopo webhook secret

Shared vs Dedicated Apps

Payment Apps can be either dedicated or shared:

Checking App Type

dedicated = true  --> Dedicated app (standalone)
dedicated = false AND parent_app_id != null --> Shared app (inherits from parent)

Related Documentation


Need help? Contact us at support@dgl.co.ke
© 2026 Deadan Group Limited. All rights reserved.
⚡ API Explorer
LIVE
// Response will appear here...