It should work with something like :
secret = "%8R=&PfC5SXT:pRF2vF[5zCTy}M7CX]J"
iv = "}Lq5Wu~nkr\Vdfm~"
payload = Base.decode64!("rMCS4wiyvQH7nXx6slP6rA==")
:crypto.crypto_one_time(:aes_128_cbc, secret, iv, payload, false)
but your iv length is 15 bytes, and it should be 16 :
iex(20)> :crypto.crypto_one_time(:aes_256_cbc, secret, iv, payload, false)
** (ErlangError) Erlang error: {:badarg, {'api_ng.c', 310}, 'Bad iv size'}:
* 3rd argument: Bad iv size
crypto.erl:967: :crypto.crypto_one_time(:aes_256_cbc, "%8R=&PfC5SXT:pRF2vF[5zCTy}M7CX]J", "}Lq5Wu~nkrVdfm~", <<172, 192, 146, 227, 8, 178, 189, 1, 251, 157, 124, 122, 178, 83, 250, 172>>, false)
iex:20: (file)


















