Daraja.B2B (daraja v0.1.0)

Copy Markdown View Source

Business to Business (B2B) payments.

Initiate transfers between organization shortcodes or till numbers.

Example

client = Daraja.Client.new()

Daraja.B2B.request(client, %{
  initiator: "testapi",
  security_credential: "base64-credential",
  command_id: "BusinessPayBill",
  sender_identifier_type: 4,
  receiver_identifier_type: 4,
  amount: 10500,
  party_a: "600992",
  party_b: "600000",
  account_reference: "INV-001",
  remarks: "B2B Payment",
  queue_timeout_url: "https://example.com/b2b/timeout",
  result_url: "https://example.com/b2b/result"
})

Summary

Functions

Sends a B2B payment request.

Types

result()

@type result() ::
  {:ok, Daraja.B2B.Response.Success.t()}
  | {:error, :invalid_request, list()}
  | {:error, :auth_failed, Daraja.APIError.t()}
  | {:error, :http_error, Daraja.APIError.t() | term()}
  | {:error, :request_failed,
     Daraja.B2B.Response.Error.t() | Daraja.APIError.t()}

Functions

request(client, request)

@spec request(Daraja.Client.t(), map() | Daraja.B2B.PaymentRequest.t()) :: result()

Sends a B2B payment request.

Required params:

  • initiator
  • security_credential — pre-encrypted Base64 string or {password, pem} tuple (auto-encrypted)
  • command_id
  • sender_identifier_type
  • receiver_identifier_type
  • amount
  • party_a
  • party_b
  • remarks
  • queue_timeout_url
  • result_url

Optional params:

  • account_reference