Skip to main content
Before executing a payment, you need to know which connectors are available for your corridor. The Zeam API provides several discovery endpoints to find the right route.

Discovery endpoints

MethodPathAuthPurpose
GET/v1/connect-routesConnect bearer + connect secretList available integration routes
GET/v1/connect-providersConnect bearer + connect secretList payment providers
GET/v1/connect-countriesConnect bearer + connect secretList supported countries
GET/v1/connect-assetsConnect bearer + connect secretList supported assets
POST/v1/connect-queryOAuth or Connect bearerDiscovery query

For a specific beneficiary

The most common discovery pattern is finding connectors for an existing beneficiary:
curl -s "https://api.zeam.money/gw/v1/business/beneficiaries/getAvailableConnectors/$ASSOCIATION_ID/$BENEFICIARY_ID/BANK" \
  -H "Authorization: Bearer $BUSINESS_TOKEN" | jq
This orchestrates the lookup across your beneficiary’s payment destinations and the available Connect routes, returning only connectors that can actually deliver to your beneficiary.

Payment methods

MethodDescription
BANKBank transfer (SWIFT, local ACH/RTGS)
MOMOMobile money (M-Pesa, MTN MoMo, etc.)
CRYPTOCryptocurrency
CARDCard payment
CASHCash pickup
QRQR code payment
VOUCHERVoucher/prepaid
WALLETDigital wallet

Connector discovery

For more flexible queries, use the discovery endpoint:
curl -s -X POST https://api.zeam.money/gw/v1/connect-query \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-zeam-auth: $CONNECT_SECRET" \
  -H 'Content-Type: application/json' \
  -d '{"countryISO": "ZW", "method": "MOMO"}'
The /v1/connect-query endpoint accepts both OAuth tokens and Connect bearer tokens. This makes it easy to show available corridors in your user-facing UI.

Using the Go SDK

connectors, err := client.Connect().QueryConnectors(ctx, connectSession, connect.ConnectorQueryInput{
    CountryISO: "ZA",
    Method:     "BANK",
})

for _, c := range connectors {
    fmt.Printf("Connector: %s (active=%v, asset=%s)\n", c.ID, c.IsActive, c.AcceptedAsset)
}