Payment Methods

Retrieve available payment methods for your integration

List Available Payment Methods#

Returns the payment methods available for your service in a given country. Use this endpoint to check which payment methods your service supports before displaying options to users.

This endpoint requires Bearer authentication using your Client ID and Client Secret encoded in Base64.

GET/api/v1/payment-methods/available
Bearer Token
List payment methods available for the authenticated service.

Query Parameters#

countryCodestringrequired
ISO 3166-1 alpha-2 country code. Example: DZ, MA, TN

Required Headers#

Authorizationstringrequired
Bearer authentication. Format: Bearer base64(client_id:client_secret)

Response Fields#

data[].idstringrequired
Unique identifier for the payment method.
data[].namestringrequired
Internal name of the payment method.
data[].codestringrequired
Payment method code used in subsequent API calls. Use this value as paymentMethodCode when creating a payment intent.
data[].displayNamestringrequired
Localized display name for the payment method.
data[].imagestringrequired
URL of the payment method logo/icon.

Filtering by Country

Payment methods vary by country. Always pass the correct countryCode to get the relevant options for your user.
List Available Payment Methods
curl "https://api.payment.yassir.io/api/v1/payment-methods/available?countryCode=DZ" \
  -H "Authorization: Bearer $(echo -n 'your_client_id:your_client_secret' | base64)" \
  -H "x-platform: API"
200 OK
{
  "code": 200,
  "status": "success",
  "message": "payment methods listed successfully",
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Yassir Cash",
      "code": "WALLET_V2",
      "displayName": "Yassir Cash",
      "image": "https://assets.yassir.com/wallet-logo.png"
    }
  ]
}

List Payment Methods (with User Context)#

Returns payment methods with user-specific information such as wallet balance. Use this endpoint when you have a payment intent and want to show personalized payment options to the user.

This endpoint uses the x-client-secret header for authentication. The client secret is obtained when you create a payment intent.

GET/api/v1/payment-methods
Bearer Token
List payment methods with user-specific details (e.g. wallet balance).

Query Parameters#

amountnumberrequired
Payment amount. Must be greater than 0.
actionCurrencyCodestringoptional
Currency code for the payment. Example: DZD, MAD
actionCountryCodestringoptional
Country code where the action takes place.

Required Headers#

x-client-secretstringrequired
The client secret returned when creating a payment intent. This authenticates the request and links it to the user who owns the payment intent.
x-servicestringrequired
Your service code provided during onboarding.
x-country-codestringrequired
ISO 3166-1 alpha-3 country code. Example: DZA
x-platformstringrequired
The platform making the request.
Allowed values:
APIWEBANDROIDIOS
x-localestringoptional
User locale for localized payment method names. Example: en_US, fr_FR, ar_DZ

Getting the Client Secret#

The x-client-secret is returned in the response when you create a payment intent:

How to get client secret
// Create a payment intent first
const intent = await fetch("/api/v1/payments/intents?countryCode=DZA", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_ACCESS_TOKEN",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    actionId: "unique-order-id",
    amount: 2500,
    actionCurrencyCode: "DZD",
    actionCountryCode: "DZA",
    userId: "+213555123456",
  }),
});

const { data } = await intent.json();
// data.clientSecret => "pa_xxxxxxxx_secret_xxxxxxxx"
// Use this as the x-client-secret header

Response Fields#

data[].idstringrequired
Unique identifier for the payment method.
data[].namestringrequired
Internal name of the payment method.
data[].codestringrequired
Payment method code. Use this as paymentMethodCode when proceeding with payment.
data[].displayNamestringrequired
Localized display name for the payment method. Changes based on x-locale header.
data[].imagestringrequired
URL of the payment method logo/icon.
data[].balancenumberoptional
User's wallet balance (only present for wallet-type payment methods like WALLET_V2).
data[].currencystringoptional
Currency of the wallet balance.
List Payment Methods (with User Context)
curl "https://api.payment.yassir.io/api/v1/payment-methods?amount=2500" \
  -H "x-client-secret: pa_xxxxxxxx_secret_xxxxxxxx" \
  -H "x-service: your-service-code" \
  -H "x-country-code: DZA" \
  -H "x-platform: API" \
  -H "x-locale: en_US"
200 OK
{
  "code": 200,
  "status": "success",
  "message": "payment methods listed successfully",
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Yassir Cash",
      "code": "WALLET_V2",
      "displayName": "Yassir Cash",
      "image": "https://assets.yassir.com/wallet-logo.png",
      "balance": 15000,
      "currency": "DZD"
    }
  ]
}