Daraja.B2C (daraja v0.1.0)

Copy Markdown View Source

Business to Customer (B2C) payments.

Initiate disbursement from an M-PESA organization shortcode to a customer MSISDN.

Example

client = Daraja.Client.new()

Daraja.B2C.payment(client, %{
  originator_conversation_id: "my-unique-id-001",
  initiator_name: "testapi",
  security_credential: "base64-credential",
  command_id: "BusinessPayment",
  amount: 10,
  party_a: "600997",
  party_b: "254705912645",
  remarks: "Payment for promotion",
  queue_timeout_url: "https://example.com/b2c/timeout",
  result_url: "https://example.com/b2c/result",
  occasion: "PromoPayout"
})

Summary

Functions

Sends a B2C payment request.

Types

result()

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

Functions

payment(client, request)

@spec payment(Daraja.Client.t(), map() | Daraja.B2C.PaymentRequest.t()) :: result()

Sends a B2C payment request.

Required params:

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

Optional params:

  • occasion