Stable, official Meta connection

Raise your customer satisfactionby automating message deliveryover WhatsApp with Joinotify

Order confirmation, tracking code, payment, reminder: every event in your store becomes a WhatsApp message. All through the official API, with no ban anxiety and without writing a line of code.

  • No credit card
  • 7-day trial
  • First send in 5 minutes
9:12 AM
John Freionline

Today

Hi, John! Thank you for your order #10620 🥳💙 Your purchase: 1 UN - Cotton t-shirt (Colour: Black, Size L) 1 UN - Pair of running socks (Colour: Black, Size 8-11) Order total: $129.47 Delivery address: 800 Marigold Street - Austin - Texas As soon as the order ships, you will get the details right here! If you have any questions, we are around! Best regards, Joinotify

9:12 AM

typing…
Alright, thank you so much!

9:14 AM

Good afternoon, John! Good news! Your order #10620 has just shipped. Delivery address: 800 Marigold Street - Austin - Texas Carrier: USPS Tracking code: XT10203040US

2:53 PM

Track order

typing…
Yesss

4:41 PM

That is wonderful!! 😁😁

4:41 PM

Tech Provider exclusive

Use the official API and keep WhatsApp on the phone.

In coexistence mode, the same number answers manually through the app and fires automations through the API. There is no choosing between one and the other, and few providers can offer that.

api.joinotify.comsame number · two channels
# the number stays on the team's phone
# and answers through the API at the same time
curl -X POST \
  https://api.joinotify.com/v1/{PHONE_NUMBER_ID}/messages \
  -H "Authorization: Bearer sk_live_a91c4f2e..." \
  -H "Content-Type: application/json" \
  -d '{
    "messaging_product": "whatsapp",
    "to": "5511999990000",
    "type": "template",
    "template": {
      "name": "pedido_confirmado",
      "language": { "code": "pt_BR" }
    }
  }'
  • Manual support stays the same

    Your team keeps replying from the phone app, exactly as they always have.

  • Automation runs in parallel

    Notifications, confirmations and automated flows go out through the API — on the same number.

  • One shared history

    Both ends live in the same conversation. No split contacts, no duplicates.

The official path

All of this is what Meta requires before the first send. None of it is on you.

This is the road for whoever goes straight to Meta: each step is a different queue, in a different panel, with its own timeline — and a mistake in any of them sends you back to the start.

With Joinotify, you go through none of these steps.

We are a Meta-approved Tech Provider. Business verification, App Review and the webhook infrastructure are already done on our side — you connect the number and send the first message in minutes.

Without Joinotify, this is what Meta asks of you
  • 01already handled

    Verified Business Manager

    Create the account in Meta Business Manager, link a domain of your own and go through business verification.

    days to weeks in the queue
  • 02already handled

    Verified company

    Submit incorporation documents, tax registration, proof of address and legal details for Meta’s manual review.

    can be refused with no explanation
  • 03already handled

    Advanced permissions

    Request whatsapp_business_messaging and whatsapp_business_management in App Review, with a video, screenshots and a use-case description.

    up to 5 business days of review
  • 04already handled

    Tech Provider certification

    Keeping WhatsApp Business on the phone alongside the API (coexistence) requires being an approved Tech Provider — company verification, product demo and manual approval.

    closed program · few approved
  • 05already handled

    Webhooks and infrastructure

    Stand up an HTTPS endpoint with a verification token, validate the signature of every Graph API payload and keep it all up.

    the infra is yours
  • 06already handled

    App published and reviewed

    The app has to leave development mode and be reviewed before it accepts any real number.

    one more review cycle
The solution

We are already the approved partner.

The certification, the App Review and the webhook infrastructure stayed on our side. What is left on yours is what matters: connect the number and integrate.

Connect my number
  • Guided connection in minutes

    Embedded Signup opens inside the Joinotify panel. You authorize the account in a few clicks, without opening a single Meta screen.

  • Every endpoint unlocked

    Text, media, templates, interactive, location, reactions. The entire official API available from the first minute.

  • Webhooks ready to use

    Register your system’s URL and receive messages and delivery statuses in real time. Nothing to configure on Meta.

  • No App Review, no waiting

    The permissions are already approved on our side. You submit nothing, record no video and wait for no review.

WordPress plugin

Build automations by dragging and dropping components

Put workflows together intuitively and notify your leads or customers in a handful of steps.

  • No code
  • No complexity
  • Just automation
Order received confirmation
WooCommerceWooCommerceOrder received confirmation

This action fires when an order status changes.

Delay

Delay · 10 minutes

Condition

Order paid: Is equal to Yes

TrueFalse
WhatsApp: Text messageWhatsApp

Hi, {{ wc_billing_first_name }}! We got your order #{{ wc_order_number }}. 😊 Items: {{ wc_purchased_items }} Total: {{ wc_currency_symbol }} {{ wc_order_total }} We are already packing it.

WhatsApp: Text messageWhatsApp

Hi, {{ wc_billing_first_name }}, we got your order #{{ wc_order_number }} but it is still awaiting payment. To finish it, go to: {{ wc_payment_url }}

  • Visual flow builder

    Drag the trigger, connect the actions and save. A paid order becomes a message without anyone writing code.

  • Conditions and branches

    The flow splits by order status, total amount, product purchased or any data the trigger delivers.

  • Delays and scheduling

    Wait seven days after delivery to ask for a review, or fire at a fixed date and time — no external cron.

Compatibility

100% compatible with Meta’s Cloud API.

Joinotify mirrors the official API. Only the URL prefix and the token change: the request body and the response are identical, so you can learn from Meta’s own documentation.

Meta Cloud API
graph.facebook.com
curl -X POST \
  https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages \
  -H "Authorization: Bearer {META_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "messaging_product": "whatsapp",
    "to": "5511999999999",
    "type": "text",
    "text": { "body": "Hi! Your order has been confirmed." }
  }'
Joinotify
api.joinotify.com200 OK · 142ms
curl -X POST \
  https://api.joinotify.com/v1/{PHONE_NUMBER_ID}/messages \
  -H "Authorization: Bearer sk_live_a91c4f2e..." \
  -H "Content-Type: application/json" \
  -d '{
    "messaging_product": "whatsapp",
    "to": "5511999999999",
    "type": "text",
    "text": { "body": "Hi! Your order has been confirmed." }
  }'
  • The domain changes
  • The token changes
  • Everything else stays the same
Or take the shortcut

Don’t want to assemble Meta’s JSON? One endpoint does it.

POST /messages covers text and templates with the type in the body, and the sender number comes from the token itself. The mirror stays there for everything else.

api.joinotify.com202 Accepted · scheduled
curl -X POST \
  https://api.joinotify.com/messages \
  -H "Authorization: Bearer sk_live_a91c4f2e..." \
  -H "Content-Type: application/json" \
  -d '{
    "type": "text",
    "to": "5511999999999",
    "body": "Hi! Your order has been confirmed.",
    "delaySeconds": 7200
  }'
  • Scheduling with cancellation

    Send now or book for later, with `sendAt` or `delaySeconds`. Whatever is queued can be listed and cancelled up to seconds before it leaves.

  • Keys restricted per number

    One key per integration — and, if you want, pinned to a single number. It is what lets an agency host clients on the same account without one reaching another.

  • Billing alerts over webhooks

    Your integration receives `billing.past_due`, `billing.blocked` and `billing.restored`, and knows sending stopped before the customer complains.

Supported message types

  • Text
  • Image
  • Video
  • Audio
  • Document
  • Template (HSM)
  • Buttons
  • Interactive list
  • Contact
  • Location
  • Reaction
  • Sticker

See the Joinotify documentation

How to connect

From the plan to the first message, in four steps.

The first two steps are the same for everyone: pick the plan and connect the number. The road only forks at the end: with the plugin you never see an API key; through code you never open WordPress.

Steps 01 and 02: the same for everyone
  • Pick a plan

    The subscription creates your account by itself: you get an email to set a password and you are in the panel. There is no separate signup form to fill in first.

    • Free trial, no card
    • The account is born with the plan already applied
  • Connect your WhatsApp number

    In the panel, Embedded Signup opens in a window from Facebook itself. Pick a new number or migrate the one you already use, authorize, and come back with the account connected.

    • No verified Business Manager
    • No App Review, no documents to submit
    • The number can stay on the phone, if you want it to
From here on, pick one of the two
  • Through the WordPress plugin

    You never see an API key.

    Install the plugin and connect

    The plugin is free and open source — install it from the WordPress directory. A wizard opens on its own: click Connect, authorize in the panel, and your numbers come back imported.

    • No key to copy and paste
    • Verified name, quality and conversation limit come along

    Build the first flow

    Drag the trigger — “order completed”, say —, write the message and save. The next WooCommerce order fires on its own.

    • Conditions, delays and loops in the same builder
    • Send history with filters
  • Through code, over the API

    You never open WordPress.

    Generate an API key

    One key per integration, revocable on its own. It can be restricted to specific numbers — useful when the same account serves several clients.

    your API key
    sk_live_a91c4f2e_h3d7p0qx_2qLm9eR8

    Send the first message

    One endpoint for the common case, with the sender number coming from the token itself. Need an image, buttons or a carousel? The `/v1` mirror accepts the whole Cloud API payload, with the same key.

    POST api.joinotify.com/messages
    curl -X POST https://api.joinotify.com/messages \
      -H 'Authorization: Bearer sk_live_xxx' \
      -H 'Content-Type: application/json' \
      -d '{
        "type": "text",
        "to": "5541987111527",
        "body": "Your order #1042 is out for delivery."
      }'
New webhook
Delivery URL
https://api.seudominio.com.br/whatsapp/webhook

POST with a JSON body. Your URL must answer 200 within 20s, and HTTPS is required.

Events
  • messagesIncoming messages and delivery statuses
  • smb_message_echoesMessages sent from the WhatsApp Business app
  • message_template_status_updateTemplate approval or rejection
  • account_alertsAccount alerts: quality, approvals and blocks
  • phone_number_quality_updateUpdates to the number’s quality
Webhooks

Receive every event in real time, wherever you want.

Register as many URLs as you need and pick exactly which events each one receives: incoming messages, delivery statuses, template approvals, number quality alerts and more.

  • Several URLs per connected number
  • Event filter per webhook
  • One-click test delivery
  • Pause and resume without deleting
  • HMAC signature on every delivery
  • Automatic retry on failure

Available events

28 events
  • messages

    Incoming messages and delivery statuses

  • smb_message_echoes

    Messages sent from the WhatsApp Business app

  • message_template_status_update

    Template approval or rejection

  • message_template_quality_update

    Changes in template quality

  • message_template_components_update

    Changes to a template’s components

  • account_alerts

    Account alerts: quality, approvals and blocks

  • account_update

    General WABA account updates

  • account_review_update

    Progress of the account review process

  • account_settings_update

    Changes to account settings

  • phone_number_name_update

    Change to the number’s display name

  • phone_number_quality_update

    Updates to the number’s quality

  • business_capability_update

    Changes to the business’s limits and capabilities

  • business_status_update

    Business status updates

  • template_category_update

    Template category reclassification

  • template_correct_category_detection

    Correct category detection on templates

  • flows

    WhatsApp Flows events

  • calls

    Voice calls started by contacts

  • security

    Account security events

  • automatic_events

    Automatic events generated by the platform

  • tracking_events

    Conversion tracking events

  • history

    Message history synchronization

  • payment_configuration_update

    Payment configuration updates

  • partner_solutions

    Partner solutions integrated with the account

  • group_lifecycle_update

    Group creation and termination

  • group_participants_update

    Participants joining and leaving groups

  • group_settings_update

    Changes to group settings

  • group_status_update

    Group status updates

  • user_preferences

    Contact preferences and opt-out

Integration

Your entire tech stack, fully connected

Joinotify plugs into where your flow already lives: WordPress through the plugin, n8n and Make through the API, Chatwoot through the inbox. Events come in, messages go out, and nothing has to be rewritten.

Start free
  • WordPress
  • WooCommerce
  • Elementor
  • WPForms
  • WhatsApp
  • n8n
  • Make
  • Chatwoot
  • WordPress
  • WooCommerce
  • Elementor
  • WPForms
  • WhatsApp
  • n8n
  • Make
  • Chatwoot
Unofficial API

It is cheaper right up to the day the number goes down.

Unofficial libraries impersonate WhatsApp Web. Any app update drops the connection, and any volume spike trips Meta’s automated detection. You find out you have a problem when support has already stopped.

Operating outside the terms puts your company’s number at risk — or your client’s. A ban in the middle of a campaign has no appeal, no return date and nobody to call.

The official API exists precisely for automation. It is the same integration work, with the difference that nobody can take your number offline for using it.

9:41WhatsApp

This account can no longer use WhatsApp

After review, we concluded that this account’s activities violate the WhatsApp Terms of Service.

No warning. No appeal. No recovery.

Comparison

Three ways to send over WhatsApp.

The same message, by three different routes — including the rows where we are not the better option.

Joinotify is a Brazilian platform that provides access to Meta’s official WhatsApp Cloud API without requiring business verification, App Review or infrastructure of your own.

It works as a proxy: the call is forwarded to Meta and the response comes back unchanged, so every Cloud API endpoint is available.

It is built for developers and integrators — it is not a bulk-messaging or shared-inbox tool. A free WordPress and WooCommerce plugin is included.

Comparison between Joinotify, the Cloud API contracted directly from Meta, and unofficial libraries.
CriterionJoinotifyCloud API direct from MetaUnofficial library
Time to first messageMinutesWeeks to monthsMinutes
Verified Business ManagerNot required to startRequiredNot applicable
Permissions App ReviewAlready clearedRequired, can be refusedNot applicable
Coexistence with the phone appIncludedNeeds Tech Provider certificationNo
Webhook infrastructureOursYoursYours
Ban risk from automatingNone — it is the intended useNone — it is the intended useHigh: it breaks the terms
Connection stabilityOfficial APIOfficial APIBreaks on every app update
Endpoint coverageAll of them, response unchangedAll of themPartial and unstable
Platform subscriptionYesNoNo
Meta conversation feesCharged by Meta, passed through without markupCharged by MetaNone

The unofficial route is the cheapest of the three, and stays that way right up to the day the number is banned — which comes with no warning and no appeal.

Made in Brazil

Proudly built in Brazil

We are driven by the pride of building software with passion and innovation. From Brazil to the world!

  • Support in Portuguese, English and Spanish
  • Brazilian company since 2019
  • Invoicing in USD or BRL
Pricing

One plan with everything included: plugin, API and webhooks.

Each plan carries an allowance of numbers and has no message cap. The WordPress plugin is included in all of them: you never pay for it separately.

  • Joinotify - Start - Monthly

    $9.90/ month

    $9.90 billed every month · cancel anytime

    1 number included

    Subscribe now
  • Joinotify - Growth - Monthly

    $59.90/ month

    $59.90 billed every month · cancel anytime

    10 numbers included

    Subscribe now
  • Joinotify - Scale - Monthly

    $199.90/ month

    $199.90 billed every month · cancel anytime

    50 numbers included

    Subscribe now

Safe and secure payments, powered byStripe

We store no card details on our servers. Payment is handled by the gateway and the site is served over TLS.

Accepted payment methods

  • Visa
  • Mastercard
  • American Express
  • Discover
  • Diners Club
  • JCB
  • UnionPay
  • eftpos Australia
  • Apple Pay
  • Google Pay
FAQ

Questions that come up all the time.

Didn’t find what you were looking for? Talk to us on WhatsApp.

A Meta Business Manager account and an eligible WhatsApp number — a new number, or one you already use. The account does not need to be verified to start, but verified accounts get higher daily limits for template sending.
No. With coexistence mode, the same number keeps working in the app while the API handles the automations. Both ends share the same conversation history.
Yes — Meta asks for the following:
  • Active account: the number has to be in active use in the WhatsApp Business app, with a consistent history and no recent blocks.
  • Meta Business Manager: the phone number must be registered and linked to your Meta business manager.
  • Up-to-date version: the WhatsApp Business app has to be on version 2.24.17 or newer.
  • Integrated platform: activation requires a partner platform or CRM integrated with the official WhatsApp API — Joinotify is one.
  • Account standing: Meta reviews the account age, the reputation and the quality rating of the number before approving coexistence.
Yes. Joinotify works as a proxy: the call is forwarded to Meta and the response comes back exactly as it arrived, unchanged. No endpoint is left out, and when Meta ships something new it already works on your side, with no migration.
Going direct means business verification, App Review, Tech Provider certification and running your own webhook infrastructure. That takes weeks and can be refused. Here that road has already been walked: you connect the number and use it. What you pay for is the difference between integrating today and integrating months from now.
Only if you send template messages — marketing, authentication or utility. Those fees are charged by Meta itself and passed through with no markup from us. Replies inside the 24-hour window opened by the contact cost nothing.
A template is content pre-approved by Meta, used to start a conversation or notify someone outside the support window. A service message is the reply sent within 24 hours of the customer’s contact — it needs no approval and is not billed.
No. Joinotify is an API for developers and integrators: you build your automations, bots and integrations on top of it. If you use n8n, Make, Zapier, WordPress or write code, this is exactly that. For support with a visual interface, the API can be plugged into a specialized tool.
With unofficial libraries, merely using automation already violates the terms. The official API was made for automation, so the risk drops to what any company faces: penalties for spam, scams, phishing or suspicious links. Operating within the rules, the number is protected.
It works with any tool capable of making an HTTP request. An HTTP node with your key in the Authorization header, calling the endpoints like any REST API, is all it takes.
Yes. The plugin is free and open source (GPL v2+), with every feature unlocked — there is no paid tier and no license to buy. It ships a native channel for the official API and a visual flow builder: triggers from WooCommerce, WordPress, WPForms, Elementor and Flexify Checkout become messages without writing code. Connecting is a button: you authorize in the panel and the site fetches the key and your numbers by itself.
Groups only work on dedicated numbers, without coexistence, and Meta imposes strict eligibility and size restrictions. In practice, the feature today serves only very high-volume operations.
Yes, as long as the number is not banned. The migration happens in the panel itself, through the Embedded Signup flow, in a few minutes.
Seven days free, no credit card. You connect the number, test sends and webhooks, and decide later. If you do not continue, nothing is charged.
Cancellation happens in the panel, at any time, and access remains valid until the end of the period you already paid for — we do not cut you off mid-month. No penalty, no retention call, no minimum term. Switching plans up or down also happens in the panel.
Each plan has a fixed monthly fee, an allowance of WhatsApp numbers and a monthly message cap. The WordPress plugin, webhooks, scheduling and the Cloud API mirror are in all of them — what changes between plans is scale, not the feature set. Meta’s conversation fees keep being charged by Meta, with no markup from us.
Message sending stops and the API starts answering 402, with the reason spelled out. The panel stays accessible — it is where things get regularized — and numbers, templates and settings stay where they were. On WordPress, the plugin is not deactivated and flows are not deleted. As soon as the plan is valid again, sending resumes with no reconfiguration.
Yes. The same send endpoint accepts a date or a delay in seconds, and scheduled messages can be listed and cancelled up to seconds before leaving. Note that the right to send is re-checked at delivery time: a subscription that lapses along the way stops the message from going out.

Tag cloud:

  • joinotify
  • message automation
  • automation plugin
  • whatsapp automation plugin
  • send pdf over whatsapp automatically
  • send whatsapp messages automatically
  • send whatsapp messages from wordpress
  • send whatsapp messages from woocommerce
  • whatsapp api
  • official whatsapp api
  • whatsapp cloud api
  • abandoned cart whatsapp
  • order notifications whatsapp
  • lead magnet
  • WhatsApp
  • WordPress + WhatsApp
Start now

No more bans. No more instability.

Move to the official API today and send your first message in under 5 minutes.

  • No credit card
  • Meta’s official Cloud API
  • Support over WhatsApp