ElixirMpesa.Transactions (ElixirMpesa v0.2.0)
View SourceThe M-Pesa OpenAPI operations, one function per endpoint.
Every function here takes an already-resolved ElixirMpesa.Config and an encrypted
session key. Most callers want ElixirMpesa instead, which resolves configuration and
manages the session for you.
Idempotency
"input_ThirdPartyConversationID" is the idempotency key. It must be unique per
logical transaction — and identical across retries of the same transaction, which is
how M-Pesa recognises and rejects a duplicate instead of processing it twice.
Summary
Functions
Business to Business payment.
Business to Customer payment.
Customer to Business payment.
Direct debit mandate cancellation.
Direct debit mandate creation.
Direct debit payment.
The operations this module exposes, as {name, method, path}.
Beneficiary name query.
Direct debit mandate query.
Transaction status query.
Transaction reversal.
Types
@type result() :: {:ok, ElixirMpesa.Response.t()} | {:error, ElixirMpesa.Error.t()}
Functions
@spec b2b(ElixirMpesa.Config.t(), attrs(), String.t()) :: result()
Business to Business payment.
Sends POST /b2bPayment/.
See ElixirMpesa.b2b/2 for the parameters and a worked example.
@spec b2c(ElixirMpesa.Config.t(), attrs(), String.t()) :: result()
Business to Customer payment.
Sends POST /b2cPayment/.
See ElixirMpesa.b2c/2 for the parameters and a worked example.
@spec c2b(ElixirMpesa.Config.t(), attrs(), String.t()) :: result()
Customer to Business payment.
Sends POST /c2bPayment/singleStage/.
See ElixirMpesa.c2b/2 for the parameters and a worked example.
@spec direct_debit_cancel(ElixirMpesa.Config.t(), attrs(), String.t()) :: result()
Direct debit mandate cancellation.
Sends PUT /directDebitCancel/.
See ElixirMpesa.direct_debit_cancel/2 for the parameters and a worked example.
@spec direct_debit_creation(ElixirMpesa.Config.t(), attrs(), String.t()) :: result()
Direct debit mandate creation.
Sends POST /directDebitCreation/.
See ElixirMpesa.direct_debit_creation/2 for the parameters and a worked example.
@spec direct_debit_payment(ElixirMpesa.Config.t(), attrs(), String.t()) :: result()
Direct debit payment.
Sends POST /directDebitPayment/.
See ElixirMpesa.direct_debit_payment/2 for the parameters and a worked example.
The operations this module exposes, as {name, method, path}.
Examples
iex> ElixirMpesa.Transactions.operations() |> Keyword.keys() |> Enum.sort() |> Enum.take(3)
[:b2b, :b2c, :c2b]
@spec query_beneficiary_name(ElixirMpesa.Config.t(), attrs(), String.t()) :: result()
Beneficiary name query.
Sends GET /queryBeneficiaryName/.
See ElixirMpesa.query_beneficiary_name/2 for the parameters and a worked example.
@spec query_direct_debit(ElixirMpesa.Config.t(), attrs(), String.t()) :: result()
Direct debit mandate query.
Sends GET /queryDirectDebit/.
See ElixirMpesa.query_direct_debit/2 for the parameters and a worked example.
@spec query_transaction_status(ElixirMpesa.Config.t(), attrs(), String.t()) :: result()
Transaction status query.
Sends GET /queryTransactionStatus/.
See ElixirMpesa.query_transaction_status/2 for the parameters and a worked example.
@spec reversal(ElixirMpesa.Config.t(), attrs(), String.t()) :: result()
Transaction reversal.
Sends PUT /reversal/.
See ElixirMpesa.reversal/2 for the parameters and a worked example.