Genuka WA docs

WhatsApp error 131042: payment method issue — fix

WhatsApp error 131042: Meta refuses the send because the WhatsApp Business account has no valid payment method. Where to add the card and how to check it.

WhatsApp error 131042 means Meta refuses the send because of the WhatsApp Business account's payment method: no card, a credit line over its limit, or an account that is not set up correctly. Meta bills messages directly to the client, not through Genuka. Add or fix the payment method at Meta, then send again.

What does error 131042 mean?

"There was an error related to your payment method." — Meta, Cloud API error codes

Meta asks you to verify the billing setup and lists the common problems:

  • the payment account is not attached to a WhatsApp Business account;
  • the credit line is over the limit;
  • the credit line (payment account) is not set or not active;
  • the WhatsApp Business account is deleted;
  • the WhatsApp Business account is suspended;
  • the timezone is not set;
  • the currency is not set;
  • the MessagingFor (On Behalf Of) request is pending or declined.

The title that comes with the code in the message field is "Business eligibility payment issue" (360dialog's list).

Why isn't my Genuka WA subscription enough?

Because Genuka is a Meta Tech Provider, not a Business Solution Provider (BSP). Each client connects its own WhatsApp Business account, and Meta bills messages directly to that account, with no markup from Genuka. The Genuka WA subscription pays for the platform, not for the messages: it does not replace the card Meta expects on the client's business portfolio.

What we see in practice: an account with no payment method can create templates and get them approved, but every send comes back as 131042. And we cannot check it in advance, because Meta only shares an account's funding details with BSPs.

When does error 131042 happen?

  • On the first template send of a freshly connected account, when nobody has added a card at Meta yet.
  • When a card expires or is declined on an account that used to send.
  • In the middle of a campaign: every recipient fails for the same reason.

Where do you see it in Genuka WA?

ChannelWhat you get
POST /api/v1/messages responseA refusal whose meta.code is 131042, with Meta's text in message
message_status webhook, when Meta reports the failure afterwardsdata.status: "failed", data.errors[0].code: 131042
CampaignEvery recipient turns failed. When Meta refuses on the call, the incident is also flagged once for the campaign
Dashboard, client page, when Meta refuses on the callThe "Meta is refusing sends on this number" notice, with Meta's message and an "Add a card on Meta" button
WhatsApp, when Meta refuses on the callAn alert to the partner, at most once a week per number

Meta states that its errors come back in the response, by webhook, or both (Meta, error codes). Genuka WA only raises the notice and the WhatsApp alert for a refusal received on the call: a 131042 that only arrives on the message_status webhook turns the message failed, with no notice and no alert. So watch the webhook too.

How do I fix error 131042?

Open the account's payment settings at Meta. From the client page in the dashboard, the "Add a card on Meta" button opens the WhatsApp account page in Meta's business settings directly, or the billing hub when the portfolio ID is unknown. The account owner, the client, has to act: the card is theirs.

Add or replace the payment method, then check the other causes on Meta's list: timezone and currency set, account neither suspended nor deleted.

Confirm it in Genuka WA with "A card is already registered". We cannot check it ourselves: the notice comes back on its own if Meta refuses another send on the call for the same reason.

Test with a single message before relaunching a campaign: a send that is accepted and then delivered confirms the block is gone.

const response = await fetch("https://wa.genuka.com/api/v1/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.GENUKA_WA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    connectionId: "con_1",
    to: "+237690000001",
    template: { name: "order_update", language: "en", body: ["Awa", "ORD-1042"] },
  }),
});
const json = await response.json();

if (!response.ok && json.meta?.code === 131042) {
  // Nothing to retry: the client has to add a card to their Meta account.
  await notifyAccountOwner(json.meta.details ?? json.message); // your function
}

// In your webhook route, once the signature is verified: the same refusal can arrive afterwards.
export async function onMessageStatus(event: {
  type: string;
  data: { status: string; errors?: { code: number; message?: string }[] };
}) {
  if (event.type !== "message_status" || event.data.status !== "failed") return;
  const error = event.data.errors?.find((e) => e.code === 131042);
  if (error) await notifyAccountOwner(error.message ?? "131042");
}

How do I prevent error 131042?

  • Have the card added during onboarding, before the first template. The dashboard shows the "Add a payment method on Meta" notice on each number until it is confirmed.
  • Explain the two bills to your clients from the start: the Genuka WA subscription on one side, messages billed by Meta on the other.
  • Do not launch a large campaign on an account that has never sent: a single test message reveals the problem for the price of one message.
  • 131048: another reason Meta refuses a number's sends, tied to quality rather than payment.
  • 132001: a refusal about the template itself, sometimes mistaken for an account block.

For the Genuka WA subscription itself, see Plans and billing.

FAQ

Does my Genuka WA subscription cover WhatsApp messages?

No. Genuka charges a subscription per WhatsApp number; messages are billed by Meta, directly to the client's WhatsApp Business account, with no markup from Genuka. See the plans.

Why can't Genuka WA detect the missing card before sending?

Because Meta only shares a WhatsApp Business account's funding details with BSPs. Genuka being a Tech Provider, the first reliable signal is the 131042 refusal itself.

Who has to add the card?

The business that owns the WhatsApp Business account, in its own Meta business portfolio. A partner managing several clients cannot pay on their behalf through Genuka WA.

Sources

On this page