diff --git a/donations/lib/src/main/java/org/signal/donations/StripeApi.kt b/donations/lib/src/main/java/org/signal/donations/StripeApi.kt index 13b680562b..3a9e52b021 100644 --- a/donations/lib/src/main/java/org/signal/donations/StripeApi.kt +++ b/donations/lib/src/main/java/org/signal/donations/StripeApi.kt @@ -128,7 +128,19 @@ class StripeApi( if (response.isSuccessful) { return response } else { - throw IOException("postForm failure: ${response.code()}") + throw IOException("postForm failed with code: ${response.code()}. errorCode: ${parseErrorCode(response.body()?.string())}") + } + } + + private fun parseErrorCode(body: String?): String? { + if (body == null) { + return "No body." + } + + return try { + JSONObject(body).getJSONObject("error").getString("code") + } catch (e: Exception) { + "Unable to parse error code." } }