Tap ensures secure and realtime webhooks for payment events, and to send the post payment details.
Payments webhook is a server-to-server call(also known as IPN "Instant Payment Notification"), that allows merchants to receive the post-payment details to automate and synchronize their internal ERPs by checking the actual payment status and other technical details, as per requirements.
It's supported with all our APIs, SDKs & Libraries where it is required to be.
Tap also triggers the webhooks for different payment events, such as when a payment is completed, when a customer views a bill, when a recurring payment occurred, etc.
Webhook Requires
Following the steps below
Merchants need to create their own endpoint server page(usually with the post method) which can receive the webhooks.
Make sure your endpoint URL is active and working smoothly, and ready to accept webhooks.
Define the webhook endpoint URL in the API/SDK call (parameter POST:"url"), when required.
Webhooks refer to a combination of elements that collectively create a notification and reaction system within a larger integration.
Metaphorically, webhooks are like a phone number that Tap calls to notify you of activity in your payment transaction lifecycle. The activity could be the completion of payment or a successful charge within a Subscription. The webhook endpoint is the person answering that call who takes actions based on the specific information it receives.
Non-metaphorically, the webhook endpoint is just more code on your server, which could be written in Ruby, PHP, Node.js, or whatever. The webhook endpoint has an associated URL (e.g., https://example.com/webhooks). The Tap notifications are Event objects. This Event object contains all the relevant parameters of the API response, including the amount, currency, transaction reference, and status of the transaction. The webhook endpoint uses the charge details to take any required actions, such as indicating that the payment is completed.
When to use webhooks
Many events that occur within a Tap account have synchronous results–immediate and direct–to an executed request. For example, a successful request to create a customer immediately returns a Customer object. Such requests don’t require webhooks, as the key information is already available.
Other events that occur within a Tap Payment Ecosystem are asynchronous: happening at a later time and not directly in response to your code’s execution. Most commonly these involve:
The completion of a Charge Transaction
The payment of a due Invoice
Individual Charges within a Subscription
With these and similar APIs, Tap needs to notify your integration about changes to the status of an object so your integration can take subsequent steps.
The specific actions your webhook endpoint may take differs based upon the event. Some examples include:
Updating a customer’s payment record in your database when a subscription payment succeeds
Making adjustments to an invoice when it’s attempted (but before it’s been paid)
Logging an accounting entry when an invoice is paid
Webhooks can also be used to provide state and API responses to services or systems that use Tap data for things like replication, analytics, or alerting.
📘
Best Practice
In case, after a successful payment capture, if the user closes the browser or if the internet connection is not available till the customer is redirected back to the Merchant Website/App, POST URL is a sure mechanism to get notified of the final payment status. Although POST URL is optional, we highly recommend implementing it.
❗️
Important notes
1- If the POST URL is not accessible, the posting of the response payload will be failed. There will be two more retry attempts before the status of the POST is updated as ERROR. You can find the POST status in the API Response
2- Only raw data will be posted, make sure to send raw data to the POST URL. The URL should accept post data for captured or failed transactions only , if the transaction status is INITIATED or ABANDONED no data will be posted and post status will be PENDING.
3- The post data cannot be posted to local host. If the data did not reach the URL it will show Error.
4- If the post data are not received on post URL , check the SSLS ,if you are using open source certificate, you will not be able to post the response on your website.
You can ensure the secure webhook by calculating the "Hashstring" value received in the headers. If the 'hashstring' value match with the calculated value, means the post is secure and received by the Tap side.
Calculating and validating a hashstring
Collect the below values from the posted response (charge / authorize / invoice response)
Variable
Object
Description
id
charge/authorize/invoice
charge.id or authorize.id or invoice.id
amount
charge/authorize/invoice
charge.amount or authorize.amount or invoice.amount
Amount should be rounded with standard decimal value
charge.currency or authorize.currency or invoice.currency
gateway_reference
charge/authorize
charge.reference.gateway or authorize.reference.gateway
payment_reference
charge/authorize
charge.reference.payment or authorize.reference.payment
updated
invoice
invoice.updated
status
charge/authorize/invoice
charge.status or authorize.status or invoice.status
created
charge/authorize/invoice
charge.transaction.created or authorize.transaction.created or invoice.created
<?php
// Get the passed data from the post response (charge / authorize / refund / invoice response)
$id = 'charge.id or authorize.id or refund.id or invoice.id';
$amount = 'charge.amount or authorize.amount or refund.amount or invoice.amount';
$currency = 'charge.currency or authorize.currency or refund.currency or invoice.currency';
$gateway_reference = 'charge.reference.gateway or authorize.reference.gateway or refund.reference.gateway';
$payment_reference = 'charge.reference.payment or authorize.reference.payment or refund.reference.payment';
$updated = 'invoice.updated';
$status = 'charge.status or authorize.status or refund.status or invoice.status';
$created = 'charge.transaction.created or authorize.transaction.created or refunud.created or invoice.created';
// Your Secret API Key Provided by Tap
$SecretAPIKey = "sk_test_XKokBfNWv6FIYuTMg5sLPjhJ";
// Charges - Create a hashstring from the posted response data + the data that are related to you.
$toBeHashedString = 'x_id' . $id . 'x_amount' . $amount . 'x_currency' . $currency . 'x_gateway_reference' . $gateway_reference . 'x_payment_reference' . $payment_reference . 'x_status' . $status . 'x_created' . $created . '';
// Authorize or Void - Create a hashstring from the posted response data + the data that are related to you.
$toBeHashedString = "x_id" . $id . "x_amount" . $amount . "x_currency" . $currency . "x_gateway_reference" . $gateway_reference . "x_payment_reference" . $payment_reference . "x_status" . $status . "x_created" . $created . '';
// Refund - Create a hashstring from the posted response data + the data that are related to you.
$toBeHashedString = "x_id" . $id . "x_amount" . $amount . "x_currency" . $currency . "x_gateway_reference" . $gateway_reference . "x_payment_reference" . $payment_reference . "x_status" . $status . "x_created" . $created . '';
// Invoice - Create a hashstring from the posted response data + the data that are related to you.
$toBeHashedString = 'x_id' . $id . 'x_amount' . $amount . 'x_currency' . $currency . 'x_updated' . $updated . 'x_status' . $status . 'x_created' . $created . '';
// Create your hashstring by passing concatinated string and your secret API Key
$myHashString = hash_hmac('sha256', $toBeHashedString, $SecretAPIKey);
// Legitimate the post request by comparing the hashstring you computed with the one posted in the header
if ($myHashString == $postedHashString) {
echo "Secure Post";
} else {
echo "Insecure Post";
}
👍
Best Practise
While computing the hash string ensure that all parameters used are following the exact parameter specifications. The amount should be rounded with the standard decimal value (ISO Standard Currency Codes).
Updated about 1 month ago
\n## Webhook Requires\n\nFollowing the steps below\n\n1. Merchants need to create their own endpoint server page(usually with the post method) which can receive the webhooks.\n2. Make sure your endpoint URL is active and working smoothly, and ready to accept webhooks.\n3. Define the webhook endpoint URL in the API/SDK call (parameter POST:\"url\"), when required. \n\n```json\n{\n\"post\": {\n \"url\": \"https://webhook.site/fd8b0712-d70a-4280-8d6f-9f14407b3bbd\"\n },\n}\n```\n\n\n\n## What are webhooks\n\nWebhooks refer to a combination of elements that collectively create a notification and reaction system within a larger integration.\n\nMetaphorically, webhooks are like a phone number that Tap calls to notify you of activity in your payment transaction lifecycle. The activity could be the completion of payment or a successful charge within a Subscription. The webhook endpoint is the person answering that call who takes actions based on the specific information it receives.\n\nNon-metaphorically, the webhook endpoint is just more code on your server, which could be written in Ruby, PHP, Node.js, or whatever. The webhook endpoint has an associated URL (e.g., [https://example.com/webhooks](https://example.com/webhooks)). The Tap notifications are Event objects. This Event object contains all the relevant parameters of the API response, including the amount, currency, transaction reference, and status of the transaction. The webhook endpoint uses the charge details to take any required actions, such as indicating that the payment is completed.\n\n## When to use webhooks\n\nMany events that occur within a Tap account have synchronous results–immediate and direct–to an executed request. For example, a successful request to create a customer immediately returns a Customer object. Such requests don’t require webhooks, as the key information is already available.\n\nOther events that occur within a Tap Payment Ecosystem are asynchronous: happening at a later time and not directly in response to your code’s execution. Most commonly these involve:\n\nThe completion of a Charge Transaction\\\nThe payment of a due Invoice\\\nIndividual Charges within a Subscription\n\nWith these and similar APIs, Tap needs to notify your integration about changes to the status of an object so your integration can take subsequent steps.\n\nThe specific actions your webhook endpoint may take differs based upon the event. Some examples include:\n\nUpdating a customer’s payment record in your database when a subscription payment succeeds\\\nMaking adjustments to an invoice when it’s attempted (but before it’s been paid)\\\nLogging an accounting entry when an invoice is paid\n\nWebhooks can also be used to provide state and API responses to services or systems that use Tap data for things like replication, analytics, or alerting.\n\n> 📘 Best Practice\n>\n> In case, after a successful payment capture, if the user closes the browser or if the internet connection is not available till the customer is redirected back to the Merchant Website/App, POST URL is a sure mechanism to get notified of the final payment status. Although POST URL is optional, we highly recommend implementing it.\n\n> ❗️ Important notes\n>\n> 1- If the POST URL is not accessible, the posting of the response payload will be failed. There will be two more retry attempts before the status of the POST is updated as ERROR. You can find the POST status in the API Response\n>\n> 2- Only raw data will be posted, make sure to send raw data to the POST URL. The URL should accept post data for captured or failed transactions only , if the transaction status is INITIATED or ABANDONED no data will be posted and post status will be PENDING.\n>\n> 3- The post data cannot be posted to local host. If the data did not reach the URL it will show Error.\n>\n> 4- If the post data are not received on post URL , check the SSLS ,if you are using open source certificate, you will not be able to post the response on your website.\n\n## Webhook Example for a Charges Response\n\n```json\n{\n \"method\": \"POST\",\n \"url\": \"https://webhook.site/25c5e885-216b-4d5f-bcbf-8e5d0d20b76f\",\n \"headers\": [\n {\n \"name\": \"connection\",\n \"value\": \"close\"\n },\n {\n \"name\": \"accept-encoding\",\n \"value\": \"gzip,deflate\"\n },\n {\n \"name\": \"user-agent\",\n \"value\": \"Apache-HttpClient/4.5.13 (Java/18.0.2.1)\"\n },\n {\n \"name\": \"host\",\n \"value\": \"webhook.site\"\n },\n {\n \"name\": \"content-length\",\n \"value\": \"2480\"\n },\n {\n \"name\": \"hash\",\n \"value\": \"12dd1ed1008db28cfac344993564cc71da813a98b5c80d892744ee9bc3d8e76d\"\n },\n {\n \"name\": \"hashstring\",\n \"value\": \"356f77b65c5fc809ce5f1f6e2279932949ca86833867f6da5dbb92800df6238f\"\n },\n {\n \"name\": \"content-type\",\n \"value\": \"application/json\"\n },\n {\n \"name\": \"accept\",\n \"value\": \"text/plain, application/json, application/cbor, application/*+json, */*\"\n }\n ],\n \"bodySize\": 2480,\n \"postData\": {\n \"mimeType\": \"application/json\",\n \"text\": \"{\\\"id\\\":\\\"chg_TS05A4120230736x9K22710693\\\",\\\"object\\\":\\\"charge\\\",\\\"live_mode\\\":false,\\\"customer_initiated\\\":true,\\\"api_version\\\":\\\"V2\\\",\\\"method\\\":\\\"POST\\\",\\\"status\\\":\\\"CAPTURED\\\",\\\"amount\\\":1.0,\\\"currency\\\":\\\"SAR\\\",\\\"threeDSecure\\\":true,\\\"card_threeDSecure\\\":false,\\\"save_card\\\":true,\\\"merchant_id\\\":\\\"\\\",\\\"product\\\":\\\"\\\",\\\"description\\\":\\\"\\\",\\\"metadata\\\":{\\\"udf1\\\":\\\"test_data_1\\\",\\\"udf2\\\":\\\"test_data_2\\\",\\\"udf3\\\":\\\"test_data_3\\\"},\\\"transaction\\\":{\\\"timezone\\\":\\\"UTC+03:00\\\",\\\"created\\\":\\\"1698392202943\\\",\\\"expiry\\\":{\\\"period\\\":30,\\\"type\\\":\\\"MINUTE\\\"},\\\"asynchronous\\\":false,\\\"amount\\\":1.0,\\\"currency\\\":\\\"SAR\\\"},\\\"reference\\\":{\\\"track\\\":\\\"tck_TS04A4320230736To522710661\\\",\\\"payment\\\":\\\"4327230736106619650\\\",\\\"gateway\\\":\\\"mada_pg70983e7a-a686-40ba-83e2-c5e9f4074fe5\\\",\\\"acquirer\\\":\\\"230004002581\\\",\\\"transaction\\\":\\\"txn_0001\\\",\\\"order\\\":\\\"ord_0001\\\"},\\\"response\\\":{\\\"code\\\":\\\"000\\\",\\\"message\\\":\\\"Captured\\\"},\\\"security\\\":{\\\"threeDSecure\\\":{\\\"status\\\":\\\"Y\\\"}},\\\"gateway\\\":{\\\"response\\\":{\\\"code\\\":\\\"000\\\",\\\"message\\\":\\\"Approved\\\"}},\\\"card\\\":{\\\"id\\\":\\\"card_IIGi4523416sFHe27jJ9E589\\\",\\\"object\\\":\\\"card\\\",\\\"first_six\\\":\\\"446404\\\",\\\"first_eight\\\":\\\"44640400\\\",\\\"scheme\\\":\\\"MADA\\\",\\\"brand\\\":\\\"VISA\\\",\\\"last_four\\\":\\\"0007\\\"},\\\"receipt\\\":{\\\"id\\\":\\\"204327230736104914\\\",\\\"email\\\":true,\\\"sms\\\":true},\\\"customer\\\":{\\\"id\\\":\\\"cus_TS07A5420232136o2K52709053\\\",\\\"first_name\\\":\\\"Majdi\\\",\\\"middle_name\\\":\\\"Abdullah\\\",\\\"last_name\\\":\\\"Al Khowaiter\\\",\\\"email\\\":\\\"m.ghgjhgj@tap.company\\\",\\\"phone\\\":{\\\"country_code\\\":\\\"966\\\",\\\"number\\\":\\\"51234567\\\"}},\\\"merchant\\\":{\\\"country\\\":\\\"SA\\\",\\\"currency\\\":\\\"SAR\\\",\\\"id\\\":\\\"25145693\\\"},\\\"source\\\":{\\\"object\\\":\\\"token\\\",\\\"type\\\":\\\"CARD_NOT_PRESENT\\\",\\\"payment_type\\\":\\\"DEBIT\\\",\\\"payment_method\\\":\\\"MADA\\\",\\\"channel\\\":\\\"INTERNET\\\",\\\"id\\\":\\\"tok_nLKq4223436fVYL27Nj9P855\\\"},\\\"redirect\\\":{\\\"status\\\":\\\"PENDING\\\",\\\"url\\\":\\\"http://your_website.com/redirecturl\\\"},\\\"post\\\":{\\\"attempt\\\":1,\\\"status\\\":\\\"PENDING\\\",\\\"url\\\":\\\"https://webhook.site/25c5e885-216b-4d5f-bcbf-8e5d0d20b76f\\\"},\\\"activities\\\":[{\\\"id\\\":\\\"activity_TS03A4420230736Rb512710536\\\",\\\"object\\\":\\\"activity\\\",\\\"created\\\":1698392202943,\\\"status\\\":\\\"INITIATED\\\",\\\"currency\\\":\\\"SAR\\\",\\\"amount\\\":1.0,\\\"remarks\\\":\\\"charge - created\\\"},{\\\"id\\\":\\\"activity_TS07A1320230737j1H42710453\\\",\\\"object\\\":\\\"activity\\\",\\\"created\\\":1698392233453,\\\"status\\\":\\\"CAPTURED\\\",\\\"currency\\\":\\\"SAR\\\",\\\"amount\\\":1.0,\\\"remarks\\\":\\\"charge - captured\\\"}],\\\"auto_reversed\\\":false,\\\"payment_agreement\\\":{\\\"id\\\":\\\"payment_agreement_23Ah4423436I5R027SS9c330\\\",\\\"amount_variability\\\":\\\"VARIABLE\\\",\\\"type\\\":\\\"UNSCHEDULED\\\",\\\"total_payments_count\\\":1,\\\"contract\\\":{\\\"id\\\":\\\"card_IIGi4523416sFHe27jJ9E589\\\",\\\"customer_id\\\":\\\"cus_TS07A5420232136o2K52709053\\\",\\\"type\\\":\\\"SAVED_CARD\\\"},\\\"metadata\\\":{\\\"txn_type\\\":\\\"CHARGE\\\",\\\"txn_id\\\":\\\"chg_TS05A4120230736x9K22710693\\\",\\\"terminal_id\\\":\\\"ter_g6P51020221643Rj631205942\\\"}}}\"\n }\n}\n```\n\n## Webhook Example for an Authorize Response\n\n```json\n{\n \"method\": \"POST\",\n \"url\": \"https://webhook.site/25c5e885-216b-4d5f-bcbf-8e5d0d20b76f\",\n \"headers\": [\n {\n \"name\": \"connection\",\n \"value\": \"close\"\n },\n {\n \"name\": \"accept-encoding\",\n \"value\": \"gzip,deflate\"\n },\n {\n \"name\": \"user-agent\",\n \"value\": \"Apache-HttpClient/4.5.13 (Java/18.0.2.1)\"\n },\n {\n \"name\": \"host\",\n \"value\": \"webhook.site\"\n },\n {\n \"name\": \"content-length\",\n \"value\": \"2188\"\n },\n {\n \"name\": \"hashstring\",\n \"value\": \"da91e16a4c840a3c9826e454b255d1980cb9d95e5b783ed3d2c0e69b1b774f29\"\n },\n {\n \"name\": \"content-type\",\n \"value\": \"application/json\"\n },\n {\n \"name\": \"accept\",\n \"value\": \"text/plain, application/json, application/cbor, application/*+json, */*\"\n }\n ],\n \"bodySize\": 2188,\n \"postData\": {\n \"mimeType\": \"application/json\",\n \"text\": \"{\\\"id\\\":\\\"auth_TS04A1720230745Rt2a2710607\\\",\\\"object\\\":\\\"authorize\\\",\\\"customer_initiated\\\":true,\\\"authorize_debit\\\":false,\\\"live_mode\\\":false,\\\"api_version\\\":\\\"V2\\\",\\\"status\\\":\\\"AUTHORIZED\\\",\\\"amount\\\":100.0,\\\"currency\\\":\\\"SAR\\\",\\\"threeDSecure\\\":true,\\\"save_card\\\":true,\\\"merchant_id\\\":\\\"\\\",\\\"product\\\":\\\"\\\",\\\"transaction\\\":{\\\"authorization_id\\\":\\\"125468\\\",\\\"timezone\\\":\\\"UTC+03:00\\\",\\\"created\\\":\\\"1698392719404\\\",\\\"expiry\\\":{\\\"period\\\":30,\\\"type\\\":\\\"MINUTE\\\"},\\\"asynchronous\\\":false,\\\"amount\\\":100.0,\\\"currency\\\":\\\"SAR\\\"},\\\"reference\\\":{\\\"track\\\":\\\"tck_TS02A2020230745q4MN2710966\\\",\\\"payment\\\":\\\"2027230745109668360\\\",\\\"gateway\\\":\\\"123456789\\\",\\\"acquirer\\\":\\\"330004125468\\\",\\\"transaction\\\":\\\"txn_0001\\\",\\\"order\\\":\\\"ord_0001\\\"},\\\"response\\\":{\\\"code\\\":\\\"001\\\",\\\"message\\\":\\\"Authorized\\\"},\\\"security\\\":{\\\"threeDSecure\\\":{\\\"id\\\":\\\"3ds_TS05A1920230745Tb452710404\\\",\\\"status\\\":\\\"Y\\\"}},\\\"acquirer\\\":{\\\"response\\\":{\\\"code\\\":\\\"00\\\",\\\"message\\\":\\\"Approved\\\"}},\\\"gateway\\\":{\\\"response\\\":{\\\"code\\\":\\\"0\\\",\\\"message\\\":\\\"Transaction Approved\\\"}},\\\"card\\\":{\\\"id\\\":\\\"card_2V741723717UcVF17Yh9O354\\\",\\\"object\\\":\\\"card\\\",\\\"first_six\\\":\\\"512345\\\",\\\"first_eight\\\":\\\"51234500\\\",\\\"scheme\\\":\\\"MASTERCARD\\\",\\\"brand\\\":\\\"MASTERCARD\\\",\\\"last_four\\\":\\\"0008\\\"},\\\"receipt\\\":{\\\"id\\\":\\\"202127230745103892\\\",\\\"email\\\":true,\\\"sms\\\":true},\\\"customer\\\":{\\\"id\\\":\\\"cus_TS02A4520230208p3P21710602\\\",\\\"first_name\\\":\\\"Majdi\\\",\\\"middle_name\\\":\\\"Alal\\\",\\\"last_name\\\":\\\"Alal\\\",\\\"email\\\":\\\"m.ghgjhgj@tap.company\\\",\\\"phone\\\":{\\\"country_code\\\":\\\"966\\\",\\\"number\\\":\\\"51234567\\\"}},\\\"source\\\":{\\\"object\\\":\\\"token\\\",\\\"type\\\":\\\"CARD_NOT_PRESENT\\\",\\\"payment_type\\\":\\\"CREDIT\\\",\\\"payment_method\\\":\\\"MASTERCARD\\\",\\\"channel\\\":\\\"INTERNET\\\",\\\"id\\\":\\\"tok_udpI1923445Jo1b27mi9I282\\\"},\\\"redirect\\\":{\\\"status\\\":\\\"PENDING\\\",\\\"url\\\":\\\"http://your_website.com/redirecturl\\\"},\\\"post\\\":{\\\"status\\\":\\\"PENDING\\\",\\\"url\\\":\\\"https://webhook.site/25c5e885-216b-4d5f-bcbf-8e5d0d20b76f\\\"},\\\"auto\\\":{\\\"status\\\":\\\"SCHEDULED\\\",\\\"type\\\":\\\"VOID\\\",\\\"time\\\":1},\\\"merchant\\\":{\\\"id\\\":\\\"25145693\\\"},\\\"description\\\":\\\"\\\",\\\"metadata\\\":{\\\"udf1\\\":\\\"test_data_1\\\",\\\"udf2\\\":\\\"test_data_2\\\",\\\"udf3\\\":\\\"test_data_3\\\"},\\\"payment_agreement\\\":{\\\"id\\\":\\\"payment_agreement_u6Xt2123445zy0z27yY9m684\\\",\\\"type\\\":\\\"UNSCHEDULED\\\",\\\"total_payments_count\\\":1,\\\"contract\\\":{\\\"id\\\":\\\"card_2V741723717UcVF17Yh9O354\\\",\\\"customer_id\\\":\\\"cus_TS02A4520230208p3P21710602\\\",\\\"type\\\":\\\"SAVED_CARD\\\"},\\\"metadata\\\":{\\\"txn_type\\\":\\\"AUTHORIZE\\\",\\\"txn_id\\\":\\\"auth_TS04A1720230745Rt2a2710607\\\",\\\"terminal_id\\\":\\\"ter_m1RM0420211322p4PH1002445\\\"}}}\"\n }\n}\n```\n\n## Validate the webhook (hashstring)\n\nYou can ensure the secure webhook by calculating the \"Hashstring\" value received in the headers. If the 'hashstring' value match with the calculated value, means the post is secure and received by the Tap side. \n\n**Calculating and validating a hashstring**\n\nCollect the below values from the posted response (charge / authorize / invoice response)\n\n
\n \n
\n
\n Variable\n
\n\n
\n Object\n
\n\n
\n Description\n
\n
\n \n\n \n
\n
\n id\n
\n\n
\n charge/authorize/invoice\n
\n\n
\n charge.id or authorize.id or invoice.id\n
\n
\n\n
\n
\n amount\n
\n\n
\n charge/authorize/invoice\n
\n\n
\n charge.amount or authorize.amount or invoice.amount\\\n Amount should be rounded with standard decimal value \n\n (Ex: AED - 2.00, BHD - 3.000, KWD - 3.000, OMR - 3.000, QAR - 2.00, SAR - 2.00, USD - 2.00, EUR - 2.00, GBP - 2.00, EGP - 2.00)\n
\n
\n\n
\n
\n currency\n
\n\n
\n charge/authorize/invoice\n
\n\n
\n charge.currency or authorize.currency or invoice.currency\n
\n
\n\n
\n
\n gateway\\_reference\n
\n\n
\n charge/authorize\n
\n\n
\n charge.reference.gateway or authorize.reference.gateway\n
\n
\n\n
\n
\n payment\\_reference\n
\n\n
\n charge/authorize\n
\n\n
\n charge.reference.payment or authorize.reference.payment\n
\n
\n\n
\n
\n updated\n
\n\n
\n invoice\n
\n\n
\n invoice.updated\n
\n
\n\n
\n
\n status\n
\n\n
\n charge/authorize/invoice\n
\n\n
\n charge.status or authorize.status or invoice.status\n
\n
\n\n
\n
\n created\n
\n\n
\n charge/authorize/invoice\n
\n\n
\n charge.transaction.created or authorize.transaction.created or invoice.created\n
\n
\n \n
\n\n```php\n 👍 Best Practise\n>\n> While computing the hash string ensure that all parameters used are following the exact parameter specifications. The amount should be rounded with the standard decimal value (ISO Standard Currency Codes).","excerpt":"Tap ensures secure and realtime webhooks for payment events, and to send the post payment details.","link":{"url":null,"new_tab":false},"next":{"description":null,"pages":[]}},"metadata":{"description":null,"image":{"uri":null,"url":null},"keywords":null,"title":null},"parent":{"uri":null},"privacy":{"view":"public"},"slug":"webhook","state":"current","title":"Webhook","type":"basic","href":{"dash":"https://dash.readme.com/project/tappayments/v1.0/docs/webhook","hub":"https://developers.tap.company/docs/webhook"},"links":{"project":"/projects/me"},"project":{"name":"Tap API Docs 1.0","subdomain":"tappayments","uri":"/projects/me"},"renderable":{"status":true},"updated_at":"2025-06-15T08:55:33.064Z","uri":"/branches/1.0/guides/webhook"},"meta":{"baseUrl":"/","description":"Tap ensures secure and realtime webhooks for payment events, and to send the post payment details.","hidden":false,"image":[],"metaTitle":"Webhook","robots":"index","slug":"webhook","title":"Webhook","type":"docs"},"rdmd":{"baseUrl":"/","body":"Payments webhook is a server-to-server call(also known as IPN \"Instant Payment Notification\"), that allows merchants to receive the post-payment details to automate and synchronize their internal ERPs by checking the actual payment status and other technical details, as per requirements. \n\nIt's supported with all our APIs, SDKs & Libraries where it is required to be.\n\nTap also triggers the webhooks for different payment events, such as when a payment is completed, when a customer views a bill, when a recurring payment occurred, etc.\n\n\n## Webhook Requires\n\nFollowing the steps below\n\n1. Merchants need to create their own endpoint server page(usually with the post method) which can receive the webhooks.\n2. Make sure your endpoint URL is active and working smoothly, and ready to accept webhooks.\n3. Define the webhook endpoint URL in the API/SDK call (parameter POST:\"url\"), when required. \n\n```json\n{\n\"post\": {\n \"url\": \"https://webhook.site/fd8b0712-d70a-4280-8d6f-9f14407b3bbd\"\n },\n}\n```\n\n\n\n## What are webhooks\n\nWebhooks refer to a combination of elements that collectively create a notification and reaction system within a larger integration.\n\nMetaphorically, webhooks are like a phone number that Tap calls to notify you of activity in your payment transaction lifecycle. The activity could be the completion of payment or a successful charge within a Subscription. The webhook endpoint is the person answering that call who takes actions based on the specific information it receives.\n\nNon-metaphorically, the webhook endpoint is just more code on your server, which could be written in Ruby, PHP, Node.js, or whatever. The webhook endpoint has an associated URL (e.g., [https://example.com/webhooks](https://example.com/webhooks)). The Tap notifications are Event objects. This Event object contains all the relevant parameters of the API response, including the amount, currency, transaction reference, and status of the transaction. The webhook endpoint uses the charge details to take any required actions, such as indicating that the payment is completed.\n\n## When to use webhooks\n\nMany events that occur within a Tap account have synchronous results–immediate and direct–to an executed request. For example, a successful request to create a customer immediately returns a Customer object. Such requests don’t require webhooks, as the key information is already available.\n\nOther events that occur within a Tap Payment Ecosystem are asynchronous: happening at a later time and not directly in response to your code’s execution. Most commonly these involve:\n\nThe completion of a Charge Transaction\\\nThe payment of a due Invoice\\\nIndividual Charges within a Subscription\n\nWith these and similar APIs, Tap needs to notify your integration about changes to the status of an object so your integration can take subsequent steps.\n\nThe specific actions your webhook endpoint may take differs based upon the event. Some examples include:\n\nUpdating a customer’s payment record in your database when a subscription payment succeeds\\\nMaking adjustments to an invoice when it’s attempted (but before it’s been paid)\\\nLogging an accounting entry when an invoice is paid\n\nWebhooks can also be used to provide state and API responses to services or systems that use Tap data for things like replication, analytics, or alerting.\n\n> 📘 Best Practice\n>\n> In case, after a successful payment capture, if the user closes the browser or if the internet connection is not available till the customer is redirected back to the Merchant Website/App, POST URL is a sure mechanism to get notified of the final payment status. Although POST URL is optional, we highly recommend implementing it.\n\n> ❗️ Important notes\n>\n> 1- If the POST URL is not accessible, the posting of the response payload will be failed. There will be two more retry attempts before the status of the POST is updated as ERROR. You can find the POST status in the API Response\n>\n> 2- Only raw data will be posted, make sure to send raw data to the POST URL. The URL should accept post data for captured or failed transactions only , if the transaction status is INITIATED or ABANDONED no data will be posted and post status will be PENDING.\n>\n> 3- The post data cannot be posted to local host. If the data did not reach the URL it will show Error.\n>\n> 4- If the post data are not received on post URL , check the SSLS ,if you are using open source certificate, you will not be able to post the response on your website.\n\n## Webhook Example for a Charges Response\n\n```json\n{\n \"method\": \"POST\",\n \"url\": \"https://webhook.site/25c5e885-216b-4d5f-bcbf-8e5d0d20b76f\",\n \"headers\": [\n {\n \"name\": \"connection\",\n \"value\": \"close\"\n },\n {\n \"name\": \"accept-encoding\",\n \"value\": \"gzip,deflate\"\n },\n {\n \"name\": \"user-agent\",\n \"value\": \"Apache-HttpClient/4.5.13 (Java/18.0.2.1)\"\n },\n {\n \"name\": \"host\",\n \"value\": \"webhook.site\"\n },\n {\n \"name\": \"content-length\",\n \"value\": \"2480\"\n },\n {\n \"name\": \"hash\",\n \"value\": \"12dd1ed1008db28cfac344993564cc71da813a98b5c80d892744ee9bc3d8e76d\"\n },\n {\n \"name\": \"hashstring\",\n \"value\": \"356f77b65c5fc809ce5f1f6e2279932949ca86833867f6da5dbb92800df6238f\"\n },\n {\n \"name\": \"content-type\",\n \"value\": \"application/json\"\n },\n {\n \"name\": \"accept\",\n \"value\": \"text/plain, application/json, application/cbor, application/*+json, */*\"\n }\n ],\n \"bodySize\": 2480,\n \"postData\": {\n \"mimeType\": \"application/json\",\n \"text\": \"{\\\"id\\\":\\\"chg_TS05A4120230736x9K22710693\\\",\\\"object\\\":\\\"charge\\\",\\\"live_mode\\\":false,\\\"customer_initiated\\\":true,\\\"api_version\\\":\\\"V2\\\",\\\"method\\\":\\\"POST\\\",\\\"status\\\":\\\"CAPTURED\\\",\\\"amount\\\":1.0,\\\"currency\\\":\\\"SAR\\\",\\\"threeDSecure\\\":true,\\\"card_threeDSecure\\\":false,\\\"save_card\\\":true,\\\"merchant_id\\\":\\\"\\\",\\\"product\\\":\\\"\\\",\\\"description\\\":\\\"\\\",\\\"metadata\\\":{\\\"udf1\\\":\\\"test_data_1\\\",\\\"udf2\\\":\\\"test_data_2\\\",\\\"udf3\\\":\\\"test_data_3\\\"},\\\"transaction\\\":{\\\"timezone\\\":\\\"UTC+03:00\\\",\\\"created\\\":\\\"1698392202943\\\",\\\"expiry\\\":{\\\"period\\\":30,\\\"type\\\":\\\"MINUTE\\\"},\\\"asynchronous\\\":false,\\\"amount\\\":1.0,\\\"currency\\\":\\\"SAR\\\"},\\\"reference\\\":{\\\"track\\\":\\\"tck_TS04A4320230736To522710661\\\",\\\"payment\\\":\\\"4327230736106619650\\\",\\\"gateway\\\":\\\"mada_pg70983e7a-a686-40ba-83e2-c5e9f4074fe5\\\",\\\"acquirer\\\":\\\"230004002581\\\",\\\"transaction\\\":\\\"txn_0001\\\",\\\"order\\\":\\\"ord_0001\\\"},\\\"response\\\":{\\\"code\\\":\\\"000\\\",\\\"message\\\":\\\"Captured\\\"},\\\"security\\\":{\\\"threeDSecure\\\":{\\\"status\\\":\\\"Y\\\"}},\\\"gateway\\\":{\\\"response\\\":{\\\"code\\\":\\\"000\\\",\\\"message\\\":\\\"Approved\\\"}},\\\"card\\\":{\\\"id\\\":\\\"card_IIGi4523416sFHe27jJ9E589\\\",\\\"object\\\":\\\"card\\\",\\\"first_six\\\":\\\"446404\\\",\\\"first_eight\\\":\\\"44640400\\\",\\\"scheme\\\":\\\"MADA\\\",\\\"brand\\\":\\\"VISA\\\",\\\"last_four\\\":\\\"0007\\\"},\\\"receipt\\\":{\\\"id\\\":\\\"204327230736104914\\\",\\\"email\\\":true,\\\"sms\\\":true},\\\"customer\\\":{\\\"id\\\":\\\"cus_TS07A5420232136o2K52709053\\\",\\\"first_name\\\":\\\"Majdi\\\",\\\"middle_name\\\":\\\"Abdullah\\\",\\\"last_name\\\":\\\"Al Khowaiter\\\",\\\"email\\\":\\\"m.ghgjhgj@tap.company\\\",\\\"phone\\\":{\\\"country_code\\\":\\\"966\\\",\\\"number\\\":\\\"51234567\\\"}},\\\"merchant\\\":{\\\"country\\\":\\\"SA\\\",\\\"currency\\\":\\\"SAR\\\",\\\"id\\\":\\\"25145693\\\"},\\\"source\\\":{\\\"object\\\":\\\"token\\\",\\\"type\\\":\\\"CARD_NOT_PRESENT\\\",\\\"payment_type\\\":\\\"DEBIT\\\",\\\"payment_method\\\":\\\"MADA\\\",\\\"channel\\\":\\\"INTERNET\\\",\\\"id\\\":\\\"tok_nLKq4223436fVYL27Nj9P855\\\"},\\\"redirect\\\":{\\\"status\\\":\\\"PENDING\\\",\\\"url\\\":\\\"http://your_website.com/redirecturl\\\"},\\\"post\\\":{\\\"attempt\\\":1,\\\"status\\\":\\\"PENDING\\\",\\\"url\\\":\\\"https://webhook.site/25c5e885-216b-4d5f-bcbf-8e5d0d20b76f\\\"},\\\"activities\\\":[{\\\"id\\\":\\\"activity_TS03A4420230736Rb512710536\\\",\\\"object\\\":\\\"activity\\\",\\\"created\\\":1698392202943,\\\"status\\\":\\\"INITIATED\\\",\\\"currency\\\":\\\"SAR\\\",\\\"amount\\\":1.0,\\\"remarks\\\":\\\"charge - created\\\"},{\\\"id\\\":\\\"activity_TS07A1320230737j1H42710453\\\",\\\"object\\\":\\\"activity\\\",\\\"created\\\":1698392233453,\\\"status\\\":\\\"CAPTURED\\\",\\\"currency\\\":\\\"SAR\\\",\\\"amount\\\":1.0,\\\"remarks\\\":\\\"charge - captured\\\"}],\\\"auto_reversed\\\":false,\\\"payment_agreement\\\":{\\\"id\\\":\\\"payment_agreement_23Ah4423436I5R027SS9c330\\\",\\\"amount_variability\\\":\\\"VARIABLE\\\",\\\"type\\\":\\\"UNSCHEDULED\\\",\\\"total_payments_count\\\":1,\\\"contract\\\":{\\\"id\\\":\\\"card_IIGi4523416sFHe27jJ9E589\\\",\\\"customer_id\\\":\\\"cus_TS07A5420232136o2K52709053\\\",\\\"type\\\":\\\"SAVED_CARD\\\"},\\\"metadata\\\":{\\\"txn_type\\\":\\\"CHARGE\\\",\\\"txn_id\\\":\\\"chg_TS05A4120230736x9K22710693\\\",\\\"terminal_id\\\":\\\"ter_g6P51020221643Rj631205942\\\"}}}\"\n }\n}\n```\n\n## Webhook Example for an Authorize Response\n\n```json\n{\n \"method\": \"POST\",\n \"url\": \"https://webhook.site/25c5e885-216b-4d5f-bcbf-8e5d0d20b76f\",\n \"headers\": [\n {\n \"name\": \"connection\",\n \"value\": \"close\"\n },\n {\n \"name\": \"accept-encoding\",\n \"value\": \"gzip,deflate\"\n },\n {\n \"name\": \"user-agent\",\n \"value\": \"Apache-HttpClient/4.5.13 (Java/18.0.2.1)\"\n },\n {\n \"name\": \"host\",\n \"value\": \"webhook.site\"\n },\n {\n \"name\": \"content-length\",\n \"value\": \"2188\"\n },\n {\n \"name\": \"hashstring\",\n \"value\": \"da91e16a4c840a3c9826e454b255d1980cb9d95e5b783ed3d2c0e69b1b774f29\"\n },\n {\n \"name\": \"content-type\",\n \"value\": \"application/json\"\n },\n {\n \"name\": \"accept\",\n \"value\": \"text/plain, application/json, application/cbor, application/*+json, */*\"\n }\n ],\n \"bodySize\": 2188,\n \"postData\": {\n \"mimeType\": \"application/json\",\n \"text\": \"{\\\"id\\\":\\\"auth_TS04A1720230745Rt2a2710607\\\",\\\"object\\\":\\\"authorize\\\",\\\"customer_initiated\\\":true,\\\"authorize_debit\\\":false,\\\"live_mode\\\":false,\\\"api_version\\\":\\\"V2\\\",\\\"status\\\":\\\"AUTHORIZED\\\",\\\"amount\\\":100.0,\\\"currency\\\":\\\"SAR\\\",\\\"threeDSecure\\\":true,\\\"save_card\\\":true,\\\"merchant_id\\\":\\\"\\\",\\\"product\\\":\\\"\\\",\\\"transaction\\\":{\\\"authorization_id\\\":\\\"125468\\\",\\\"timezone\\\":\\\"UTC+03:00\\\",\\\"created\\\":\\\"1698392719404\\\",\\\"expiry\\\":{\\\"period\\\":30,\\\"type\\\":\\\"MINUTE\\\"},\\\"asynchronous\\\":false,\\\"amount\\\":100.0,\\\"currency\\\":\\\"SAR\\\"},\\\"reference\\\":{\\\"track\\\":\\\"tck_TS02A2020230745q4MN2710966\\\",\\\"payment\\\":\\\"2027230745109668360\\\",\\\"gateway\\\":\\\"123456789\\\",\\\"acquirer\\\":\\\"330004125468\\\",\\\"transaction\\\":\\\"txn_0001\\\",\\\"order\\\":\\\"ord_0001\\\"},\\\"response\\\":{\\\"code\\\":\\\"001\\\",\\\"message\\\":\\\"Authorized\\\"},\\\"security\\\":{\\\"threeDSecure\\\":{\\\"id\\\":\\\"3ds_TS05A1920230745Tb452710404\\\",\\\"status\\\":\\\"Y\\\"}},\\\"acquirer\\\":{\\\"response\\\":{\\\"code\\\":\\\"00\\\",\\\"message\\\":\\\"Approved\\\"}},\\\"gateway\\\":{\\\"response\\\":{\\\"code\\\":\\\"0\\\",\\\"message\\\":\\\"Transaction Approved\\\"}},\\\"card\\\":{\\\"id\\\":\\\"card_2V741723717UcVF17Yh9O354\\\",\\\"object\\\":\\\"card\\\",\\\"first_six\\\":\\\"512345\\\",\\\"first_eight\\\":\\\"51234500\\\",\\\"scheme\\\":\\\"MASTERCARD\\\",\\\"brand\\\":\\\"MASTERCARD\\\",\\\"last_four\\\":\\\"0008\\\"},\\\"receipt\\\":{\\\"id\\\":\\\"202127230745103892\\\",\\\"email\\\":true,\\\"sms\\\":true},\\\"customer\\\":{\\\"id\\\":\\\"cus_TS02A4520230208p3P21710602\\\",\\\"first_name\\\":\\\"Majdi\\\",\\\"middle_name\\\":\\\"Alal\\\",\\\"last_name\\\":\\\"Alal\\\",\\\"email\\\":\\\"m.ghgjhgj@tap.company\\\",\\\"phone\\\":{\\\"country_code\\\":\\\"966\\\",\\\"number\\\":\\\"51234567\\\"}},\\\"source\\\":{\\\"object\\\":\\\"token\\\",\\\"type\\\":\\\"CARD_NOT_PRESENT\\\",\\\"payment_type\\\":\\\"CREDIT\\\",\\\"payment_method\\\":\\\"MASTERCARD\\\",\\\"channel\\\":\\\"INTERNET\\\",\\\"id\\\":\\\"tok_udpI1923445Jo1b27mi9I282\\\"},\\\"redirect\\\":{\\\"status\\\":\\\"PENDING\\\",\\\"url\\\":\\\"http://your_website.com/redirecturl\\\"},\\\"post\\\":{\\\"status\\\":\\\"PENDING\\\",\\\"url\\\":\\\"https://webhook.site/25c5e885-216b-4d5f-bcbf-8e5d0d20b76f\\\"},\\\"auto\\\":{\\\"status\\\":\\\"SCHEDULED\\\",\\\"type\\\":\\\"VOID\\\",\\\"time\\\":1},\\\"merchant\\\":{\\\"id\\\":\\\"25145693\\\"},\\\"description\\\":\\\"\\\",\\\"metadata\\\":{\\\"udf1\\\":\\\"test_data_1\\\",\\\"udf2\\\":\\\"test_data_2\\\",\\\"udf3\\\":\\\"test_data_3\\\"},\\\"payment_agreement\\\":{\\\"id\\\":\\\"payment_agreement_u6Xt2123445zy0z27yY9m684\\\",\\\"type\\\":\\\"UNSCHEDULED\\\",\\\"total_payments_count\\\":1,\\\"contract\\\":{\\\"id\\\":\\\"card_2V741723717UcVF17Yh9O354\\\",\\\"customer_id\\\":\\\"cus_TS02A4520230208p3P21710602\\\",\\\"type\\\":\\\"SAVED_CARD\\\"},\\\"metadata\\\":{\\\"txn_type\\\":\\\"AUTHORIZE\\\",\\\"txn_id\\\":\\\"auth_TS04A1720230745Rt2a2710607\\\",\\\"terminal_id\\\":\\\"ter_m1RM0420211322p4PH1002445\\\"}}}\"\n }\n}\n```\n\n## Validate the webhook (hashstring)\n\nYou can ensure the secure webhook by calculating the \"Hashstring\" value received in the headers. If the 'hashstring' value match with the calculated value, means the post is secure and received by the Tap side. \n\n**Calculating and validating a hashstring**\n\nCollect the below values from the posted response (charge / authorize / invoice response)\n\n
\n \n
\n
\n Variable\n
\n\n
\n Object\n
\n\n
\n Description\n
\n
\n \n\n \n
\n
\n id\n
\n\n
\n charge/authorize/invoice\n
\n\n
\n charge.id or authorize.id or invoice.id\n
\n
\n\n
\n
\n amount\n
\n\n
\n charge/authorize/invoice\n
\n\n
\n charge.amount or authorize.amount or invoice.amount\\\n Amount should be rounded with standard decimal value \n\n (Ex: AED - 2.00, BHD - 3.000, KWD - 3.000, OMR - 3.000, QAR - 2.00, SAR - 2.00, USD - 2.00, EUR - 2.00, GBP - 2.00, EGP - 2.00)\n
\n
\n\n
\n
\n currency\n
\n\n
\n charge/authorize/invoice\n
\n\n
\n charge.currency or authorize.currency or invoice.currency\n
\n
\n\n
\n
\n gateway\\_reference\n
\n\n
\n charge/authorize\n
\n\n
\n charge.reference.gateway or authorize.reference.gateway\n
\n
\n\n
\n
\n payment\\_reference\n
\n\n
\n charge/authorize\n
\n\n
\n charge.reference.payment or authorize.reference.payment\n
\n
\n\n
\n
\n updated\n
\n\n
\n invoice\n
\n\n
\n invoice.updated\n
\n
\n\n
\n
\n status\n
\n\n
\n charge/authorize/invoice\n
\n\n
\n charge.status or authorize.status or invoice.status\n
\n
\n\n
\n
\n created\n
\n\n
\n charge/authorize/invoice\n
\n\n
\n charge.transaction.created or authorize.transaction.created or invoice.created\n
\n
\n \n
\n\n```php\n 👍 Best Practise\n>\n> While computing the hash string ensure that all parameters used are following the exact parameter specifications. The amount should be rounded with the standard decimal value (ISO Standard Currency Codes).","dehydrated":{"toc":"","body":"
Payments webhook is a server-to-server call(also known as IPN "Instant Payment Notification"), that allows merchants to receive the post-payment details to automate and synchronize their internal ERPs by checking the actual payment status and other technical details, as per requirements.
\n
It's supported with all our APIs, SDKs & Libraries where it is required to be.
\n
Tap also triggers the webhooks for different payment events, such as when a payment is completed, when a customer views a bill, when a recurring payment occurred, etc.
\n\n
Webhook Requires
\n
Following the steps below
\n\n
Merchants need to create their own endpoint server page(usually with the post method) which can receive the webhooks.
\n
Make sure your endpoint URL is active and working smoothly, and ready to accept webhooks.
\n
Define the webhook endpoint URL in the API/SDK call (parameter POST:"url"), when required.
Webhooks refer to a combination of elements that collectively create a notification and reaction system within a larger integration.
\n
Metaphorically, webhooks are like a phone number that Tap calls to notify you of activity in your payment transaction lifecycle. The activity could be the completion of payment or a successful charge within a Subscription. The webhook endpoint is the person answering that call who takes actions based on the specific information it receives.
\n
Non-metaphorically, the webhook endpoint is just more code on your server, which could be written in Ruby, PHP, Node.js, or whatever. The webhook endpoint has an associated URL (e.g., https://example.com/webhooks). The Tap notifications are Event objects. This Event object contains all the relevant parameters of the API response, including the amount, currency, transaction reference, and status of the transaction. The webhook endpoint uses the charge details to take any required actions, such as indicating that the payment is completed.
\n
When to use webhooks
\n
Many events that occur within a Tap account have synchronous results–immediate and direct–to an executed request. For example, a successful request to create a customer immediately returns a Customer object. Such requests don’t require webhooks, as the key information is already available.
\n
Other events that occur within a Tap Payment Ecosystem are asynchronous: happening at a later time and not directly in response to your code’s execution. Most commonly these involve:
\n
The completion of a Charge Transaction \nThe payment of a due Invoice \nIndividual Charges within a Subscription
\n
With these and similar APIs, Tap needs to notify your integration about changes to the status of an object so your integration can take subsequent steps.
\n
The specific actions your webhook endpoint may take differs based upon the event. Some examples include:
\n
Updating a customer’s payment record in your database when a subscription payment succeeds \nMaking adjustments to an invoice when it’s attempted (but before it’s been paid) \nLogging an accounting entry when an invoice is paid
\n
Webhooks can also be used to provide state and API responses to services or systems that use Tap data for things like replication, analytics, or alerting.
\n
📘
Best Practice
In case, after a successful payment capture, if the user closes the browser or if the internet connection is not available till the customer is redirected back to the Merchant Website/App, POST URL is a sure mechanism to get notified of the final payment status. Although POST URL is optional, we highly recommend implementing it.
\n
❗️
Important notes
1- If the POST URL is not accessible, the posting of the response payload will be failed. There will be two more retry attempts before the status of the POST is updated as ERROR. You can find the POST status in the API Response
2- Only raw data will be posted, make sure to send raw data to the POST URL. The URL should accept post data for captured or failed transactions only , if the transaction status is INITIATED or ABANDONED no data will be posted and post status will be PENDING.
3- The post data cannot be posted to local host. If the data did not reach the URL it will show Error.
4- If the post data are not received on post URL , check the SSLS ,if you are using open source certificate, you will not be able to post the response on your website.
You can ensure the secure webhook by calculating the "Hashstring" value received in the headers. If the 'hashstring' value match with the calculated value, means the post is secure and received by the Tap side.
\n
Calculating and validating a hashstring
\n
Collect the below values from the posted response (charge / authorize / invoice response)
\n
Variable
Object
Description
id
charge/authorize/invoice
charge.id or authorize.id or invoice.id
amount
charge/authorize/invoice
charge.amount or authorize.amount or invoice.amount \nAmount should be rounded with standard decimal value
charge.currency or authorize.currency or invoice.currency
gateway_reference
charge/authorize
charge.reference.gateway or authorize.reference.gateway
payment_reference
charge/authorize
charge.reference.payment or authorize.reference.payment
updated
invoice
invoice.updated
status
charge/authorize/invoice
charge.status or authorize.status or invoice.status
created
charge/authorize/invoice
charge.transaction.created or authorize.transaction.created or invoice.created
\n
<?php\n// Get the passed data from the post response (charge / authorize / refund / invoice response)\n\n$id = 'charge.id or authorize.id or refund.id or invoice.id';\n$amount = 'charge.amount or authorize.amount or refund.amount or invoice.amount';\n$currency = 'charge.currency or authorize.currency or refund.currency or invoice.currency';\n$gateway_reference = 'charge.reference.gateway or authorize.reference.gateway or refund.reference.gateway';\n$payment_reference = 'charge.reference.payment or authorize.reference.payment or refund.reference.payment';\n$updated = 'invoice.updated';\n$status = 'charge.status or authorize.status or refund.status or invoice.status';\n$created = 'charge.transaction.created or authorize.transaction.created or refunud.created or invoice.created';\n\n// Your Secret API Key Provided by Tap\n$SecretAPIKey = "sk_test_XKokBfNWv6FIYuTMg5sLPjhJ";\n\n\n// Charges - Create a hashstring from the posted response data + the data that are related to you.\n$toBeHashedString = 'x_id' . $id . 'x_amount' . $amount . 'x_currency' . $currency . 'x_gateway_reference' . $gateway_reference . 'x_payment_reference' . $payment_reference . 'x_status' . $status . 'x_created' . $created . '';\n\n// Authorize or Void - Create a hashstring from the posted response data + the data that are related to you.\n$toBeHashedString = "x_id" . $id . "x_amount" . $amount . "x_currency" . $currency . "x_gateway_reference" . $gateway_reference . "x_payment_reference" . $payment_reference . "x_status" . $status . "x_created" . $created . '';\n\n// Refund - Create a hashstring from the posted response data + the data that are related to you.\n$toBeHashedString = "x_id" . $id . "x_amount" . $amount . "x_currency" . $currency . "x_gateway_reference" . $gateway_reference . "x_payment_reference" . $payment_reference . "x_status" . $status . "x_created" . $created . '';\n\n// Invoice - Create a hashstring from the posted response data + the data that are related to you.\n$toBeHashedString = 'x_id' . $id . 'x_amount' . $amount . 'x_currency' . $currency . 'x_updated' . $updated . 'x_status' . $status . 'x_created' . $created . '';\n\n\n// Create your hashstring by passing concatinated string and your secret API Key\n$myHashString = hash_hmac('sha256', $toBeHashedString, $SecretAPIKey);\n\n// Legitimate the post request by comparing the hashstring you computed with the one posted in the header\nif ($myHashString == $postedHashString) {\n echo "Secure Post";\n} else {\n echo "Insecure Post";\n}\n
\n
👍
Best Practise
While computing the hash string ensure that all parameters used are following the exact parameter specifications. The amount should be rounded with the standard decimal value (ISO Standard Currency Codes).
","css":"/*! tailwindcss v4.1.6 | MIT License | https://tailwindcss.com */\n@layer theme, base, components, utilities;\n@layer utilities;\n"},"mdx":true,"opts":{"alwaysThrow":false,"compatibilityMode":false,"copyButtons":true,"correctnewlines":false,"markdownOptions":{"fences":true,"commonmark":true,"gfm":true,"ruleSpaces":false,"listItemIndent":"1","spacedTable":true,"paddedTable":true},"lazyImages":true,"normalize":true,"safeMode":false,"settings":{"position":false},"theme":"light","customBlocks":{},"resourceID":"/branches/1.0/guides/webhook","resourceType":"page","components":{},"baseUrl":"/","terms":[{"_id":"609181673ecbe5000fceea45","term":"parliament","definition":"Owls are generally solitary, but when seen together the group is called a 'parliament'!"},{"_id":"644a67ce58a5e3035857ee5f","term":"MID","definition":"Merchant ID"},{"_id":"65cb1bc0a5ae180057f5b1ac","term":"charge_id","definition":"Charge_id is the transaction id"},{"_id":"65cb1c46a5f15f002857ddb3","term":"destinations","definition":"Destinations in this context refer to specific entities or accounts where portions of a transaction amount are directed to a single/multiple accounts."}],"variables":{"user":{},"defaults":[{"source":"security","_id":"62e8bff18f830d02d6155225","name":"Authorization","type":"apiKey","default":"sk_test_oqAcdQztv84agVkCBZEup0Hh","apiSetting":"614aeaa22843b7000fe98330"},{"source":"security","_id":"646b514404003f0045ac6eda","name":"test","type":"apiKey","default":"test","apiSetting":"644a369fbc093f0068977db4"}]}},"terms":[{"_id":"609181673ecbe5000fceea45","term":"parliament","definition":"Owls are generally solitary, but when seen together the group is called a 'parliament'!"},{"_id":"644a67ce58a5e3035857ee5f","term":"MID","definition":"Merchant ID"},{"_id":"65cb1bc0a5ae180057f5b1ac","term":"charge_id","definition":"Charge_id is the transaction id"},{"_id":"65cb1c46a5f15f002857ddb3","term":"destinations","definition":"Destinations in this context refer to specific entities or accounts where portions of a transaction amount are directed to a single/multiple accounts."}],"variables":{"user":{},"defaults":[{"source":"security","_id":"62e8bff18f830d02d6155225","name":"Authorization","type":"apiKey","default":"sk_test_oqAcdQztv84agVkCBZEup0Hh","apiSetting":"614aeaa22843b7000fe98330"},{"source":"security","_id":"646b514404003f0045ac6eda","name":"test","type":"apiKey","default":"test","apiSetting":"644a369fbc093f0068977db4"}]}},"sidebar":[{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"saved-cards","title":"Saved Cards","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payment-agreement","title":"Payment Agreement and Contracts","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/payment-agreement","category":"/branches/1.0/categories/guides/Acceptance","parent":"/branches/1.0/guides/saved-cards"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-payment-agreement","title":"Creating Payment Agreement","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/creating-payment-agreement","category":"/branches/1.0/categories/guides/Acceptance","parent":"/branches/1.0/guides/saved-cards"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"merchant-initiated-transaction","title":"Merchant Initiated Transaction","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/merchant-initiated-transaction","category":"/branches/1.0/categories/guides/Acceptance","parent":"/branches/1.0/guides/saved-cards"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"liability-shift-customer-vs-merchant","title":"Liability Shift: Customer vs Merchant","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/liability-shift-customer-vs-merchant","category":"/branches/1.0/categories/guides/Acceptance","parent":"/branches/1.0/guides/saved-cards"}],"uri":"/branches/1.0/guides/saved-cards","category":"/branches/1.0/categories/guides/Acceptance","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"recurring-payments","title":"Recurring Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/recurring-payments","category":"/branches/1.0/categories/guides/Acceptance","parent":null}],"title":"Acceptance","uri":"/branches/1.0/categories/guides/Acceptance"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"card-sdk-web-v1","title":"Web Card SDK V1","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/card-sdk-web-v1","category":"/branches/1.0/categories/guides/SDK","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"card-sdk-web-v2","title":"Web Card SDK V2","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/card-sdk-web-v2","category":"/branches/1.0/categories/guides/SDK","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"checkout","title":"Checkout","type":"basic","updatedAt":"2025-07-16T09:52:15.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"checkout-sdk-ios","title":"Checkout iOS SDK ","type":"basic","updatedAt":"2025-07-17T14:59:25.000Z","pages":[],"uri":"/branches/1.0/guides/checkout-sdk-ios","category":"/branches/1.0/categories/guides/SDK","parent":"/branches/1.0/guides/checkout"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"checkout-sdk-flutter","title":"Checkout Flutter SDK ","type":"basic","updatedAt":"2025-07-17T13:32:44.000Z","pages":[],"uri":"/branches/1.0/guides/checkout-sdk-flutter","category":"/branches/1.0/categories/guides/SDK","parent":"/branches/1.0/guides/checkout"}],"uri":"/branches/1.0/guides/checkout","category":"/branches/1.0/categories/guides/SDK","parent":null}],"title":"SDK","uri":"/branches/1.0/categories/guides/SDK"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payment-methods","title":"Overview of Payment Methods","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/payment-methods","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"samsung-pay-token","title":"Samsung Pay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/samsung-pay-token","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"card-payments","title":"Card Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"cards","title":"Cards","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/cards","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/card-payments"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"google-pay","title":"Google Pay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/google-pay","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/card-payments"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"omannet","title":"OmanNet","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/omannet","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/card-payments"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefit","title":"Benefit","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefit","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/card-payments"}],"uri":"/branches/1.0/guides/card-payments","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-sdk","title":"Benefit Pay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-web-sdk","title":"Web","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefitpay-web-sdk","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/benefitpay-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-sdk-ios","title":"iOS","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefitpay-sdk-ios","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/benefitpay-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-sdk-android","title":"Android","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefitpay-sdk-android","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/benefitpay-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-sdk-reactnative","title":"React-Native","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefitpay-sdk-reactnative","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/benefitpay-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-sdk-flutter","title":"Flutter","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefitpay-sdk-flutter","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/benefitpay-sdk"}],"uri":"/branches/1.0/guides/benefitpay-sdk","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay","title":"Apple Pay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay-csr-cer","title":"Apple Pay CSR CER Process","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/apple-pay-csr-cer","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/apple-pay"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay-token","title":"Apple Pay Token","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/apple-pay-token","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/apple-pay"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay-web-sdk","title":"Apple Pay Web SDK","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/apple-pay-web-sdk","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/apple-pay"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay-recurring","title":"Apple Pay Recurring","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/apple-pay-recurring","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/apple-pay"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay-decrypted-payload","title":"Apple Pay (Decrypted Payload)","type":"basic","updatedAt":"2025-07-17T05:21:10.000Z","pages":[],"uri":"/branches/1.0/guides/apple-pay-decrypted-payload","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/apple-pay"}],"uri":"/branches/1.0/guides/apple-pay","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"cash-wallet","title":"Cash Wallet","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"fawry","title":"Fawry","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/fawry","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/cash-wallet"}],"uri":"/branches/1.0/guides/cash-wallet","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"knet","title":"KNET","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"kfast","title":"KFAST","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/kfast","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/knet"}],"uri":"/branches/1.0/guides/knet","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"mada","title":"Mada","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"mada-recurring","title":"Mada Recurring","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/mada-recurring","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/mada"}],"uri":"/branches/1.0/guides/mada","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"qpay","title":"NAPS/QPay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/qpay","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"stcpay","title":"STC Pay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/stcpay","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"bnpl","title":"BNPL","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"tabby","title":"Tabby","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/tabby","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/bnpl"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"deema","title":"Deema","type":"basic","updatedAt":"2025-07-11T14:45:25.000Z","pages":[],"uri":"/branches/1.0/guides/deema","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/bnpl"}],"uri":"/branches/1.0/guides/bnpl","category":"/branches/1.0/categories/guides/Payment methods","parent":null}],"title":"Payment methods","uri":"/branches/1.0/categories/guides/Payment methods"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"woocommerce","title":"Woocommerce","type":"basic","updatedAt":"2025-07-02T11:47:42.000Z","pages":[],"uri":"/branches/1.0/guides/woocommerce","category":"/branches/1.0/categories/guides/Plugins","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"magento","title":"Magento","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/magento","category":"/branches/1.0/categories/guides/Plugins","parent":null}],"title":"Plugins","uri":"/branches/1.0/categories/guides/Plugins"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"webhook","title":"Webhook","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/webhook","category":"/branches/1.0/categories/guides/After Payment","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"redirect","title":"Redirect","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/redirect","category":"/branches/1.0/categories/guides/After Payment","parent":null}],"title":"After Payment","uri":"/branches/1.0/categories/guides/After Payment"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"marketplace-overview","title":"Overview","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/marketplace-overview","category":"/branches/1.0/categories/guides/Marketplace","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"marketplace-getting-started","title":"Getting Started","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/marketplace-getting-started","category":"/branches/1.0/categories/guides/Marketplace","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"marketplace-onboarding-businesses","title":"Onboarding Businesses","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/marketplace-onboarding-businesses","category":"/branches/1.0/categories/guides/Marketplace","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"marketplace-split-payments","title":"Split Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/marketplace-split-payments","category":"/branches/1.0/categories/guides/Marketplace","parent":null}],"title":"Marketplace","uri":"/branches/1.0/categories/guides/Marketplace"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"user-access-permissions","title":"User Access Permissions","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/user-access-permissions","category":"/branches/1.0/categories/guides/References","parent":null}],"title":"References","uri":"/branches/1.0/categories/guides/References"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"card-payments-integration-flow","title":"Card Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/card-payments-integration-flow","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"redirect-payments-integration-flow","title":"Redirect Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/redirect-payments-integration-flow","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"device-payments-integration-flow","title":"Device Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/device-payments-integration-flow","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"authorize-and-capture","title":"Authorize and Capture","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/authorize-and-capture","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"recommendations-best-practices","title":"Recommendations & Best Practices","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/recommendations-best-practices","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"encrypted-card-flow-pci","title":"Encrypted Card Flow (PCI)","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/encrypted-card-flow-pci","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"save-card-use-case-scenarios","title":"Save Card Use Case Scenarios","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/save-card-use-case-scenarios","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"idempotency","title":"Idempotency in Payment Processing","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/idempotency","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null}],"title":"Integrations Flow","uri":"/branches/1.0/categories/guides/Integrations Flow"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"platforms-setup","title":"Platforms Setups","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/platforms-setup","category":"/branches/1.0/categories/guides/Platform","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"platforms-integration-concepts","title":"Platforms Integration Concepts","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/platforms-integration-concepts","category":"/branches/1.0/categories/guides/Platform","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-a-lead","title":"Creating a Lead","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/creating-a-lead","category":"/branches/1.0/categories/guides/Platform","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-a-merchant-account","title":"Creating a Merchant Account","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/creating-a-merchant-account","category":"/branches/1.0/categories/guides/Platform","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-a-transaction","title":"Creating a Transaction","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/creating-a-transaction","category":"/branches/1.0/categories/guides/Platform","parent":null}],"title":"Platform","uri":"/branches/1.0/categories/guides/Platform"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"reports-concepts","title":"Reports Download Concepts","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/reports-concepts","category":"/branches/1.0/categories/guides/Reports","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payout-report","title":"Payout Report","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/payout-report","category":"/branches/1.0/categories/guides/Reports","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"commerce-platform-reports","title":"Reports for Commerce Platforms","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/commerce-platform-reports","category":"/branches/1.0/categories/guides/Reports","parent":null}],"title":"Reports","uri":"/branches/1.0/categories/guides/Reports"}],"branches":{"total":0,"page":1,"per_page":100,"paging":{"next":null,"previous":null,"first":"/tappayments/api-next/v2/branches?prefix=v1.0&page=1&per_page=100","last":null},"data":[],"type":"branch"},"config":{"algoliaIndex":"readme_search_v2","amplitude":{"apiKey":"dc8065a65ef83d6ad23e37aaf014fc84","enabled":true},"asset_url":"https://cdn.readme.io","domain":"readme.io","domainFull":"https://dash.readme.com","encryptedLocalStorageKey":"ekfls-2025-03-27","fullstory":{"enabled":true,"orgId":"FSV9A"},"liveblocks":{"copilotId":"co_11Q0l0JJlkcBhhAYUFh8s"},"metrics":{"billingCronEnabled":"true","dashUrl":"https://m.readme.io","defaultUrl":"https://m.readme.io","exportMaxRetries":12,"wsUrl":"wss://m.readme.io"},"proxyUrl":"https://try.readme.io","readmeRecaptchaSiteKey":"6LesVBYpAAAAAESOCHOyo2kF9SZXPVb54Nwf3i2x","releaseVersion":"5.420.0","sentry":{"dsn":"https://3bbe57a973254129bcb93e47dc0cc46f@o343074.ingest.sentry.io/2052166","enabled":true},"shMigration":{"promoVideo":"","forceWaitlist":false,"migrationPreview":false},"sslBaseDomain":"readmessl.com","sslGenerationService":"ssl.readmessl.com","stripePk":"pk_live_5103PML2qXbDukVh7GDAkQoR4NSuLqy8idd5xtdm9407XdPR6o3bo663C1ruEGhXJjpnb2YCpj8EU1UvQYanuCjtr00t1DRCf2a","superHub":{"newProjectsEnabled":true},"wootric":{"accountToken":"NPS-122b75a4","enabled":true}},"context":{"labs":{},"user":{},"terms":[{"_id":"609181673ecbe5000fceea45","term":"parliament","definition":"Owls are generally solitary, but when seen together the group is called a 'parliament'!"},{"_id":"644a67ce58a5e3035857ee5f","term":"MID","definition":"Merchant ID"},{"_id":"65cb1bc0a5ae180057f5b1ac","term":"charge_id","definition":"Charge_id is the transaction id"},{"_id":"65cb1c46a5f15f002857ddb3","term":"destinations","definition":"Destinations in this context refer to specific entities or accounts where portions of a transaction amount are directed to a single/multiple accounts."}],"variables":{"user":{},"defaults":[{"source":"security","_id":"62e8bff18f830d02d6155225","name":"Authorization","type":"apiKey","default":"sk_test_oqAcdQztv84agVkCBZEup0Hh","apiSetting":"614aeaa22843b7000fe98330"},{"source":"security","_id":"646b514404003f0045ac6eda","name":"test","type":"apiKey","default":"test","apiSetting":"644a369fbc093f0068977db4"}]},"project":{"_id":"609181673ecbe5000fceea44","appearance":{"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"main_body":{"type":"links"},"colors":{"highlight":"","main":"#343740","main_alt":"#101010","header_text":"","body_highlight":"#1F88D0","custom_login_link_color":""},"typography":{"headline":"Open+Sans:400:sans-serif","body":"Open+Sans:400:sans-serif","typekit":false,"tk_key":"","tk_headline":"","tk_body":""},"header":{"style":"gradient","img":[],"img_size":"auto","img_pos":"tl","linkStyle":"buttons"},"body":{"style":"none"},"global_landing_page":{"html":"","redirect":""},"referenceLayout":"column","link_logo_to_url":false,"theme":"solid","overlay":"triangles","landing":true,"sticky":false,"hide_logo":true,"childrenAsPills":false,"subheaderStyle":"links","splitReferenceDocs":true,"logo":["https://files.readme.io/c7b8517-small-Tapcircle_gray.png","c7b8517-small-Tapcircle_gray.png",81,80,"#4c4948","https://files.readme.io/63fefd0-Tapcircle_gray.png"],"logo_white":["https://files.readme.io/cc73b8e-tap-logo-white.svg","cc73b8e-tap-logo-white.svg",300,124,"#000000","668673aa9dde7b0013e136eb"],"logo_white_use":true,"favicon":["https://files.readme.io/ab5c5ff-small-Tapcircle_gray.png","ab5c5ff-small-Tapcircle_gray.png",32,32,"#4c4948","https://files.readme.io/12da5df-Tapcircle_gray.png"],"stylesheet":"","stylesheet_hub2":"[data-color-mode=\"light\"] {\n --font-family: Roboto, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif !important;\n --font-weight-bold: 400 !important;\n}\n\n.heading-text {font-weight:400 !important;}\n\n[data-color-mode=\"dark\"] {\n--color-bg-page: #101010 !important;\n --font-family: Roboto, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif !important;\n --font-weight-bold: 400 !important;\n}","javascript":"","javascript_hub2":"","html_promo":"","html_body":"","html_footer":"","html_head":"","html_footer_meta":"","html_hidelinks":false,"showVersion":false,"hideTableOfContents":false,"nextStepsLabel":"","promos":[{"extras":{"type":"buttons","buttonPrimary":"reference","buttonSecondary":""},"title":"Developer documentation","text":"Developer Tools to Build Disruptive Payment Experiences","_id":"609181673ecbe5000fceea46"}],"showMetricsInReference":true,"referenceSimpleMode":true,"stylesheet_hub3":"","loginLogo":[],"logo_large":true,"colorScheme":"system","changelog":{"layoutExpanded":false,"showAuthor":true,"showExactDate":false},"allowApiExplorerJsonEditor":true,"ai_dropdown":"disabled","ai_options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","copilot":"enabled","perplexity":"enabled","view_as_markdown":"enabled"},"showPageIcons":true,"layout":{"full_width":false,"style":"classic"}},"custom_domain":"developers.tap.company","childrenProjects":[],"derivedPlan":"business2018","description":"","isExternalSnippetActive":false,"error404":"","experiments":[],"first_page":"landing","flags":{"allow_hub2":false,"enterprise":false,"alwaysShowDocPublishStatus":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"oauth":false,"swagger":false,"correctnewlines":false,"rdmdCompatibilityMode":false,"speedyRender":false,"allowXFrame":false,"newEditor":true,"oldMarkdown":false,"useReactApp":true,"newMarkdownBetaProgram":true,"referenceRedesign":false,"disableAnonForum":false,"directGoogleToStableVersion":false,"translation":false,"staging":false,"newSearch":true,"graphql":false,"allowApiExplorerJsonEditor":false,"newHeader":false,"singleProjectEnterprise":false,"dashReact":false,"allowReferenceUpgrade":false,"metricsV2":true,"newEditorDash":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"disablePasswordlessLogin":false,"personalizedDocs":false,"myDevelopers":false,"superHub":true,"developerDashboard":false,"allowReusableOTPs":false,"dashHomeRefresh":false,"owlbotAi":false,"apiV2":false,"git":{"read":false,"write":false},"superHubBeta":false,"dashQuickstart":false,"disableAutoTranslate":false,"customBlocks":false,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":true,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":true,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"externalSdkSnippets":false,"requiresJQuery":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false},"fullBaseUrl":"https://developers.tap.company/","git":{"migration":{"createRepository":{"start":"2025-06-11T23:49:38.090Z","end":"2025-06-11T23:49:38.506Z","status":"successful"},"transformation":{"end":"2025-06-11T23:49:40.856Z","start":"2025-06-11T23:49:38.697Z","status":"successful"},"migratingPages":{"end":"2025-06-11T23:49:42.138Z","start":"2025-06-11T23:49:41.204Z","status":"successful"},"enableSuperhub":{"start":"2025-06-12T00:18:55.452Z","status":"successful","end":"2025-06-12T00:18:55.453Z"}},"sync":{"linked_repository":{},"installationRequest":{},"connections":[],"providers":[]}},"glossaryTerms":[{"_id":"609181673ecbe5000fceea45","term":"parliament","definition":"Owls are generally solitary, but when seen together the group is called a 'parliament'!"},{"_id":"644a67ce58a5e3035857ee5f","term":"MID","definition":"Merchant ID"},{"_id":"65cb1bc0a5ae180057f5b1ac","term":"charge_id","definition":"Charge_id is the transaction id"},{"_id":"65cb1c46a5f15f002857ddb3","term":"destinations","definition":"Destinations in this context refer to specific entities or accounts where portions of a transaction amount are directed to a single/multiple accounts."}],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"shouldGateDash":false,"healthCheck":{"provider":"manual","settings":{"page":"","status":true,"url":"http://www.tap.company/"}},"intercom_secure_emailonly":false,"intercom":"","is_active":true,"integrations":{"login":{}},"internal":"","jwtExpirationTime":0,"landing_bottom":[{"type":"text-media","alignment":"left","side":"left","mediaType":"image","text":"Tap is on a mission to change how businesses and consumers in the Middle East accept and make payments online.\n\nExplore our well-documented developer docs to build powerful products with our flexible APIs.","title":"Ready to start building?","mediaImage":["https://files.readme.io/34ceb1e-tap-checkout-laptop-iphone.png","34ceb1e-tap-checkout-laptop-iphone.png",1440,917,"#000000"]},{"type":"text-media","alignment":"left","side":"right","mediaType":"image","title":"Access all local, regional, & global payment methods","text":"Your customers can scale globally by offering all popular payment methods across MENA, whether that's mada, KNET, Fawry, Apple Pay, Visa, Mastercard, Amex, Tabby, and many more.","mediaImage":["https://files.readme.io/4dc0d3e-payment-methods-tap-transparent.png","4dc0d3e-payment-methods-tap-transparent.png",1440,917,"#000000"]}],"mdxMigrationStatus":"rdmd","metrics":{"monthlyLimit":0,"thumbsEnabled":true,"usageLastChecked":"2021-05-18T11:52:25.623Z","planLimit":1000000,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"landing":true,"docs":true,"examples":true,"reference":true,"changelog":false,"discuss":false,"suggested_edits":false,"logs":false,"custompages":false,"tutorials":false,"graphql":false},"name":"Tap API Docs 1.0","nav_names":{"docs":"","reference":"","changelog":"","discuss":"","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":false,"api":true,"logs":true,"domain":true,"metricsSDK":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral"},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""}},"owner":{"id":null,"email":null,"name":null},"plan":"business2018","planOverride":"","planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"active","planTrial":"business2018","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":false,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":false,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":false,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":false,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":false,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"totalScore":150},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":true,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false},"seo":{"overwrite_title_tag":false},"stable":{"_id":"609181673ecbe5000fceea49","version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":true,"is_hidden":false,"is_deprecated":false,"categories":["609181673ecbe5000fceea4b","609181673ecbe5000fceea4b","6091b3f99674c400163bff89","6091b4039cd053001ccd75ca","6091b9cabd08070044290985","6091ccd39405f5003a584a51","6091cd389f45cb00560bfd03","6095b97114006a014f3f1d4f","6095bd6196b92a00118b459d","6095bd978a10e0006bc46b06","6095bde7c1dc50001c095fa9","6096df8e16bd240064459165","60983af7df1158001ef2eff9","60999756d42c46007b006a79","609a3ad9f4596b0050872a03","60a2bbf7f3adf5002a9ad72e","60b458201c9e210016124e07","60b459da24cfd70073180153","60b45b397314140071385c1f","60b45c0e1a9223001c137851","60b45c742dbc65002b1ccfa9","60c048f5bc086f006399b817","60c0493ea600cc005e71953a","60c0497796c2af0033eb3e4c","60c049c35d4d8a000f1cc810","60c511d4f4a6fa004573f9ba","60c7e530bf52a5007f7da43b","60c9451d403b6900502989a6","60c98862c86ae9000fbf55fc","60d7a1f88b948a002ae79f91","60e605d60fae0c000f2d243a","6138f44d0c99ef0056745ae3","614ae981229ec80062e09c91","614aeaa22843b7000fe98332","614b1f21292222023c90b303","614b22b70a462c0071358ecb","614b36dc0437a7005d3a27ac","614c0577816706007abd6e04","614c05e3b9b417000f0394f0","614c14bd0ed1aa0043a6b0bc","614c25dd49cf1b000f94557a","614c67015a05e4005eb0b229","614c68879cee70000f672ffc","614c6b72a2b5e50079ebc763","614c6ed3218f16018b270eb1","614c7646f73c16007a5a8aeb","614c7d2c2c92f3001eb10ea0","614cd14a5c65ab006915b506","614debc2daabc80041992905","614df6734993df0029e4c28a","61501840584f4d004a701a59","6150219595ff56000faf6692","6150257421f82e001800da63","6150275dbca0e4004298279e","615040c71995710018ff6da5","61504a794dd368011f2b767b","615051fd186f32002a3e7fe8","61505a219f352800437308a9","6153ecce49305f0036ccabe9","6153ecfaa256830074bc16ab","6153ed21f89c000077626b46","62a1cb5617d8250093bbbf92","6376b4a52ac94400030a8954","644a369fbc093f0068977db7","644a38f00df056000a1f7be9","644a3c522a4b60077da18217","644a3fbbdc577706e617bf5c","644a43f116cff60015341077","644a5a710734260047a5c1c0","644a5b4ee93098000e224bac","644a6270d93cb6001a427e3b","646f3e102383c2072331c68c","647991b6a0313a00129bd1fd","648788082dca3b006c55f1b7","648ae3732d238b18720af010","64e83253f6aaa5006b197201","64e832538f7a1b001eff2152","64e8325384659a000d0766e3","64edd6ce1724b40037e6fe1a","6522b6c8af0e280013431b5c","653823f82c69e10038a3e744","65389026e52461000dff867f","654374aead28ee079008c5dc","6568a3f3ba96d8003f9ea0fa","6568a56bc9523700546a9ef0","6568a5a787accf003276274f","6568a5aeae53490078c17a6c","6568a5b64b48fc00642149e6","6568a5d7dcc06700319d0e51","658d55099134010010d83873","65aced7eeae0c00064957786","65df3397c4edf7005ad80c7e","6668c34424783c005237566d","66694dbf87bcd400146ac4f9","668ff1aedcb1740059c46dbf","668ff71289edb900543cbec5","668ffaa3e1b39200315fc95f","668ffaf5bf6d8c007157b7c9","66a20c1a4afc0a004a9ae1d8","66acc94362fd700054bce0a7","66accb01de3aa400127c615f","66b46a6cdf2832002a032359","66cc86934be3ef0018b72d84","673d965f9a77b00010d6b174","676ad7a0cfc66e00119406e5","676c002f13121d0efc2c1414","67965682dc3afe0044f1e853","679659c59bb515808b5a1c5b","679c9509e0f3a50036b05069","67a9d8bc885ab100723ce638","67a9d9acceb469005ecf7f77","680214474bd36300611d90ad"],"project":"609181673ecbe5000fceea44","releaseDate":"2021-05-04T17:16:23.435Z","createdAt":"2021-05-04T17:16:23.435Z","__v":13,"updatedAt":"2025-06-21T11:38:59.830Z","pdfStatus":"complete","apiRegistries":[{"filename":"subscription.json","uuid":"pavp975ilhgaala8"},{"filename":"charges.json","uuid":"349ct10madzg8gg"},{"filename":"authorize.json","uuid":"19ijga10m79acoeg"},{"filename":"refunds.json","uuid":"dl82et2flwm5596msb"},{"filename":"tokens.json","uuid":"3i46r2hm9mkdhz6"},{"filename":"cards.json","uuid":"5eq312mbrnhuxf"},{"filename":"business.json","uuid":"1c8zg4gpm7vr3s3z"},{"filename":"wallet.json","uuid":"gh4j02tlgz22lcx"},{"filename":"bank-account.json","uuid":"rowbe8al4cryk27"},{"filename":"orders.json","uuid":"3q14mrl696q690"},{"filename":"products.json","uuid":"3qzzvi3tl47cu29u"},{"filename":"merchant.json","uuid":"13wqkvhm6un0ezg"},{"filename":"invoices.json","uuid":"4t7pm13h28ab"},{"filename":"fulfilment-provider.json","uuid":"3xilk24l47cva7j"},{"filename":"fulfilment-carrier.json","uuid":"9b42el47cvdg5"},{"filename":"carrier-aggregator.json","uuid":"3qzzvi1qcl47cvhog"},{"filename":"currency.json","uuid":"de0m3xl4dugc1p"},{"filename":"recurring.json","uuid":"9b416l47cvyto"},{"filename":"customers.json","uuid":"fi2jg2mc65fuxv"},{"filename":"users.json","uuid":"3qzzvi125l47cv6k8"},{"filename":"operator.json","uuid":"4wamrg9m6enzk9e"},{"filename":"developer.json","uuid":"55o0d20l47cw6g9"},{"filename":"dev-house.json","uuid":"3xilk3sl47cwei4"},{"filename":"files.json","uuid":"2lnj72plzkz7x76"},{"filename":"destinations.json","uuid":"4wama1um6euu8w3"},{"filename":"file-link.json","uuid":"9b41hl47cwqwd"},{"filename":"document.json","uuid":"18xlpjl47cwukq"},{"filename":"disputes.json","uuid":"15lscrgm6yzk5md"},{"filename":"entity.json","uuid":"12483h4rl47cup3h"},{"filename":"brand.json","uuid":"1dp2k221lgz1vs4c"},{"filename":"branch.json","uuid":"3qzzvikl47cuxrk"},{"filename":"token-apple-pay.json","uuid":"7co71om1p0df85"},{"filename":"tokens-saved-card.json","uuid":"a0rzzx1fvlm9mjg6jh"},{"filename":"lead.json","uuid":"87rx2rm49rik7x"},{"filename":"connect.json","uuid":"d1dm11m0113pp8"},{"filename":"payout.json","uuid":"w6ncd2ym059ijae"},{"filename":"statement.json","uuid":"p2ulzigigja"},{"filename":"lead-new.json","uuid":"75l1bm75sm3ja"},{"filename":"transfers.json","uuid":"4da2rm5qtchiu"},{"filename":"token-samsung-pay.json","uuid":"3v9bvivimm52n8bps"},{"filename":"bin.json","uuid":"aspw37m6kpipc4"},{"filename":"tokens-encrypted-card.json","uuid":"9kzom9mku6ag"}],"source":"readme"},"subdomain":"tappayments","subpath":"","superHubWaitlist":false,"topnav":{"left":[{"type":"home","text":"Home"}],"right":[{"type":"user","text":"User","url":"/login?redirect_uri=/docs/webhook"}],"edited":true,"bottom":[]},"trial":{"trialDeadlineEnabled":true,"trialEndsAt":"2021-09-14T17:16:23.387Z"},"translate":{"provider":"transifex","show_widget":false,"key_public":"","org_name":"","project_name":"","languages":[]},"url":"https://www.tap.company/","versions":[{"_id":"609181673ecbe5000fceea49","version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":true,"is_hidden":false,"is_deprecated":false,"categories":["609181673ecbe5000fceea4b","609181673ecbe5000fceea4b","6091b3f99674c400163bff89","6091b4039cd053001ccd75ca","6091b9cabd08070044290985","6091ccd39405f5003a584a51","6091cd389f45cb00560bfd03","6095b97114006a014f3f1d4f","6095bd6196b92a00118b459d","6095bd978a10e0006bc46b06","6095bde7c1dc50001c095fa9","6096df8e16bd240064459165","60983af7df1158001ef2eff9","60999756d42c46007b006a79","609a3ad9f4596b0050872a03","60a2bbf7f3adf5002a9ad72e","60b458201c9e210016124e07","60b459da24cfd70073180153","60b45b397314140071385c1f","60b45c0e1a9223001c137851","60b45c742dbc65002b1ccfa9","60c048f5bc086f006399b817","60c0493ea600cc005e71953a","60c0497796c2af0033eb3e4c","60c049c35d4d8a000f1cc810","60c511d4f4a6fa004573f9ba","60c7e530bf52a5007f7da43b","60c9451d403b6900502989a6","60c98862c86ae9000fbf55fc","60d7a1f88b948a002ae79f91","60e605d60fae0c000f2d243a","6138f44d0c99ef0056745ae3","614ae981229ec80062e09c91","614aeaa22843b7000fe98332","614b1f21292222023c90b303","614b22b70a462c0071358ecb","614b36dc0437a7005d3a27ac","614c0577816706007abd6e04","614c05e3b9b417000f0394f0","614c14bd0ed1aa0043a6b0bc","614c25dd49cf1b000f94557a","614c67015a05e4005eb0b229","614c68879cee70000f672ffc","614c6b72a2b5e50079ebc763","614c6ed3218f16018b270eb1","614c7646f73c16007a5a8aeb","614c7d2c2c92f3001eb10ea0","614cd14a5c65ab006915b506","614debc2daabc80041992905","614df6734993df0029e4c28a","61501840584f4d004a701a59","6150219595ff56000faf6692","6150257421f82e001800da63","6150275dbca0e4004298279e","615040c71995710018ff6da5","61504a794dd368011f2b767b","615051fd186f32002a3e7fe8","61505a219f352800437308a9","6153ecce49305f0036ccabe9","6153ecfaa256830074bc16ab","6153ed21f89c000077626b46","62a1cb5617d8250093bbbf92","6376b4a52ac94400030a8954","644a369fbc093f0068977db7","644a38f00df056000a1f7be9","644a3c522a4b60077da18217","644a3fbbdc577706e617bf5c","644a43f116cff60015341077","644a5a710734260047a5c1c0","644a5b4ee93098000e224bac","644a6270d93cb6001a427e3b","646f3e102383c2072331c68c","647991b6a0313a00129bd1fd","648788082dca3b006c55f1b7","648ae3732d238b18720af010","64e83253f6aaa5006b197201","64e832538f7a1b001eff2152","64e8325384659a000d0766e3","64edd6ce1724b40037e6fe1a","6522b6c8af0e280013431b5c","653823f82c69e10038a3e744","65389026e52461000dff867f","654374aead28ee079008c5dc","6568a3f3ba96d8003f9ea0fa","6568a56bc9523700546a9ef0","6568a5a787accf003276274f","6568a5aeae53490078c17a6c","6568a5b64b48fc00642149e6","6568a5d7dcc06700319d0e51","658d55099134010010d83873","65aced7eeae0c00064957786","65df3397c4edf7005ad80c7e","6668c34424783c005237566d","66694dbf87bcd400146ac4f9","668ff1aedcb1740059c46dbf","668ff71289edb900543cbec5","668ffaa3e1b39200315fc95f","668ffaf5bf6d8c007157b7c9","66a20c1a4afc0a004a9ae1d8","66acc94362fd700054bce0a7","66accb01de3aa400127c615f","66b46a6cdf2832002a032359","66cc86934be3ef0018b72d84","673d965f9a77b00010d6b174","676ad7a0cfc66e00119406e5","676c002f13121d0efc2c1414","67965682dc3afe0044f1e853","679659c59bb515808b5a1c5b","679c9509e0f3a50036b05069","67a9d8bc885ab100723ce638","67a9d9acceb469005ecf7f77","680214474bd36300611d90ad"],"project":"609181673ecbe5000fceea44","releaseDate":"2021-05-04T17:16:23.435Z","createdAt":"2021-05-04T17:16:23.435Z","__v":13,"updatedAt":"2025-06-21T11:38:59.830Z","pdfStatus":"complete","apiRegistries":[{"filename":"subscription.json","uuid":"pavp975ilhgaala8"},{"filename":"charges.json","uuid":"349ct10madzg8gg"},{"filename":"authorize.json","uuid":"19ijga10m79acoeg"},{"filename":"refunds.json","uuid":"dl82et2flwm5596msb"},{"filename":"tokens.json","uuid":"3i46r2hm9mkdhz6"},{"filename":"cards.json","uuid":"5eq312mbrnhuxf"},{"filename":"business.json","uuid":"1c8zg4gpm7vr3s3z"},{"filename":"wallet.json","uuid":"gh4j02tlgz22lcx"},{"filename":"bank-account.json","uuid":"rowbe8al4cryk27"},{"filename":"orders.json","uuid":"3q14mrl696q690"},{"filename":"products.json","uuid":"3qzzvi3tl47cu29u"},{"filename":"merchant.json","uuid":"13wqkvhm6un0ezg"},{"filename":"invoices.json","uuid":"4t7pm13h28ab"},{"filename":"fulfilment-provider.json","uuid":"3xilk24l47cva7j"},{"filename":"fulfilment-carrier.json","uuid":"9b42el47cvdg5"},{"filename":"carrier-aggregator.json","uuid":"3qzzvi1qcl47cvhog"},{"filename":"currency.json","uuid":"de0m3xl4dugc1p"},{"filename":"recurring.json","uuid":"9b416l47cvyto"},{"filename":"customers.json","uuid":"fi2jg2mc65fuxv"},{"filename":"users.json","uuid":"3qzzvi125l47cv6k8"},{"filename":"operator.json","uuid":"4wamrg9m6enzk9e"},{"filename":"developer.json","uuid":"55o0d20l47cw6g9"},{"filename":"dev-house.json","uuid":"3xilk3sl47cwei4"},{"filename":"files.json","uuid":"2lnj72plzkz7x76"},{"filename":"destinations.json","uuid":"4wama1um6euu8w3"},{"filename":"file-link.json","uuid":"9b41hl47cwqwd"},{"filename":"document.json","uuid":"18xlpjl47cwukq"},{"filename":"disputes.json","uuid":"15lscrgm6yzk5md"},{"filename":"entity.json","uuid":"12483h4rl47cup3h"},{"filename":"brand.json","uuid":"1dp2k221lgz1vs4c"},{"filename":"branch.json","uuid":"3qzzvikl47cuxrk"},{"filename":"token-apple-pay.json","uuid":"7co71om1p0df85"},{"filename":"tokens-saved-card.json","uuid":"a0rzzx1fvlm9mjg6jh"},{"filename":"lead.json","uuid":"87rx2rm49rik7x"},{"filename":"connect.json","uuid":"d1dm11m0113pp8"},{"filename":"payout.json","uuid":"w6ncd2ym059ijae"},{"filename":"statement.json","uuid":"p2ulzigigja"},{"filename":"lead-new.json","uuid":"75l1bm75sm3ja"},{"filename":"transfers.json","uuid":"4da2rm5qtchiu"},{"filename":"token-samsung-pay.json","uuid":"3v9bvivimm52n8bps"},{"filename":"bin.json","uuid":"aspw37m6kpipc4"},{"filename":"tokens-encrypted-card.json","uuid":"9kzom9mku6ag"}],"source":"readme"},{"_id":"644a70bd812ae70050038744","version":"1.1","version_clean":"1.1.0","codename":"v1.1","is_stable":false,"is_beta":true,"is_hidden":true,"is_deprecated":false,"categories":["609181673ecbe5000fceea4b","609181673ecbe5000fceea4b","6091b3f99674c400163bff89","6091b4039cd053001ccd75ca","644a70bd812ae70050038622","644a70bd812ae70050038623","644a70bd812ae70050038624","644a70bd812ae70050038625","6095bd6196b92a00118b459d","6095bd978a10e0006bc46b06","6095bde7c1dc50001c095fa9","6096df8e16bd240064459165","644a70bd812ae70050038626","644a70bd812ae70050038627","644a70bd812ae70050038628","644a70bd812ae70050038629","60b458201c9e210016124e07","60b459da24cfd70073180153","60b45b397314140071385c1f","60b45c0e1a9223001c137851","60b45c742dbc65002b1ccfa9","60c048f5bc086f006399b817","60c0493ea600cc005e71953a","60c0497796c2af0033eb3e4c","60c049c35d4d8a000f1cc810","644a70bd812ae7005003862a","644a70bd812ae7005003862b","644a70bd812ae7005003862c","60c98862c86ae9000fbf55fc","644a70bd812ae7005003862d","60e605d60fae0c000f2d243a","644a70bd812ae7005003862e","614ae981229ec80062e09c91","644a70bd812ae7005003862f","614b1f21292222023c90b303","644a70bd812ae70050038630","644a70bd812ae70050038631","614c0577816706007abd6e04","614c05e3b9b417000f0394f0","614c14bd0ed1aa0043a6b0bc","614c25dd49cf1b000f94557a","644a70bd812ae70050038632","614c68879cee70000f672ffc","614c6b72a2b5e50079ebc763","644a70bd812ae70050038633","644a70bd812ae70050038634","614c7d2c2c92f3001eb10ea0","644a70bd812ae70050038635","614debc2daabc80041992905","614df6734993df0029e4c28a","61501840584f4d004a701a59","6150219595ff56000faf6692","6150257421f82e001800da63","644a70bd812ae70050038636","615040c71995710018ff6da5","61504a794dd368011f2b767b","615051fd186f32002a3e7fe8","61505a219f352800437308a9","6153ecce49305f0036ccabe9","6153ecfaa256830074bc16ab","6153ed21f89c000077626b46","644a70bd812ae70050038637","6376b4a52ac94400030a8954","644a369fbc093f0068977db7","644a38f00df056000a1f7be9","644a70bd812ae70050038638","644a3fbbdc577706e617bf5c","644a43f116cff60015341077","644a5a710734260047a5c1c0","644a70bd812ae70050038639","644a70bd812ae7005003863a","644a70be812ae70050038748","6489964737cd94004d8de976","6568a3be3dc23e006b7666f3"],"project":"609181673ecbe5000fceea44","releaseDate":"2021-05-04T17:16:23.435Z","createdAt":"2021-05-04T17:16:23.435Z","__v":1,"forked_from":"609181673ecbe5000fceea49","updatedAt":"2025-06-11T23:49:37.880Z","apiRegistries":[{"filename":"subscription.json","uuid":"b6gv13l47hrwt4"},{"filename":"create-a-charge.json","uuid":"3uimz3dlgyve3o1"},{"filename":"retrieve-a-charge.json","uuid":"7mu3pu1ykpvf43zg"},{"filename":"authorize.json","uuid":"2ljr53cl372tgl3"},{"filename":"list-all-charges.json","uuid":"1mld74kq6wk65u"},{"filename":"charges.json","uuid":"gh4j027ulgz0w4ja"},{"filename":"refunds.json","uuid":"3xilk1cl47csx66"},{"filename":"cards.json","uuid":"9b413l46zg22f"},{"filename":"wallet.json","uuid":"gh4j02tlgz22lcx"},{"filename":"merchant.json","uuid":"3qzzvi1pl47cuckn"},{"filename":"tokens.json","uuid":"16vcze2tlgz28gql"},{"filename":"fulfilment-provider.json","uuid":"3xilk24l47cva7j"},{"filename":"products.json","uuid":"3qzzvi3tl47cu29u"},{"filename":"bank-account.json","uuid":"rowbe8al4cryk27"},{"filename":"business.json","uuid":"j3gu10lgz3bs7h"},{"filename":"orders.json","uuid":"3q14mrl696q690"},{"filename":"fulfilment-carrier.json","uuid":"9b42el47cvdg5"},{"filename":"invoices.json","uuid":"55o0d2gl47cu610"},{"filename":"billing.json"},{"filename":"carrier-aggregator.json","uuid":"3qzzvi1qcl47cvhog"},{"filename":"currency.json","uuid":"de0m3xl4dugc1p"},{"filename":"customers.json","uuid":"sxbqhm94pl47cv1y7"},{"filename":"users.json","uuid":"3qzzvi125l47cv6k8"},{"filename":"operator.json","uuid":"3uimz1jalgz3r91f"},{"filename":"recurring.json","uuid":"9b416l47cvyto"},{"filename":"entity.json","uuid":"12483h4rl47cup3h"},{"filename":"destination.json","uuid":"55o0d4kl47cugy3"},{"filename":"token-apple-pay.json","uuid":"1dp2k22olgywf8fv"},{"filename":"file-link.json","uuid":"9b41hl47cwqwd"},{"filename":"developer.json","uuid":"55o0d20l47cw6g9"},{"filename":"document.json","uuid":"18xlpjl47cwukq"},{"filename":"branch.json","uuid":"3qzzvikl47cuxrk"},{"filename":"brand.json","uuid":"1dp2k221lgz1vs4c"},{"filename":"files.json","uuid":"gh4j02drlgz3lxkk"},{"filename":"dev-house.json","uuid":"3xilk3sl47cwei4"},{"filename":"disputes.json"},{"filename":"tokens-saved-card.json","uuid":"22qv752ylgyzzx2y"}],"pdfStatus":"","source":"readme"}],"variableDefaults":[{"source":"security","_id":"62e8bff18f830d02d6155225","name":"Authorization","type":"apiKey","default":"sk_test_oqAcdQztv84agVkCBZEup0Hh","apiSetting":"614aeaa22843b7000fe98330"},{"source":"security","_id":"646b514404003f0045ac6eda","name":"test","type":"apiKey","default":"test","apiSetting":"644a369fbc093f0068977db4"}],"webhookEnabled":false,"isHubEditable":true},"projectStore":{"data":{"allow_crawlers":"disabled","canonical_url":null,"default_version":{"name":"1.0"},"description":null,"glossary":[{"_id":"609181673ecbe5000fceea45","term":"parliament","definition":"Owls are generally solitary, but when seen together the group is called a 'parliament'!"},{"_id":"644a67ce58a5e3035857ee5f","term":"MID","definition":"Merchant ID"},{"_id":"65cb1bc0a5ae180057f5b1ac","term":"charge_id","definition":"Charge_id is the transaction id"},{"_id":"65cb1c46a5f15f002857ddb3","term":"destinations","definition":"Destinations in this context refer to specific entities or accounts where portions of a transaction amount are directed to a single/multiple accounts."}],"homepage_url":"https://www.tap.company/","id":"609181673ecbe5000fceea44","name":"Tap API Docs 1.0","parent":null,"redirects":[],"sitemap":"disabled","llms_txt":"disabled","subdomain":"tappayments","suggested_edits":"disabled","uri":"/projects/me","variable_defaults":[{"name":"Authorization","default":"sk_test_oqAcdQztv84agVkCBZEup0Hh","source":"security","type":"apiKey","id":"62e8bff18f830d02d6155225"},{"name":"test","default":"test","source":"security","type":"apiKey","id":"646b514404003f0045ac6eda"}],"webhooks":[],"api_designer":{"allow_editing":"enabled"},"custom_login":{"login_url":null,"logout_url":null},"features":{"mdx":"enabled"},"mcp":{},"onboarding_completed":{"api":true,"appearance":true,"documentation":true,"domain":true,"jwt":false,"logs":true,"metricsSDK":false},"pages":{"not_found":null},"privacy":{"openapi":"admin","password":null,"view":"public"},"refactored":{"status":"enabled","migrated":"successful"},"seo":{"overwrite_title_tag":"disabled"},"plan":{"type":"business2018","grace_period":{"enabled":false,"end_date":null},"trial":{"expired":false,"end_date":"2021-09-14T17:16:23.387Z"}},"reference":{"api_sdk_snippets":"enabled","defaults":"always_use","json_editor":"enabled","oauth_flows":"disabled","request_history":"enabled","response_examples":"collapsed","response_schemas":"collapsed","sdk_snippets":{"external":"disabled"}},"health_check":{"provider":"manual","settings":{"manual":{"status":"up","url":"http://www.tap.company/"},"statuspage":{"id":null}}},"integrations":{"aws":{"readme_webhook_login":{"region":null,"external_id":null,"role_arn":null,"usage_plan_id":null}},"bing":{"verify":null},"google":{"analytics":null,"site_verification":null},"heap":{"id":null},"koala":{"key":null},"localize":{"key":null},"postman":{"key":null,"client_id":null,"client_secret":null},"recaptcha":{"site_key":null,"secret_key":null},"segment":{"key":null,"domain":null},"speakeasy":{"key":null,"spec_url":null},"stainless":{"key":null,"name":null},"typekit":{"key":null},"zendesk":{"subdomain":null},"intercom":{"app_id":null,"secure_mode":{"key":null,"email_only":false}}},"permissions":{"appearance":{"private_label":"enabled","custom_code":{"css":"enabled","html":"enabled","js":"disabled"}},"branches":{"merge":{"admin":true}}},"appearance":{"brand":{"primary_color":"#343740","link_color":"#1F88D0","theme":"system"},"changelog":{"layout":"collapsed","show_author":true,"show_exact_date":false},"layout":{"full_width":"disabled","style":"classic"},"markdown":{"callouts":{"icon_font":"emojis"}},"table_of_contents":"enabled","whats_next_label":null,"footer":{"readme_logo":"hide"},"logo":{"size":"large","dark_mode":{"uri":null,"url":"https://files.readme.io/cc73b8e-tap-logo-white.svg","name":"cc73b8e-tap-logo-white.svg","width":300,"height":124,"color":"#000000","links":{"original_url":null}},"main":{"uri":null,"url":"https://files.readme.io/c7b8517-small-Tapcircle_gray.png","name":"c7b8517-small-Tapcircle_gray.png","width":81,"height":80,"color":"#4c4948","links":{"original_url":"https://files.readme.io/63fefd0-Tapcircle_gray.png"}},"favicon":{"uri":null,"url":"https://files.readme.io/ab5c5ff-small-Tapcircle_gray.png","name":"ab5c5ff-small-Tapcircle_gray.png","width":32,"height":32,"color":"#4c4948","links":{"original_url":"https://files.readme.io/12da5df-Tapcircle_gray.png"}}},"custom_code":{"css":"[data-color-mode=\"light\"] {\n --font-family: Roboto, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif !important;\n --font-weight-bold: 400 !important;\n}\n\n.heading-text {font-weight:400 !important;}\n\n[data-color-mode=\"dark\"] {\n--color-bg-page: #101010 !important;\n --font-family: Roboto, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif !important;\n --font-weight-bold: 400 !important;\n}","js":null,"html":{"header":null,"home_footer":null,"page_footer":null}},"header":{"type":"gradient","gradient_color":"#101010","link_style":"buttons","overlay":{"fill":"auto","type":"triangles","position":"top-left","image":{"uri":null,"url":null,"name":null,"width":null,"height":null,"color":null,"links":{"original_url":null}}}},"ai":{"dropdown":"disabled","options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","copilot":"enabled","view_as_markdown":"enabled"}},"navigation":{"first_page":"landing_page","left":[{"type":"home","title":null,"url":null,"custom_page":null}],"logo_link":"landing_page","page_icons":"enabled","right":[{"type":"user_controls","title":null,"url":null,"custom_page":null}],"sub_nav":[],"subheader_layout":"links","version":"disabled","links":{"home":{"label":"Home","visibility":"enabled"},"graphql":{"label":"GraphQL","visibility":"disabled"},"guides":{"label":"Guides","alias":null,"visibility":"enabled"},"reference":{"label":"API Reference","alias":null,"visibility":"enabled"},"recipes":{"label":"Recipes","alias":null,"visibility":"disabled"},"changelog":{"label":"Changelog","alias":null,"visibility":"disabled"},"discussions":{"label":"Discussions","alias":null,"visibility":"disabled"}}}},"git":{"connection":{"repository":{},"organization":null,"status":"inactive"}}}},"version":{"_id":"609181673ecbe5000fceea49","version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":true,"is_hidden":false,"is_deprecated":false,"categories":["609181673ecbe5000fceea4b","609181673ecbe5000fceea4b","6091b3f99674c400163bff89","6091b4039cd053001ccd75ca","6091b9cabd08070044290985","6091ccd39405f5003a584a51","6091cd389f45cb00560bfd03","6095b97114006a014f3f1d4f","6095bd6196b92a00118b459d","6095bd978a10e0006bc46b06","6095bde7c1dc50001c095fa9","6096df8e16bd240064459165","60983af7df1158001ef2eff9","60999756d42c46007b006a79","609a3ad9f4596b0050872a03","60a2bbf7f3adf5002a9ad72e","60b458201c9e210016124e07","60b459da24cfd70073180153","60b45b397314140071385c1f","60b45c0e1a9223001c137851","60b45c742dbc65002b1ccfa9","60c048f5bc086f006399b817","60c0493ea600cc005e71953a","60c0497796c2af0033eb3e4c","60c049c35d4d8a000f1cc810","60c511d4f4a6fa004573f9ba","60c7e530bf52a5007f7da43b","60c9451d403b6900502989a6","60c98862c86ae9000fbf55fc","60d7a1f88b948a002ae79f91","60e605d60fae0c000f2d243a","6138f44d0c99ef0056745ae3","614ae981229ec80062e09c91","614aeaa22843b7000fe98332","614b1f21292222023c90b303","614b22b70a462c0071358ecb","614b36dc0437a7005d3a27ac","614c0577816706007abd6e04","614c05e3b9b417000f0394f0","614c14bd0ed1aa0043a6b0bc","614c25dd49cf1b000f94557a","614c67015a05e4005eb0b229","614c68879cee70000f672ffc","614c6b72a2b5e50079ebc763","614c6ed3218f16018b270eb1","614c7646f73c16007a5a8aeb","614c7d2c2c92f3001eb10ea0","614cd14a5c65ab006915b506","614debc2daabc80041992905","614df6734993df0029e4c28a","61501840584f4d004a701a59","6150219595ff56000faf6692","6150257421f82e001800da63","6150275dbca0e4004298279e","615040c71995710018ff6da5","61504a794dd368011f2b767b","615051fd186f32002a3e7fe8","61505a219f352800437308a9","6153ecce49305f0036ccabe9","6153ecfaa256830074bc16ab","6153ed21f89c000077626b46","62a1cb5617d8250093bbbf92","6376b4a52ac94400030a8954","644a369fbc093f0068977db7","644a38f00df056000a1f7be9","644a3c522a4b60077da18217","644a3fbbdc577706e617bf5c","644a43f116cff60015341077","644a5a710734260047a5c1c0","644a5b4ee93098000e224bac","644a6270d93cb6001a427e3b","646f3e102383c2072331c68c","647991b6a0313a00129bd1fd","648788082dca3b006c55f1b7","648ae3732d238b18720af010","64e83253f6aaa5006b197201","64e832538f7a1b001eff2152","64e8325384659a000d0766e3","64edd6ce1724b40037e6fe1a","6522b6c8af0e280013431b5c","653823f82c69e10038a3e744","65389026e52461000dff867f","654374aead28ee079008c5dc","6568a3f3ba96d8003f9ea0fa","6568a56bc9523700546a9ef0","6568a5a787accf003276274f","6568a5aeae53490078c17a6c","6568a5b64b48fc00642149e6","6568a5d7dcc06700319d0e51","658d55099134010010d83873","65aced7eeae0c00064957786","65df3397c4edf7005ad80c7e","6668c34424783c005237566d","66694dbf87bcd400146ac4f9","668ff1aedcb1740059c46dbf","668ff71289edb900543cbec5","668ffaa3e1b39200315fc95f","668ffaf5bf6d8c007157b7c9","66a20c1a4afc0a004a9ae1d8","66acc94362fd700054bce0a7","66accb01de3aa400127c615f","66b46a6cdf2832002a032359","66cc86934be3ef0018b72d84","673d965f9a77b00010d6b174","676ad7a0cfc66e00119406e5","676c002f13121d0efc2c1414","67965682dc3afe0044f1e853","679659c59bb515808b5a1c5b","679c9509e0f3a50036b05069","67a9d8bc885ab100723ce638","67a9d9acceb469005ecf7f77","680214474bd36300611d90ad"],"project":"609181673ecbe5000fceea44","releaseDate":"2021-05-04T17:16:23.435Z","createdAt":"2021-05-04T17:16:23.435Z","__v":13,"updatedAt":"2025-06-21T11:38:59.830Z","pdfStatus":"complete","apiRegistries":[{"filename":"subscription.json","uuid":"pavp975ilhgaala8"},{"filename":"charges.json","uuid":"349ct10madzg8gg"},{"filename":"authorize.json","uuid":"19ijga10m79acoeg"},{"filename":"refunds.json","uuid":"dl82et2flwm5596msb"},{"filename":"tokens.json","uuid":"3i46r2hm9mkdhz6"},{"filename":"cards.json","uuid":"5eq312mbrnhuxf"},{"filename":"business.json","uuid":"1c8zg4gpm7vr3s3z"},{"filename":"wallet.json","uuid":"gh4j02tlgz22lcx"},{"filename":"bank-account.json","uuid":"rowbe8al4cryk27"},{"filename":"orders.json","uuid":"3q14mrl696q690"},{"filename":"products.json","uuid":"3qzzvi3tl47cu29u"},{"filename":"merchant.json","uuid":"13wqkvhm6un0ezg"},{"filename":"invoices.json","uuid":"4t7pm13h28ab"},{"filename":"fulfilment-provider.json","uuid":"3xilk24l47cva7j"},{"filename":"fulfilment-carrier.json","uuid":"9b42el47cvdg5"},{"filename":"carrier-aggregator.json","uuid":"3qzzvi1qcl47cvhog"},{"filename":"currency.json","uuid":"de0m3xl4dugc1p"},{"filename":"recurring.json","uuid":"9b416l47cvyto"},{"filename":"customers.json","uuid":"fi2jg2mc65fuxv"},{"filename":"users.json","uuid":"3qzzvi125l47cv6k8"},{"filename":"operator.json","uuid":"4wamrg9m6enzk9e"},{"filename":"developer.json","uuid":"55o0d20l47cw6g9"},{"filename":"dev-house.json","uuid":"3xilk3sl47cwei4"},{"filename":"files.json","uuid":"2lnj72plzkz7x76"},{"filename":"destinations.json","uuid":"4wama1um6euu8w3"},{"filename":"file-link.json","uuid":"9b41hl47cwqwd"},{"filename":"document.json","uuid":"18xlpjl47cwukq"},{"filename":"disputes.json","uuid":"15lscrgm6yzk5md"},{"filename":"entity.json","uuid":"12483h4rl47cup3h"},{"filename":"brand.json","uuid":"1dp2k221lgz1vs4c"},{"filename":"branch.json","uuid":"3qzzvikl47cuxrk"},{"filename":"token-apple-pay.json","uuid":"7co71om1p0df85"},{"filename":"tokens-saved-card.json","uuid":"a0rzzx1fvlm9mjg6jh"},{"filename":"lead.json","uuid":"87rx2rm49rik7x"},{"filename":"connect.json","uuid":"d1dm11m0113pp8"},{"filename":"payout.json","uuid":"w6ncd2ym059ijae"},{"filename":"statement.json","uuid":"p2ulzigigja"},{"filename":"lead-new.json","uuid":"75l1bm75sm3ja"},{"filename":"transfers.json","uuid":"4da2rm5qtchiu"},{"filename":"token-samsung-pay.json","uuid":"3v9bvivimm52n8bps"},{"filename":"bin.json","uuid":"aspw37m6kpipc4"},{"filename":"tokens-encrypted-card.json","uuid":"9kzom9mku6ag"}],"source":"readme"}},"is404":false,"isDetachedProductionSite":false,"lang":"en","langFull":"Default","reqUrl":"/docs/webhook","version":{"_id":"609181673ecbe5000fceea49","version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":true,"is_hidden":false,"is_deprecated":false,"categories":["609181673ecbe5000fceea4b","609181673ecbe5000fceea4b","6091b3f99674c400163bff89","6091b4039cd053001ccd75ca","6091b9cabd08070044290985","6091ccd39405f5003a584a51","6091cd389f45cb00560bfd03","6095b97114006a014f3f1d4f","6095bd6196b92a00118b459d","6095bd978a10e0006bc46b06","6095bde7c1dc50001c095fa9","6096df8e16bd240064459165","60983af7df1158001ef2eff9","60999756d42c46007b006a79","609a3ad9f4596b0050872a03","60a2bbf7f3adf5002a9ad72e","60b458201c9e210016124e07","60b459da24cfd70073180153","60b45b397314140071385c1f","60b45c0e1a9223001c137851","60b45c742dbc65002b1ccfa9","60c048f5bc086f006399b817","60c0493ea600cc005e71953a","60c0497796c2af0033eb3e4c","60c049c35d4d8a000f1cc810","60c511d4f4a6fa004573f9ba","60c7e530bf52a5007f7da43b","60c9451d403b6900502989a6","60c98862c86ae9000fbf55fc","60d7a1f88b948a002ae79f91","60e605d60fae0c000f2d243a","6138f44d0c99ef0056745ae3","614ae981229ec80062e09c91","614aeaa22843b7000fe98332","614b1f21292222023c90b303","614b22b70a462c0071358ecb","614b36dc0437a7005d3a27ac","614c0577816706007abd6e04","614c05e3b9b417000f0394f0","614c14bd0ed1aa0043a6b0bc","614c25dd49cf1b000f94557a","614c67015a05e4005eb0b229","614c68879cee70000f672ffc","614c6b72a2b5e50079ebc763","614c6ed3218f16018b270eb1","614c7646f73c16007a5a8aeb","614c7d2c2c92f3001eb10ea0","614cd14a5c65ab006915b506","614debc2daabc80041992905","614df6734993df0029e4c28a","61501840584f4d004a701a59","6150219595ff56000faf6692","6150257421f82e001800da63","6150275dbca0e4004298279e","615040c71995710018ff6da5","61504a794dd368011f2b767b","615051fd186f32002a3e7fe8","61505a219f352800437308a9","6153ecce49305f0036ccabe9","6153ecfaa256830074bc16ab","6153ed21f89c000077626b46","62a1cb5617d8250093bbbf92","6376b4a52ac94400030a8954","644a369fbc093f0068977db7","644a38f00df056000a1f7be9","644a3c522a4b60077da18217","644a3fbbdc577706e617bf5c","644a43f116cff60015341077","644a5a710734260047a5c1c0","644a5b4ee93098000e224bac","644a6270d93cb6001a427e3b","646f3e102383c2072331c68c","647991b6a0313a00129bd1fd","648788082dca3b006c55f1b7","648ae3732d238b18720af010","64e83253f6aaa5006b197201","64e832538f7a1b001eff2152","64e8325384659a000d0766e3","64edd6ce1724b40037e6fe1a","6522b6c8af0e280013431b5c","653823f82c69e10038a3e744","65389026e52461000dff867f","654374aead28ee079008c5dc","6568a3f3ba96d8003f9ea0fa","6568a56bc9523700546a9ef0","6568a5a787accf003276274f","6568a5aeae53490078c17a6c","6568a5b64b48fc00642149e6","6568a5d7dcc06700319d0e51","658d55099134010010d83873","65aced7eeae0c00064957786","65df3397c4edf7005ad80c7e","6668c34424783c005237566d","66694dbf87bcd400146ac4f9","668ff1aedcb1740059c46dbf","668ff71289edb900543cbec5","668ffaa3e1b39200315fc95f","668ffaf5bf6d8c007157b7c9","66a20c1a4afc0a004a9ae1d8","66acc94362fd700054bce0a7","66accb01de3aa400127c615f","66b46a6cdf2832002a032359","66cc86934be3ef0018b72d84","673d965f9a77b00010d6b174","676ad7a0cfc66e00119406e5","676c002f13121d0efc2c1414","67965682dc3afe0044f1e853","679659c59bb515808b5a1c5b","679c9509e0f3a50036b05069","67a9d8bc885ab100723ce638","67a9d9acceb469005ecf7f77","680214474bd36300611d90ad"],"project":"609181673ecbe5000fceea44","releaseDate":"2021-05-04T17:16:23.435Z","createdAt":"2021-05-04T17:16:23.435Z","__v":13,"updatedAt":"2025-06-21T11:38:59.830Z","pdfStatus":"complete","apiRegistries":[{"filename":"subscription.json","uuid":"pavp975ilhgaala8"},{"filename":"charges.json","uuid":"349ct10madzg8gg"},{"filename":"authorize.json","uuid":"19ijga10m79acoeg"},{"filename":"refunds.json","uuid":"dl82et2flwm5596msb"},{"filename":"tokens.json","uuid":"3i46r2hm9mkdhz6"},{"filename":"cards.json","uuid":"5eq312mbrnhuxf"},{"filename":"business.json","uuid":"1c8zg4gpm7vr3s3z"},{"filename":"wallet.json","uuid":"gh4j02tlgz22lcx"},{"filename":"bank-account.json","uuid":"rowbe8al4cryk27"},{"filename":"orders.json","uuid":"3q14mrl696q690"},{"filename":"products.json","uuid":"3qzzvi3tl47cu29u"},{"filename":"merchant.json","uuid":"13wqkvhm6un0ezg"},{"filename":"invoices.json","uuid":"4t7pm13h28ab"},{"filename":"fulfilment-provider.json","uuid":"3xilk24l47cva7j"},{"filename":"fulfilment-carrier.json","uuid":"9b42el47cvdg5"},{"filename":"carrier-aggregator.json","uuid":"3qzzvi1qcl47cvhog"},{"filename":"currency.json","uuid":"de0m3xl4dugc1p"},{"filename":"recurring.json","uuid":"9b416l47cvyto"},{"filename":"customers.json","uuid":"fi2jg2mc65fuxv"},{"filename":"users.json","uuid":"3qzzvi125l47cv6k8"},{"filename":"operator.json","uuid":"4wamrg9m6enzk9e"},{"filename":"developer.json","uuid":"55o0d20l47cw6g9"},{"filename":"dev-house.json","uuid":"3xilk3sl47cwei4"},{"filename":"files.json","uuid":"2lnj72plzkz7x76"},{"filename":"destinations.json","uuid":"4wama1um6euu8w3"},{"filename":"file-link.json","uuid":"9b41hl47cwqwd"},{"filename":"document.json","uuid":"18xlpjl47cwukq"},{"filename":"disputes.json","uuid":"15lscrgm6yzk5md"},{"filename":"entity.json","uuid":"12483h4rl47cup3h"},{"filename":"brand.json","uuid":"1dp2k221lgz1vs4c"},{"filename":"branch.json","uuid":"3qzzvikl47cuxrk"},{"filename":"token-apple-pay.json","uuid":"7co71om1p0df85"},{"filename":"tokens-saved-card.json","uuid":"a0rzzx1fvlm9mjg6jh"},{"filename":"lead.json","uuid":"87rx2rm49rik7x"},{"filename":"connect.json","uuid":"d1dm11m0113pp8"},{"filename":"payout.json","uuid":"w6ncd2ym059ijae"},{"filename":"statement.json","uuid":"p2ulzigigja"},{"filename":"lead-new.json","uuid":"75l1bm75sm3ja"},{"filename":"transfers.json","uuid":"4da2rm5qtchiu"},{"filename":"token-samsung-pay.json","uuid":"3v9bvivimm52n8bps"},{"filename":"bin.json","uuid":"aspw37m6kpipc4"},{"filename":"tokens-encrypted-card.json","uuid":"9kzom9mku6ag"}],"source":"readme"},"gitVersion":{"base":null,"display_name":null,"name":"1.0","release_stage":"beta","source":"readme","state":"current","updated_at":"2025-07-17T14:59:25.000Z","uri":"/branches/1.0","privacy":{"view":"default"}},"versions":{"total":2,"page":1,"per_page":100,"paging":{"next":null,"previous":null,"first":"/tappayments/api-next/v2/branches?page=1&per_page=100","last":null},"data":[{"base":null,"display_name":null,"name":"1.0","release_stage":"beta","source":"readme","state":"current","updated_at":"2025-07-17T14:59:25.323Z","uri":"/branches/1.0","privacy":{"view":"default"}},{"base":"1.0","display_name":"v1.1","name":"1.1","release_stage":"beta","source":"readme","state":"current","updated_at":"2025-06-16T13:38:18.010Z","uri":"/branches/1.1","privacy":{"view":"hidden"}}],"type":"version"}}">