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
| Method | Path | Auth | Purpose | |
|---|
GET | /v1/connect-routes | Connect bearer + connect secret | List available integration routes | |
| GET | /v1/connect-providers | Connect bearer + connect secret | List payment providers |
| GET | /v1/connect-countries | Connect bearer + connect secret | List supported countries |
| GET | /v1/connect-assets | Connect bearer + connect secret | List supported assets |
| POST | /v1/connect-query | OAuth or Connect bearer | Discovery 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
| Method | Description |
|---|
BANK | Bank transfer (SWIFT, local ACH/RTGS) |
MOMO | Mobile money (M-Pesa, MTN MoMo, etc.) |
CRYPTO | Cryptocurrency |
CARD | Card payment |
CASH | Cash pickup |
QR | QR code payment |
VOUCHER | Voucher/prepaid |
WALLET | Digital 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)
}