BINKDocs
HelpDashboard

Zapier Integration

/docs/global/integrations/zapierGlobal

Connect BINKPAY payment events to thousands of apps — without writing a single line of webhook handling code.

Hosted Checkout

Cards · Apple Pay · Google Pay

Refunds sync

No code changes

Global EnvironmentEgypt EnvironmentNo backend required

How it works

The BINKPAY Zapier app lets you subscribe to payment events from your BINKPAY account and route them to any of Zapier's 6,000+ connected apps — Slack, Google Sheets, HubSpot, Notion, Airtable, Mailchimp, and more. When a subscribed event fires in BINKPAY, Zapier receives the payload, parses the event fields, and executes your configured actions automatically.

Unlike a raw webhook integration, you do not need to provision a public HTTPS endpoint, write signature verification code, or manage delivery infrastructure. Zapier handles webhook delivery, retry logic, payload parsing, and field mapping through its no-code interface. Each Zap you create automatically registers a private webhook subscription with BINKPAY on your behalf.

The BINKPAY Zapier app is available for both the Global environment (USD, AED, EUR, GBP, SAR) and the Egypt environment (EGP). All event types are supported regardless of environment.

Prerequisites

1A Zapier account. Free and paid Zapier plans are both supported. Note that multi-step Zaps (trigger + more than one action) require a Zapier paid plan. Single-step Zaps are available on the free tier. Sign up at zapier.com.
2A BINKPAY account. Your account must be active. Test mode Zaps work without account verification; live mode Zaps require a fully verified merchant account.
3A BINKPAY API key. Generate one in Dashboard → Developer → API Keys. Use a sk_test_... key during development and a sk_live_... key for production Zaps.

Connecting BINKPAY to Zapier

Create a new Zap and search for BINKPAY

Log in to your Zapier account and click + Create Zap. In the trigger search field, type BINKPAY and select the BINKPAY app from the results. The BINKPAY app is listed as BINKPAY — Payments & Invoicing.

Click "Sign in to BINKPAY"

After selecting BINKPAY as your trigger app, Zapier will prompt you to connect an account. Click Sign in to BINKPAY. A modal will open asking for your API key.

One connection, many Zaps

You only need to connect your BINKPAY account once. Once authenticated, you can reuse the same connection across all your Zaps without re-entering your API key.3

Locate your BINKPAY API key

In a separate browser tab, open the BINKPAY Dashboard → Developer → API Keys. Copy a live secret key (sk_live_...) for production, or a test key (sk_test_...) for development. If no key exists, click Generate New Key, give it a descriptive label such as Zapier Integration, and copy it immediately — it will not be shown again in full.

Paste your API key and confirm

Paste the copied API key into the Zapier authentication modal and click Yes, Continue to BINKPAY. Zapier will validate the key against the BINKPAY API. On success, the modal closes and your BINKPAY account appears in the connected accounts list.

Keep your API key secret

Your secret API key grants full access to your BINKPAY account. Never share it in public repositories, Slack messages, or browser-side code. If a key is compromised, revoke it immediately in the Dashboard and generate a replacement.5

Select your trigger event and test the connection

After connecting, Zapier will prompt you to choose a trigger event (see Available Trigger Events below). Select the event you want to listen for and click Test trigger. Zapier will fetch a recent sample payload from your BINKPAY account to confirm the connection is working. If no recent events exist, trigger a test payment or refund in your BINKPAY Dashboard first.

Available trigger events

Each trigger event corresponds to a BINKPAY webhook event. When you create a Zap with one of these triggers, BINKPAY automatically registers a webhook subscription for that event type and routes payloads to Zapier.

payment.succeeded

Payment Succeeded

Fires when a payment is successfully captured. The payload includes the payment amount, currency, customer email, customer name, card brand, last 4 digits, receipt URL, and any metadata attached to the payment.

payment.failed

Payment Failed

Fires when a payment attempt is declined or fails processing. Includes the error code (e.g., insufficient_funds, card_declined, expired_card), a human-readable error message, and the attempted amount and currency.

refund.created

Refund Created

Fires when a refund is initiated, either from the Dashboard or via the API. Includes the original payment ID, refund amount, refund reason, and the customer's email and name.

dispute.created

Dispute Created

Fires when a chargeback or payment dispute is opened by a cardholder. Includes the dispute ID, disputed amount, currency, reason code, and the response deadline date. Act promptly — most card networks require evidence within 7–21 days.

invoice.paid

Invoice Paid

Fires when a BINKPAY Invoice is paid in full. Includes the invoice ID, invoice number, line items array (with name, quantity, and unit amount), subtotal, tax, total, and customer details.

payout.completed

Payout Completed

Fires when a payout to your linked bank account is completed. Includes the payout amount, currency, bank reference number, and the period the payout covers. Use this trigger to reconcile your internal accounting records.

Webhook payload examples

The following are realistic JSON payloads that BINKPAY delivers to Zapier for each event type. Zapier parses these automatically and makes every nested field available as a mappable data token in your Zap actions.

payment.succeeded

json
{
 "id": "evt_01HXYZ9K3M2P4Q5R6S7T8U9V0W",
 "type": "payment.succeeded",
 "created_at": "2025-11-04T14:32:07Z",
 "api_version": "2025-01",
 "environment": "live",
 "data": {
 "payment": {
 "id": "pay_01HXYZ7A2B3C4D5E6F7G8H9I0J",
 "status": "succeeded",
 "amount": 12000,
 "amount_received": 12000,
 "currency": "USD",
 "description": "Annual Pro Plan",
 "payment_method": {
 "type": "card",
 "brand": "visa",
 "last4": "4242",
 "exp_month": 8,
 "exp_year": 2027,
 "funding": "credit"
 },
 "customer": {
 "id": "cus_01HXYZ1A2B3C4D5E6F7G8H9I",
 "email": "alex.morgan@example.com",
 "name": "Alex Morgan"
 },
 "payment_link_id": "pl_01HXYZ3A2B3C4D5E6F7G8H9I",
 "receipt_url": "https://receipts.binkpay.net/r/pay_01HXYZ7A2B3C4D5E6F7G8H9I0J",
 "metadata": {
 "source": "zapier",
 "campaign": "black_friday_2025"
 },
 "created_at": "2025-11-04T14:31:59Z"
 }
 }
}

refund.created

json
{
 "id": "evt_01HYAB1C2D3E4F5G6H7I8J9K0L",
 "type": "refund.created",
 "created_at": "2025-11-05T09:14:22Z",
 "api_version": "2025-1",
 "environment": "live",
 "data": {
 "refund": {
 "id": "ref_01HYAB2C3D4E5F6G7H8I9J0K1L",
 "status": "pending",
 "amount": 12000,
 "currency": "USD",
 "reason": "requested_by_customer",
 "reason_description": "Customer requested cancellation within 30-day window",
 "payment_id": "pay_01HXYZ7A2B3C4D5E6F7G8H9I0J",
 "customer": {
 "id": "cus_01HXYZ1A2B3C4D5E6F7G8H9I",
 "email": "alex.morgan@example.com",
 "name": "Alex Morgan"
 },
 "metadata": {},
 "created_at": "2025-11-05T09:14:20Z",
 "estimated_arrival": "2025-11-08T00:00:00Z"
 }
 }
}

Amounts are in minor units

All monetary amounts in BINKPAY payloads are expressed in the smallest unit of the currency — cents for USD, fils for AED, piastres for EGP, and so on. An

amount

12000

currency: "USD"

Setting up a Zap

The following walkthrough creates a complete Zap that listens for successful payments, sends a Slack notification to your team, and logs each payment to a Google Sheet. This pattern covers the most common BINKPAY + Zapier use case and can be extended with additional actions.

Set up the trigger: BINKPAY → payment.succeeded

Create a new Zap and connect BINKPAY as the trigger app. Select Payment Succeeded as the trigger event. After authenticating and testing the trigger, Zapier will display a sample payment.succeeded payload. You'll use fields from this payload (such as data.payment.customer.email and data.payment.amount) to map into the downstream actions.

Add Action 1: Send a Slack message

Click + to add an action. Search for Slack and choose the Send Channel Message action. Authenticate with your Slack workspace, then configure the message:

  • Channel: #payments
  • Message Text: 💳 New payment from {{data__payment__customer__name}} ({{data__payment__customer__email}}): ${{data__payment__amount_received}} {{data__payment__currency}}. Payment ID: {{data__payment__id}}.

Click Test action to send a sample message to Slack and confirm the field mappings look correct.

Add Action 2: Update a Google Sheets row

Click + to add a second action. Search for Google Sheets and choose Create Spreadsheet Row. Authenticate with your Google account, then select your payments tracking spreadsheet and worksheet. Map the following columns:

Sheet ColumnBINKPAY Field
Payment ID{{data__payment__id}}
Date{{data__payment__created_at}}
Customer Email{{data__payment__customer__email}}
Amount{{data__payment__amount_received}}
Currency{{data__payment__currency}}
Card Brand{{data__payment__payment_method__brand}}
Receipt URL{{data__payment__receipt_url}}

Name and publish your Zap

Give your Zap a descriptive name such as BINKPAY Payment Succeeded → Slack + Google Sheets. Click Publish to activate it. From this point, every successful payment on your BINKPAY account will automatically post a Slack notification and log a row in your Google Sheet — with no code required.

Filter by currency or amount

Add a Zapier Filter step between the trigger and your actions to only run the Zap for payments above a certain amount or in a specific currency. Use the condition data__payment__currency exactly matches USD, for example.

Retry behavior

Zapier provides built-in retry logic for failed Zap runs. If an action in your Zap fails — for example, Slack is temporarily unavailable or a Google Sheets API rate limit is hit — Zapier will automatically retry the failed step with exponential backoff for up to 7 days.

Each failed Zap run is logged in Zapier → Zap History with the full error message and the exact payload that triggered it. You can manually replay any failed run from the history view after the underlying issue is resolved.

Retry attemptWait before retry
1st retry15 minutes
2nd retry30 minutes
3rd retry2 hours
4th–nth retryContinues with increasing intervals up to 7 days total

BINKPAY does not perform additional retries on top of Zapier's retry mechanism. If a webhook is not acknowledged by Zapier within the initial delivery window, BINKPAY marks the delivery as failed and Zapier's retry queue takes over.

Available actions

In addition to triggers, the BINKPAY Zapier app exposes actions — operations you can perform on your BINKPAY account as part of a Zap. Use these as action steps, triggered by other apps (for example, create a BINKPAY Payment Link when a new row is added to a Google Sheet).

Create Payment Link

Creates a new BINKPAY Payment Link with a specified amount, currency, description, and optional expiry date. Returns the payment link URL and ID, which can be passed to downstream actions (e.g., send the link via email using Gmail or Outlook).

Required / optional fields: Amount, currency, description, redirect URL, expiry date (optional), metadata (optional)

Create Invoice

Creates a BINKPAY Invoice and optionally sends it directly to a customer email. Supports multiple line items, tax rates, due dates, and custom notes. Returns the invoice ID, invoice number, and a hosted invoice URL.

Required / optional fields: Customer email, line items (name, quantity, unit amount), currency, due date, tax rate, notes

Void Payment

Voids a previously authorized payment that has not yet been captured. Cannot be used on already-captured or settled payments — use the Refund API for those. Accepts a payment ID and an optional void reason.

Required / optional fields: Payment ID, void reason (optional)

Testing your Zap

Always test your Zap with a test-mode BINKPAY API key (sk_test_...) before enabling it in production. Testing in Zapier involves two phases:

  1. Trigger test: In the Zap editor, click Test trigger. Zapier will fetch recent events from your BINKPAY account using the connected API key. If your account has no recent events, generate one by creating a test payment in the BINKPAY Dashboard under Developer → Test Payments.
  2. Action test: After confirming the trigger payload, click Test action for each action step. This sends a real request to the downstream app (Slack, Google Sheets, etc.) using the test payload data. Verify the output in the destination app before publishing.
  3. End-to-end test: With the Zap published (set to On), trigger a real test payment using card number 4242 4242 4242 4242 in the BINKPAY sandbox. Watch Zapier → Zap History to confirm the Zap fires and all actions complete successfully.

Switch keys before going live

When you're ready to accept real payments, update your Zapier BINKPAY connection to use a live API key (sk_live_...). In Zapier, go to Apps → BINKPAY → Edit Connection and replace the API key. All Zaps using that connection will immediately start receiving live events.

Troubleshooting

"Test trigger" returns no data or shows "We couldn't find any data"

Zapier polls for recent events when you test a trigger. If your BINKPAY account has no events of the selected type in the past 24 hours, the test will return empty.

  • Manually trigger the event type in BINKPAY: go to Developer → Test Payments and create a test transaction that will produce the event (e.g., a successful payment for payment.succeeded).
  • After triggering the event, return to Zapier and click Test trigger again. Zapier will now find the new event.
  • Confirm your API key environment matches your event source — a sk_test_... key will only see test-mode events, not live payments.

Zap runs are failing with "Authentication failed" or "Invalid API key"

This error occurs when the BINKPAY API key stored in Zapier is invalid, revoked, or has been rotated without updating the Zapier connection.

  • Go to Zapier → Apps → BINKPAY → Edit Connection and verify the API key. Re-enter or replace it with a valid key from BINKPAY Dashboard → Developer → API Keys.
  • If the key was recently revoked in the BINKPAY Dashboard, generate a new one with the label Zapier, copy it, and update the Zapier connection.
  • Confirm the key has not been restricted to specific IP addresses. Zapier's infrastructure uses a range of IP addresses that must be whitelisted if you've enabled IP restrictions in BINKPAY.

Live payments are occurring in BINKPAY but the Zap is not firing

The Zap may be turned off, the webhook subscription may have been deregistered, or the Zap may be running but failing silently due to a downstream action error.

  • Confirm the Zap is turned On in Zapier. A Zap in draft or paused state will not receive events.
  • Check Zapier → Zap History to see if the Zap has fired but one of the action steps failed. Failed runs appear in red with a detailed error message.
  • In the BINKPAY Dashboard, go to Developer → Webhook Logs and filter by your Zapier endpoint URL. If deliveries show as failed, the endpoint may be timing out — contact Zapier support if the issue persists.
  • Reconnect the BINKPAY app in Zapier by going to Apps → BINKPAY → Reconnect. This re-registers the webhook subscription with BINKPAY.

← Squarespace Integration

Webhooks Reference →

Was this page helpful?