WhatsApp error 131042: Business eligibility payment issue
Meta couldn’t charge your account, so it didn’t send the message. Fix your payment settings in Meta or switch to Kapso credits, then send the message again.
Why it happens
Meta charges your WhatsApp Business account for each paid message. If the charge can’t go through, the message fails with 131042. The problem is your account, not the person you’re messaging, so paid messages, like templates, will keep failing until you fix it.
Common causes, from Meta’s error code list:
- No payment method is linked to your WhatsApp account.
- Your credit line is missing, inactive, or maxed out.
- Your account has no currency or time zone.
- Your WhatsApp account is suspended or deleted.
- A partner asked to send messages for you, and the request is still pending or was declined.
How to fix it
- Stop sending. Pause campaigns and automatic retries. They’ll keep failing until billing is fixed.
- Use Kapso credits or fix your payment settings in Meta. If you use Kapso, you can pay with Kapso credits or add your payment settings in Meta Business Settings.
- Check your payment details. If you pay Meta directly, make sure you have a working payment method, a currency, and a time zone, and that nothing is overdue or over its limit.
- Check your account status. If your account is restricted or suspended, fix that first in Account Quality.
- Send one test message. If it goes through, resend the failed messages you still need.
Handle it in your app
A message can be accepted by the API and still fail later. Kapso webhooks send a whatsapp.message.failed event with Meta’s error code. 131042 keeps happening until billing is fixed, so alert your team instead of retrying.
{
"message": {
"id": "wamid.EXAMPLE",
"kapso": {
"status": "failed",
"statuses": [{
"status": "failed",
"errors": [{
"code": 131042,
"title": "Business eligibility payment issue",
"message": "There was an error related to your payment method."
}]
}]
}
},
"phone_number_id": "123456789012345"
}
// X-Webhook-Event: whatsapp.message.failed
function isError131042(message) {
if (message.delivery_error?.code === 131042) return true;
return message.kapso?.statuses?.some((status) =>
status.errors?.some((error) => error.code === 131042)
) ?? false;
}
if (isError131042(body.message)) {
const phoneNumberId = body.phone_number_id;
// Billing problem on this number: pause its template sends
await pauseTemplateSends(phoneNumberId);
// One incident per number; it closes when you resume sends
await openBillingIncident(phoneNumberId);
// Keyed by message ID, so a retried webhook doesn't add it twice
await markForResend(body.message.id);
}
See all fields in the message event docs. Before acting on a webhook, verify the signature and handle retried deliveries as shown in webhook security.
Frequently asked questions
Is my WhatsApp account banned?
Usually not. It’s a billing problem, and messages go through again once you fix it. Meta also returns 131042 for suspended accounts, so check your account status too.
Why is it failing if my card works?
A working card isn’t enough. The card must be linked to your WhatsApp account, the account needs a currency and time zone, and you must be under your credit limit.
Can Kapso pay Meta for me?
Yes. With Kapso credits, Kapso pays Meta’s message fees and takes them from your prepaid Kapso balance. You don’t need a payment method in Meta, as long as your account doesn’t already have one.
Am I charged for these messages?
No. Meta only charges for delivered messages.
Does Meta resend failed messages after I fix billing?
No. Failed messages stay failed. Resend the ones you still need.