> ## Documentation Index
> Fetch the complete documentation index at: https://docs.adullam.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Proto Reference

> Summary of Adullam gRPC services and main message types from the partner API protos.

# Proto Reference

Adullam partner gRPC APIs are defined in Protocol Buffer files under the package **`ofceabstudio.services.adullam.v1`**. This page summarizes the services and main message types.

## Download the proto files

Download the v1 partner proto files and generate your own client using gRPC’s official docs:

* **[partner\_service.proto](/protos/v1/partner_service.proto)** — services and request/response messages
* **[common.proto](/protos/v1/common.proto)** — shared enums and types (required by `partner_service.proto`)

Then follow the [gRPC documentation for your language](https://grpc.io/docs/languages/) (Go, Java, Python, Node, Dart, etc.) to install `protoc`, add the gRPC plugin, and generate client code from these `.proto` files.

## Services

### PartnerAuthenticationService

| RPC         | Request                           | Response                       |
| ----------- | --------------------------------- | ------------------------------ |
| GetToken    | rpcTokenRequest (phone, password) | rpcAuthenticationToken (token) |
| RotateToken | rpcEmpty                          | rpcAuthenticationToken         |

### PartnerPaymentService

| RPC           | Request                                                                         | Response                |
| ------------- | ------------------------------------------------------------------------------- | ----------------------- |
| CreatePayment | rpcCreatePaymentRequest (amount, currency, customerPhone, channel, description) | rpcPayment              |
| GetPayment    | rpcGetPaymentRequest (paymentId)                                                | rpcPayment              |
| ListPayments  | rpcListPaymentsRequest (status, pagination, filters)                            | rpcListPaymentsResponse |
| RefundPayment | rpcRefundPaymentRequest (paymentId)                                             | rpcRefund               |

### PartnerTransferService

| RPC             | Request                                                                           | Response                 |
| --------------- | --------------------------------------------------------------------------------- | ------------------------ |
| CreateTransfer  | rpcCreateTransferRequest (amount, currency, recipientPhone, channel, description) | rpcTransfer              |
| GetTransfer     | rpcGetTransferRequest (transferId)                                                | rpcTransfer              |
| ListTransfers   | rpcListTransfersRequest (status, pagination, filters)                             | rpcListTransfersResponse |
| ReverseTransfer | rpcReverseTransferRequest (transferId)                                            | rpcReversal              |

### PartnerAccountService

| RPC        | Request  | Response                                                              |
| ---------- | -------- | --------------------------------------------------------------------- |
| GetBalance | rpcEmpty | rpcBalance (balance, currency, lastUpdated)                           |
| GetAccount | rpcEmpty | rpcAccount (partnerId, businessName, phone, email, status, createdAt) |

## Common enums (common.proto)

* **rpcSupportedCurrency**: `xof`
* **rpcTransactionStatus**: `pending`, `processing`, `completed`, `failed`, `expired`
* **rpcPaymentChannel**: `orangeCI`, `mtnCI`, `moovCI`, `waveCI`
* **rpcRefundReason**: `customerRequest`, `fraud`, `duplicate`, `error`, `technicalIssue`, `other`

## Key message types

* **rpcPayment** / **rpcTransfer**: id, status, amount, currency, channel, customerPhone/recipientPhone, description, reference, fees, metadata, createdAt, completedAt, failureReason, etc.
* **rpcPaginationRequest**: limit (max 100), cursor
* **rpcPaginationResponse**: hasMore, nextCursor

## Generating client code

1. **Download** the proto files from the links above (or from the [gRPC overview](/grpc/overview#download-the-v1-partner-proto-files)).
2. **Use gRPC’s official guides** for your language: [grpc.io/docs/languages](https://grpc.io/docs/languages/) — they cover `protoc`, language-specific plugins (e.g. Go, Java, Python, Node, Dart), and how to generate and use the client.
3. Run `protoc` (or Buf) with your plugin; ensure `common.proto` is in the same include path as `partner_service.proto`. If you use the optional `buf/validate` rules, add that dependency to your include path.

## Support

<Note>
  Need help? Contact us by **email** ([support@adullam.dev](mailto:support@adullam.dev)), **WhatsApp** ([chat](https://wa.me/0103961828)), or **Telegram** ([@adullam\_official](https://t.me/adullam_official)).
</Note>
