diff --git a/authorize_net/CHANGELOG.md b/authorize_net/CHANGELOG.md index d343bf7c205d4..c49f08584da71 100644 --- a/authorize_net/CHANGELOG.md +++ b/authorize_net/CHANGELOG.md @@ -1,6 +1,6 @@ # CHANGELOG - authorize.net -## 1.0.0 / 2024-10-23 +## 1.0.0 / 2024-12-03 ***Added***: diff --git a/authorize_net/README.md b/authorize_net/README.md index 8ea656afd8068..1c26c02daa216 100644 --- a/authorize_net/README.md +++ b/authorize_net/README.md @@ -1,35 +1,66 @@ # Authorize.Net ## Overview +[Authorize.Net][1] is a payment gateway that allows businesses to accept secure payments through various channels, including online, mobile, and in-person transactions. It supports a range of payment methods such as credit cards, e-checks, and digital wallets, and offers a versatile solution for merchants. The platform emphasizes security with features like encryption, tokenization, and PCI DSS compliance, while also providing advanced fraud detection tools. -Authorize.Net is a widely used payment gateway that allows businesses to accept secure payments through various channels, including online, mobile, and in-person transactions. Supporting a range of payment methods such as credit cards, e-checks, and digital wallets like Apple Pay and PayPal, it offers a versatile solution for merchants. The platform emphasizes security with features like encryption, tokenization, and PCI DSS compliance, while also providing advanced fraud detection tools +The Authorize.Net integration collects settled transaction logs and unsettled transaction metrics, and forwards them to Datadog for comprehensive analysis. ## Setup -### Configuration +### Generate Login ID and Transaction Key in Authorize.Net -!!! Add list of steps to set up this integration !!! +#### Login ID -### Validation +1. Visit the appropriate URL: + - For a production environment, visit [login.authorize.net][2]. + - For a sandbox environment, visit [sandbox.authorize.net][5]. +2. Sign in to your Authorize.Net account with a user which has access to the **Account Administrator** role. +3. Go to **Account > Security Settings > General Security Settings**. +4. Click **API Credentials & Keys**. +5. Use the API Login ID as the `Login ID` value when you [connect your Authorize.Net account to Datadog](#connect-your-authorizenet-account-to-datadog). -!!! Add steps to validate integration is functioning as expected !!! +#### Transaction Key + +1. On the same page, click **New Transaction Key** and then **Submit**. +2. A popup is displayed to verify your identity; click **Request PIN**. +3. Enter the PIN you received through email, and click **Verify PIN**. +4. Use the Transaction Key value when you [connect your Authorize.Net account to Datadog](#connect-your-authorizenet-account-to-datadog). +5. Click **Continue**. + +### Connect your Authorize.Net Account to Datadog + +1. Add your Login ID, Transaction Key, and Environment Type. + + |Parameters| Description | + |--------------------|------------------------------------------------------------------------------------------------| + |Login ID| API Login ID for your Authorize.Net account. | + |Transaction Key| Transaction Key for your Authorize.Net account. | + |Environment Type| Dropdown to select the environment type for your Authorize.Net account (Production or Sandbox). | + +2. Click the **Save** button to save your settings. ## Data Collected -### Logs +### Logs -The Authorize.Net integration collects and forward settled transaction logs to Datadog. +The Authorize.Net integration collects and forwards settled transaction logs to Datadog. ### Metrics -The Authorize.Net integration collects and forward metrics to Datadog. +The Authorize.Net integration collects and forwards unsettled transaction metrics to Datadog. + +{{< get-metrics-from-git "authorize_net" >}} ### Events The Authorize.Net integration does not include any events. -## Troubleshooting +## Support -Need help? Contact [Datadog support][1]. +For further assistance, contact [Datadog Support][4]. -[1]: https://docs.datadoghq.com/help/ \ No newline at end of file +[1]: https://www.authorize.net/ +[2]: https://login.authorize.net/ +[3]: https://github.com/DataDog/integrations-core/blob/master/Authorize.Net/metadata.csv +[4]: https://docs.datadoghq.com/help/ +[5]: https://sandbox.authorize.net/ \ No newline at end of file diff --git a/authorize_net/assets/authorizenet_logo.svg b/authorize_net/assets/authorizenet_logo.svg new file mode 100644 index 0000000000000..50ffb390e4d36 --- /dev/null +++ b/authorize_net/assets/authorizenet_logo.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/authorize_net/assets/dashboards/authorize_net_settled_transactions.json b/authorize_net/assets/dashboards/authorize_net_settled_transactions.json new file mode 100644 index 0000000000000..f37bde4c3a5e6 --- /dev/null +++ b/authorize_net/assets/dashboards/authorize_net_settled_transactions.json @@ -0,0 +1,2024 @@ +{ + "title": "Authorize.Net Settled Transactions", + "description": "The Settled Transactions Dashboard provides an analysis of all transactions processed through Authorize.Net. It includes Total Settled Transactions, breakdowns by Account Type, Market Type, Product, Status, and Customer Profile ID. The dashboard highlights financial metrics like Average Amount per Transaction and amounts for various transaction statuses. It also tracks transaction errors, offering insights to optimize processes, with historical trends and logs for tracking over time.", + "widgets": [ + { + "id": 479839251075174, + "definition": { + "type": "image", + "url": "https://www.authorize.net/content/dam/anet-redesign/reseller/authorizenet-200x50.png", + "url_dark_theme": "https://www.authorize.net/content/dam/anet-redesign/reseller/authorizenet-200x50.png", + "sizing": "contain", + "has_background": false, + "has_border": false, + "vertical_align": "center", + "horizontal_align": "center" + }, + "layout": { + "x": 0, + "y": 0, + "width": 5, + "height": 1 + } + }, + { + "id": 3733219169225246, + "definition": { + "title": "Monitors Summary", + "background_color": "vivid_blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 6686306269250720, + "definition": { + "title": "Monitors Summary", + "type": "manage_status", + "display_format": "countsAndList", + "color_preference": "text", + "hide_zero_counts": true, + "show_status": true, + "last_triggered_format": "relative", + "query": "tag:(integration:authorize-net)", + "sort": "status,asc", + "count": 50, + "start": 0, + "summary_type": "monitors", + "show_priority": false, + "show_last_triggered": false + }, + "layout": { + "x": 0, + "y": 0, + "width": 7, + "height": 5 + } + } + ] + }, + "layout": { + "x": 5, + "y": 0, + "width": 7, + "height": 6 + } + }, + { + "id": 7823267459064258, + "definition": { + "type": "note", + "content": "**Overview**\n\nThe settled transactions dashboard provides an analysis of all transactions processed through Authorize.Net. It includes the total number of settled transactions, along with breakdowns by account type, market type, product, status, and customer profile ID. The dashboard highlights financial metrics such as the average amount per transaction and the amounts associated with various transaction statuses. It also tracks transaction errors, offering insights to optimize processes, while providing historical trends and logs for ongoing tracking over time.\n\nFor more information, see the [Authorize.Net Integration Documentation](https://docs.datadoghq.com/integrations/authorize-net/).\n\n**Tips**\n- Use the timeframe selector in the top right of the dashboard to change the default timeframe.\n- Clone this dashboard to rearrange, modify and add widgets and visualizations.", + "background_color": "white", + "font_size": "14", + "text_align": "left", + "vertical_align": "top", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left", + "has_padding": true + }, + "layout": { + "x": 0, + "y": 1, + "width": 5, + "height": 5 + } + }, + { + "id": 1710040172717478, + "definition": { + "title": "Transactions Overview", + "background_color": "vivid_blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 6452387332120694, + "definition": { + "title": "Total Settled Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "custom_bg", + "custom_bg_color": "#d6e4ff" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 7224387708228136, + "definition": { + "title": "Transactions by Status", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [ + { + "facet": "@log.transactionStatus", + "limit": 10, + "sort": { + "aggregation": "cardinality", + "order": "desc", + "metric": "@log.transId" + }, + "should_exclude_missing": true + } + ], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 4, + "y": 0, + "width": 8, + "height": 4 + } + }, + { + "id": 2582992877409154, + "definition": { + "title": "Average Amount per Transaction", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1 / query2" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "sum", + "metric": "@authorize-net.settleAmount" + }, + "storage": "hot" + }, + { + "data_source": "logs", + "name": "query2", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:authorize-net $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_green" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 2, + "width": 4, + "height": 2 + } + } + ] + }, + "layout": { + "x": 0, + "y": 6, + "width": 12, + "height": 5 + } + }, + { + "id": 7885154017633722, + "definition": { + "title": "Transaction Types", + "background_color": "vivid_blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 3338417943063874, + "definition": { + "title": "Charge Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:settledSuccessfully $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_green" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 1919854325584436, + "definition": { + "title": "Declined Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:declined $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 4, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 86281589837326, + "definition": { + "title": "Expired Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:expired $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "custom_bg", + "custom_bg_color": "#e8e8e8" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 8, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 653378560300936, + "definition": { + "title": "Approved Review Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:approvedReview $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_green" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 2, + "width": 4, + "height": 2 + } + }, + { + "id": 8055691163554868, + "definition": { + "title": "Voided Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:voided $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "custom_bg", + "custom_bg_color": "#e8e8e8" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 4, + "y": 2, + "width": 4, + "height": 2 + } + }, + { + "id": 4559398446534686, + "definition": { + "title": "Refund Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:refundSettledSuccessfully $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_yellow" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 8, + "y": 2, + "width": 4, + "height": 2 + } + }, + { + "id": 8555397220884800, + "definition": { + "title": "Failed Review Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:failedReview $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 4, + "width": 4, + "height": 2 + } + }, + { + "id": 838657906825320, + "definition": { + "title": "FDS Pending Review Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:FDSPendingReview $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 4, + "y": 4, + "width": 4, + "height": 2 + } + }, + { + "id": 6961291849691622, + "definition": { + "title": "FDS Authorized Pending Review Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:FDSAuthorizedPendingReview $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 8, + "y": 4, + "width": 4, + "height": 2 + } + } + ] + }, + "layout": { + "x": 0, + "y": 11, + "width": 12, + "height": 7 + } + }, + { + "id": 3214991881193710, + "definition": { + "title": "Transaction Amounts", + "background_color": "vivid_blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 7403279095021778, + "definition": { + "title": "Charge Amount", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:settledSuccessfully $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "sum", + "metric": "@authorize-net.settleAmount" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_green" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 2159555266244958, + "definition": { + "title": "Expired Amount", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:expired $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "sum", + "metric": "@authorize-net.settleAmount" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "custom_bg", + "custom_bg_color": "#e8e8e8" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 4, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 8182448903507862, + "definition": { + "title": "Failed Review Amount", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:failedReview $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "sum", + "metric": "@authorize-net.settleAmount" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red", + "custom_bg_color": "#e8e8e8" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 8, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 933575534735328, + "definition": { + "title": "Declined Amount", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:declined $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "sum", + "metric": "@authorize-net.settleAmount" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 2, + "width": 4, + "height": 2 + } + }, + { + "id": 2353828803971168, + "definition": { + "title": "Refund Amount", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:refundSettledSuccessfully $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "sum", + "metric": "@authorize-net.settleAmount" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_yellow" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 4, + "y": 2, + "width": 4, + "height": 2 + } + }, + { + "id": 270354773471156, + "definition": { + "title": "Returned Item Amount", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:returnedItem $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "sum", + "metric": "@authorize-net.settleAmount" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_yellow" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 8, + "y": 2, + "width": 4, + "height": 2 + } + }, + { + "id": 102896489228926, + "definition": { + "title": "Amounts by Status", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [ + { + "facet": "@log.transactionStatus", + "limit": 25, + "sort": { + "aggregation": "sum", + "order": "desc", + "metric": "@authorize-net.settleAmount" + }, + "should_exclude_missing": true + } + ], + "compute": { + "aggregation": "sum", + "metric": "@authorize-net.settleAmount" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 0, + "y": 4, + "width": 12, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 18, + "width": 12, + "height": 9 + } + }, + { + "id": 411152964813790, + "definition": { + "title": "Transaction Insights by Attributes", + "background_color": "vivid_blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 2290942746883268, + "definition": { + "title": "Transactions by Account Type", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [ + { + "facet": "@log.accountType", + "limit": 10, + "sort": { + "aggregation": "cardinality", + "order": "desc", + "metric": "@log.transId" + } + } + ], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 4 + } + }, + { + "id": 5097555264892734, + "definition": { + "title": "Transactions by Customer Profile Id", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [ + { + "facet": "@log.profile.customerProfileId", + "limit": 10, + "sort": { + "aggregation": "cardinality", + "order": "desc", + "metric": "@log.transId" + }, + "should_exclude_missing": true + } + ], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 6, + "y": 0, + "width": 6, + "height": 4 + } + }, + { + "id": 5330774966160898, + "definition": { + "title": "Transactions by Product", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [ + { + "facet": "@log.product", + "limit": 10, + "sort": { + "aggregation": "cardinality", + "order": "desc", + "metric": "@log.transId" + }, + "should_exclude_missing": true + } + ], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 0, + "y": 4, + "width": 6, + "height": 4 + } + }, + { + "id": 2612080543377748, + "definition": { + "title": "Transactions by Market Type", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [ + { + "facet": "@log.marketType", + "limit": 10, + "sort": { + "aggregation": "cardinality", + "order": "desc", + "metric": "@log.transId" + }, + "should_exclude_missing": true + } + ], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 6, + "y": 4, + "width": 6, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 27, + "width": 12, + "height": 9 + } + }, + { + "id": 2556655159700946, + "definition": { + "title": "Transaction Error Insights", + "background_color": "vivid_blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 6094309214826882, + "definition": { + "title": "General Error Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:generalError $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 607457976789388, + "definition": { + "title": "Settlement Error Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:settlementError $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 4, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 1508463166301230, + "definition": { + "title": "Communication Error Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:communicationError $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 8, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 1347597849040222, + "definition": { + "title": "General Error Amount", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:generalError $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "sum", + "metric": "@authorize-net.settleAmount" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_yellow" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 2, + "width": 4, + "height": 2 + } + }, + { + "id": 737435561223620, + "definition": { + "title": "Settlement Error Amount", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:settlementError $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "sum", + "metric": "@authorize-net.settleAmount" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_yellow" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 4, + "y": 2, + "width": 4, + "height": 2 + } + }, + { + "id": 7707795158752548, + "definition": { + "title": "Communication Error Amount", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net @log.transactionStatus:communicationError $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "sum", + "metric": "@authorize-net.settleAmount" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_yellow" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 8, + "y": 2, + "width": 4, + "height": 2 + } + } + ] + }, + "layout": { + "x": 0, + "y": 36, + "width": 12, + "height": 5 + } + }, + { + "id": 3967252937037232, + "definition": { + "title": "Settled Transactions over Time", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "Settled Transactions", + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "logs", + "search": { + "query": "source:authorize-net $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status" + }, + "indexes": [ + "*" + ], + "group_by": [], + "compute": { + "aggregation": "cardinality", + "metric": "@log.transId" + }, + "storage": "hot" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 0, + "width": 12, + "height": 4 + } + }, + { + "id": 8625004099494746, + "definition": { + "title": "Settled Transaction Logs", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "response_format": "event_list", + "query": { + "data_source": "logs_stream", + "query_string": "source:authorize-net $Merchant_Id $Market_Type $Product $Batch_Id $Account_Type $Transaction_Status", + "indexes": [], + "storage": "hot" + }, + "columns": [ + { + "field": "status_line", + "width": "auto" + }, + { + "field": "timestamp", + "width": "auto" + }, + { + "field": "content", + "width": "auto" + } + ] + } + ], + "type": "list_stream" + }, + "layout": { + "x": 0, + "y": 4, + "width": 12, + "height": 4 + } + } + ], + "template_variables": [ + { + "name": "Merchant_Id", + "prefix": "@enrichment_details.merchantId", + "available_values": [], + "default": "*" + }, + { + "name": "Batch_Id", + "prefix": "@enrichment_details.batchId", + "available_values": [], + "default": "*" + }, + { + "name": "Market_Type", + "prefix": "@log.marketType", + "available_values": [], + "default": "*" + }, + { + "name": "Account_Type", + "prefix": "@log.accountType", + "available_values": [], + "default": "*" + }, + { + "name": "Transaction_Status", + "prefix": "@log.transactionStatus", + "available_values": [], + "default": "*" + }, + { + "name": "Product", + "prefix": "@log.product", + "available_values": [], + "default": "*" + } + ], + "layout_type": "ordered", + "notify_list": [], + "reflow_type": "fixed" +} \ No newline at end of file diff --git a/authorize_net/assets/dashboards/authorize_net_unsettled_transactions.json b/authorize_net/assets/dashboards/authorize_net_unsettled_transactions.json new file mode 100644 index 0000000000000..07d170de7680e --- /dev/null +++ b/authorize_net/assets/dashboards/authorize_net_unsettled_transactions.json @@ -0,0 +1,1049 @@ +{ + "title": "Authorize.Net Unsettled Transactions", + "description": "This dashboard provides a comprehensive view of unsettled transactions in Authorize.Net, highlighting average unsettled transactions and the average amount per transaction. It categorizes transactions by account type, market type, product, and status, while also tracking held transactions and trends over time. Financial metrics show the impact of unsettled transactions, aiding in issue detection and timely resolution.", + "widgets": [ + { + "id": 7072091412398420, + "definition": { + "type": "image", + "url": "https://www.authorize.net/content/dam/anet-redesign/reseller/authorizenet-200x50.png", + "url_dark_theme": "https://www.authorize.net/content/dam/anet-redesign/reseller/authorizenet-200x50.png", + "sizing": "contain", + "has_background": false, + "has_border": false, + "vertical_align": "center", + "horizontal_align": "center" + }, + "layout": { + "x": 0, + "y": 0, + "width": 2, + "height": 3 + } + }, + { + "id": 931231708983068, + "definition": { + "type": "note", + "content": "**Overview**\n\nThis dashboard provides a comprehensive view of unsettled transactions in Authorize.Net, highlighting average unsettled transactions and the average amount per transaction. It categorizes transactions by account type, market type, product, and status, while also tracking held transactions and trends over time. Financial metrics show the impact of unsettled transactions, aiding in issue detection and timely resolution.\n\nFor more information, see the [Authorize.Net Integration Documentation](https://docs.datadoghq.com/integrations/authorize-net/).\n\n**Tips**\n- Use the timeframe selector in the top right of the dashboard to change the default timeframe.\n- Clone this dashboard to rearrange, modify and add widgets and visualizations.", + "background_color": "white", + "font_size": "14", + "text_align": "left", + "vertical_align": "top", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left", + "has_padding": true + }, + "layout": { + "x": 2, + "y": 0, + "width": 10, + "height": 3 + } + }, + { + "id": 3696677750048258, + "definition": { + "title": "Transactions Overview", + "background_color": "vivid_blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 8632737630910756, + "definition": { + "title": "Average Unsettled Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:authorize_net.unsettled_transaction.total_unsettled_transactions{$Merchant_Id}.as_count()", + "aggregator": "avg" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "custom_bg", + "custom_fg_color": "#b8c9ff", + "custom_bg_color": "#e0ecff" + } + ] + } + ], + "autoscale": true, + "precision": 0, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 3, + "height": 2 + } + }, + { + "id": 1407778969919278, + "definition": { + "title": "Unsettled Transactions over Time", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "Unsettled Transactions", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.total_unsettled_transactions{$Merchant_Id}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 3, + "y": 0, + "width": 9, + "height": 3 + } + }, + { + "id": 2475928987895808, + "definition": { + "title": "Average Held Transactions", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:authorize_net.unsettled_transaction.count_by_status{status:fdspendingreview,$Merchant_Id}.as_count()", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:authorize_net.unsettled_transaction.count_by_status{status:fdsauthorizedpendingreview,$Merchant_Id}.as_count()", + "aggregator": "avg" + } + ], + "formulas": [ + { + "formula": "query1 + query2" + } + ], + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 0, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 2, + "width": 3, + "height": 2 + } + }, + { + "id": 1253103493026362, + "definition": { + "title": "Held Transactions over Time", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "FDS Pending Review Transactions", + "formula": "query1" + }, + { + "alias": "FDS Authorized Pending Review Transactions", + "formula": "query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.count_by_status{status:fdspendingreview,$Merchant_Id}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:authorize_net.unsettled_transaction.count_by_status{status:fdsauthorizedpendingreview,$Merchant_Id}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 3, + "y": 3, + "width": 9, + "height": 3 + } + }, + { + "id": 872938126399796, + "definition": { + "title": "Average Amount per Transaction", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query2", + "query": "avg:authorize_net.unsettled_transaction.amount_by_account_type{$Merchant_Id, account_type:echeck}.as_count()", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query1", + "query": "avg:authorize_net.unsettled_transaction.amount_by_account_type{$Merchant_Id, account_type:visa}.as_count()", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query3", + "query": "avg:authorize_net.unsettled_transaction.amount_by_account_type{$Merchant_Id, account_type:mastercard}.as_count()", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query4", + "query": "avg:authorize_net.unsettled_transaction.amount_by_account_type{$Merchant_Id, account_type:discover}.as_count()", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query5", + "query": "avg:authorize_net.unsettled_transaction.amount_by_account_type{$Merchant_Id, account_type:americanexpress}.as_count()", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query6", + "query": "avg:authorize_net.unsettled_transaction.amount_by_account_type{$Merchant_Id, account_type:dinersclub}.as_count()", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query7", + "query": "avg:authorize_net.unsettled_transaction.amount_by_account_type{$Merchant_Id, account_type:jcb}.as_count()", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query8", + "query": "avg:authorize_net.unsettled_transaction.total_unsettled_transactions{$Merchant_Id}.as_count()", + "aggregator": "avg" + } + ], + "formulas": [ + { + "formula": "(query2 + query1 + query3 + query4 + query5 + query6 + query7) / query8" + } + ], + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_green" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 4, + "width": 3, + "height": 2 + } + }, + { + "id": 5332227094960292, + "definition": { + "title": "Average Transactions by Status", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.count_by_status{$Merchant_Id} by {status}.as_count()", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 0, + "y": 6, + "width": 12, + "height": 4 + } + }, + { + "id": 522880809678888, + "definition": { + "title": "Average Amounts by Status", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.amount_by_status{$Merchant_Id} by {status}.as_count()", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 0, + "y": 10, + "width": 12, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 3, + "width": 12, + "height": 15 + } + }, + { + "id": 959565582648928, + "definition": { + "title": "Transactions Classification", + "background_color": "vivid_blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 6573296350353440, + "definition": { + "title": "Average Transactions by Account Type", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.count_by_account_type{$Merchant_Id} by {account_type}.as_count()", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 12, + "height": 4 + } + }, + { + "id": 4363380438900618, + "definition": { + "title": "Transactions by Account Type over Time", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "horizontal", + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.count_by_account_type{$Merchant_Id} by {account_type}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "palette": "datadog16", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 4, + "width": 12, + "height": 4 + } + }, + { + "id": 8860461531268160, + "definition": { + "title": "Average Transactions by Product", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.count_by_product{$Merchant_Id} by {product}.as_count()", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 0, + "y": 8, + "width": 6, + "height": 4 + } + }, + { + "id": 7934694510517472, + "definition": { + "title": "Average Transactions by Market Type", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.count_by_market_type{$Merchant_Id} by {market_type}.as_count()", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 6, + "y": 8, + "width": 6, + "height": 4 + } + }, + { + "id": 3433605136321336, + "definition": { + "title": "Transactions by Product over Time", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "horizontal", + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.count_by_product{$Merchant_Id} by {product}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "palette": "datadog16", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 12, + "width": 12, + "height": 4 + } + }, + { + "id": 5114272312188006, + "definition": { + "title": "Transactions by Market Type over Time", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "horizontal", + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.count_by_market_type{$Merchant_Id} by {market_type}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "palette": "datadog16", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 16, + "width": 12, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 18, + "width": 12, + "height": 21 + } + }, + { + "id": 2948342118808744, + "definition": { + "title": "Transaction Amounts Classification", + "background_color": "vivid_blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 523279803315692, + "definition": { + "title": "Average Amounts by Account Type", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.amount_by_account_type{$Merchant_Id} by {account_type}.as_count()", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 12, + "height": 4 + } + }, + { + "id": 2740310595848518, + "definition": { + "title": "Amounts by Account Type over Time", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "horizontal", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.amount_by_account_type{$Merchant_Id} by {account_type}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "palette": "datadog16", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 4, + "width": 12, + "height": 4 + } + }, + { + "id": 5583238764582694, + "definition": { + "title": "Average Amounts by Product", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.amount_by_product{$Merchant_Id} by {product}.as_count()", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 0, + "y": 8, + "width": 6, + "height": 4 + } + }, + { + "id": 6914075180238388, + "definition": { + "title": "Average Amounts by Market Type", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.amount_by_market_type{$Merchant_Id} by {market_type}.as_count()", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 6, + "y": 8, + "width": 6, + "height": 4 + } + }, + { + "id": 7245001048640270, + "definition": { + "title": "Amounts by Product over Time", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "horizontal", + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.amount_by_product{$Merchant_Id} by {product}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "palette": "datadog16", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 12, + "width": 12, + "height": 4 + } + }, + { + "id": 2800836899868768, + "definition": { + "title": "Amounts by Market Type over Time", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "horizontal", + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:authorize_net.unsettled_transaction.amount_by_market_type{$Merchant_Id} by {market_type}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "palette": "datadog16", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 16, + "width": 12, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 39, + "width": 12, + "height": 21, + "is_column_break": true + } + } + ], + "template_variables": [ + { + "name": "Merchant_Id", + "prefix": "merchant_id", + "available_values": [], + "default": "*" + } + ], + "layout_type": "ordered", + "notify_list": [], + "reflow_type": "fixed" +} \ No newline at end of file diff --git a/authorize_net/assets/logs/authorize-net.yaml b/authorize_net/assets/logs/authorize-net.yaml new file mode 100644 index 0000000000000..1dbf327d41995 --- /dev/null +++ b/authorize_net/assets/logs/authorize-net.yaml @@ -0,0 +1,78 @@ +id: authorize-net +metric_id: authorize-net +backend_only: false +facets: + - groups: + - User + name: User Name + path: usr.name + source: log + - facetType: range + groups: + - Authorize-net + name: Settle Amount + path: authorize-net.settleAmount + source: log + type: double +pipeline: + type: pipeline + name: authorize.net + enabled: true + filter: + query: "source:authorize-net" + processors: + - type: service-remapper + name: Define `service` as the official service of the log + enabled: true + sources: + - service + - type: date-remapper + name: Define `enrichment_details.settlementTimeUTC` as the official date of the log + enabled: true + sources: + - enrichment_details.settlementTimeUTC + - name: Lookup for `log.transactionStatus` to `status` + enabled: true + source: log.transactionStatus + target: status + lookupTable: |- + authorizedPendingCapture, info + capturedPendingSettlement, info + communicationError, error + refundSettledSuccessfully, info + refundPendingSettlement, info + approvedReview, info + declined, error + couldNotVoid, error + expired, warning + generalError, error + failedReview, error + settledSuccessfully, info + settlementError, error + underReview, info + voided, warning + FDSPendingReview, warning + FDSAuthorizedPendingReview, warning + returnedItem, info + type: lookup-processor + - type: status-remapper + name: Define `status` as the official status of the log + enabled: true + sources: + - status + - type: string-builder-processor + name: Define `usr.name` equal to %{log.firstName} %{log.lastName} + enabled: true + template: "%{log.firstName} %{log.lastName}" + target: usr.name + replaceMissing: false + - type: attribute-remapper + name: Map `log.settleAmount` to `authorize-net.settleAmount` + enabled: true + sources: + - log.settleAmount + sourceType: attribute + target: authorize-net.settleAmount + targetType: attribute + preserveSource: false + overrideOnConflict: false diff --git a/authorize_net/assets/logs/authorize-net_tests.yaml b/authorize_net/assets/logs/authorize-net_tests.yaml new file mode 100644 index 0000000000000..b0f1a6adc9b6e --- /dev/null +++ b/authorize_net/assets/logs/authorize-net_tests.yaml @@ -0,0 +1,72 @@ +id: "authorize-net" +tests: + - sample: |- + { + "enrichment_details": { + "merchantId": "2zHHE7jW", + "batchId": "157463", + "settlementTimeUTC": "2024-12-03T09:23:05Z" + }, + "log": { + "submitTimeUTC": "2024-10-21T08:28:47Z", + "product": "Card Not Present", + "transactionStatus": "settledSuccessfully", + "transId": "800205266", + "submitTimeLocal": "2024-10-21T01:28:47", + "accountType": "AmericanExpress", + "settleAmount": 115, + "accountNumber": "XXXX0002", + "firstName": "John", + "lastName": "Doe", + "marketType": "eCommerce" + } + } + service: "transaction" + result: + custom: + authorize-net: + settleAmount: 115 + enrichment_details: + batchId: "157463" + merchantId: "2zHHE7jW" + settlementTimeUTC: "2024-12-03T09:23:05Z" + log: + accountNumber: "XXXX0002" + accountType: "AmericanExpress" + firstName: "John" + lastName: "Doe" + marketType: "eCommerce" + product: "Card Not Present" + submitTimeLocal: "2024-10-21T01:28:47" + submitTimeUTC: "2024-10-21T08:28:47Z" + transId: "800205266" + transactionStatus: "settledSuccessfully" + status: "info" + usr: + name: "John Doe" + message: |- + { + "enrichment_details" : { + "merchantId" : "2zHHE7jW", + "settlementTimeUTC" : "2024-12-03T09:23:05Z", + "batchId" : "157463" + }, + "log" : { + "submitTimeUTC" : "2024-10-21T08:28:47Z", + "firstName" : "John", + "lastName" : "Doe", + "product" : "Card Not Present", + "transactionStatus" : "settledSuccessfully", + "transId" : "800205266", + "submitTimeLocal" : "2024-10-21T01:28:47", + "accountType" : "AmericanExpress", + "settleAmount" : 115, + "accountNumber" : "XXXX0002", + "marketType" : "eCommerce" + } + } + service: "transaction" + status: "info" + tags: + - "source:LOGS_SOURCE" + timestamp: 1733217785000 \ No newline at end of file diff --git a/authorize_net/assets/monitors/high_number_of_declined_transactions_detected.json b/authorize_net/assets/monitors/high_number_of_declined_transactions_detected.json new file mode 100644 index 0000000000000..d5f696bd78bca --- /dev/null +++ b/authorize_net/assets/monitors/high_number_of_declined_transactions_detected.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-12-05", + "last_updated_at": "2024-12-05", + "title": "High number of declined transactions detected", + "description": "The declined transactions in Authorize.Net are rejected before authorization due to FDS rules, credit card declines, or pending reviews. This monitor tracks these declines to promptly address issues, ensuring smooth processing and reducing customer dissatisfaction.", + "definition": { + "id": 156178235, + "name": "High number of declined transactions detected", + "type": "log alert", + "query": "logs(\"source:authorize-net service:transaction @log.transactionStatus:declined\").index(\"*\").rollup(\"cardinality\", \"@log.transId\").last(\"1d\") > 10", + "message": "{{#is_alert}}\nA declined transaction in Authorize.Net is one that has been rejected and not sent for authorization. Common reasons include fraud detection suite (FDS) or Advanced FDS rules, general credit card declines, or pending review transactions.\n\nA high number of declined transactions has been detected. This issue requires immediate attention to ensure proper resolution and avoid customer dissatisfaction.\n{{/is_alert}}", + "tags": [ + "integration:authorize-net" + ], + "options": { + "thresholds": { + "critical": 10 + }, + "enable_logs_sample": false, + "notify_audit": false, + "on_missing_data": "default", + "include_tags": true, + "groupby_simple_monitor": false, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:authorize-net" + ] +} \ No newline at end of file diff --git a/authorize_net/assets/monitors/high_number_of_errored_transactions_detected.json b/authorize_net/assets/monitors/high_number_of_errored_transactions_detected.json new file mode 100644 index 0000000000000..55d73a43fa034 --- /dev/null +++ b/authorize_net/assets/monitors/high_number_of_errored_transactions_detected.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-12-05", + "last_updated_at": "2024-12-05", + "title": "High number of errored transactions detected", + "description": "An errored transaction in Authorize.Net represents a failure occurring at any stage of the payment process, such as authorization, capture, or settlement. This monitor tracks such errors to ensure prompt resolution, maintaining smooth operations and preventing customer dissatisfaction.", + "definition": { + "id": 156177853, + "name": "High number of errored transactions detected", + "type": "log alert", + "query": "logs(\"source:authorize-net service:transaction @log.transactionStatus:(generalError OR settlementError OR communicationError)\").index(\"*\").rollup(\"cardinality\", \"@log.transId\").last(\"1d\") > 25", + "message": "{{#is_alert}}\nAn errored transaction in Authorize.Net indicates a problem during payment processing at any stage, including but not limited to authorization, capture, or settlement.\n\nA high number of errored transactions has been detected. This issue requires immediate attention to ensure proper resolution and avoid customer dissatisfaction.\n{{/is_alert}}", + "tags": [ + "integration:authorize-net" + ], + "options": { + "thresholds": { + "critical": 25 + }, + "enable_logs_sample": false, + "notify_audit": false, + "on_missing_data": "default", + "include_tags": true, + "groupby_simple_monitor": false, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:authorize-net" + ] +} \ No newline at end of file diff --git a/authorize_net/assets/monitors/high_number_of_expired_transactions_detected.json b/authorize_net/assets/monitors/high_number_of_expired_transactions_detected.json new file mode 100644 index 0000000000000..6d7f90ab2d220 --- /dev/null +++ b/authorize_net/assets/monitors/high_number_of_expired_transactions_detected.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-12-05", + "last_updated_at": "2024-12-05", + "title": "High number of expired transactions detected", + "description": "The expired transactions in Authorize.Net are those that were authorized but not captured within the 30-day timeframe. This monitor tracks expired transactions to ensure timely resolution, helping to avoid potential revenue loss and maintain customer satisfaction.", + "definition": { + "id": 156179306, + "name": "High number of expired transactions detected", + "type": "log alert", + "query": "logs(\"source:authorize-net service:transaction @log.transactionStatus:expired\").index(\"*\").rollup(\"cardinality\", \"@log.transId\").last(\"1d\") > 20", + "message": "{{#is_alert}}\nAn expired transaction in Authorize.Net is one that was authorized but not captured within 30 days.\n\nA high number of expired transactions has been detected. This issue requires immediate attention to ensure proper resolution and avoid customer dissatisfaction.\n{{/is_alert}}", + "tags": [ + "integration:authorize-net" + ], + "options": { + "thresholds": { + "critical": 20 + }, + "enable_logs_sample": false, + "notify_audit": false, + "on_missing_data": "default", + "include_tags": true, + "groupby_simple_monitor": false, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:authorize-net" + ] +} \ No newline at end of file diff --git a/authorize_net/assets/monitors/high_number_of_suspicious_fraud_transactions_detected.json b/authorize_net/assets/monitors/high_number_of_suspicious_fraud_transactions_detected.json new file mode 100644 index 0000000000000..37ab1b9d6c4c1 --- /dev/null +++ b/authorize_net/assets/monitors/high_number_of_suspicious_fraud_transactions_detected.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-12-05", + "last_updated_at": "2024-12-05", + "title": "High number of suspicious fraud transactions detected", + "description": "The advanced fraud detection suite (AFDS) in Authorize.Net uses filters like transaction thresholds, payment velocity, and country restrictions to block fraud. This monitor tracks potential fraud issues to ensure timely action, safeguarding revenue and maintaining customer trust.", + "definition": { + "id": 156179619, + "name": "High number of suspicious fraud transactions detected", + "type": "log alert", + "query": "logs(\"source:authorize-net service:transaction @log.transactionStatus:(FDSPendingReview OR FDSAuthorizedPendingReview)\").index(\"*\").rollup(\"cardinality\", \"@log.transId\").last(\"1d\") > 10", + "message": "{{#is_alert}}\nAuthorize.Net includes a built-in fraud tool, the advanced fraud detection suite, with configurable filters for transaction thresholds, payment velocity, country restrictions, and more to prevent fraudulent transactions.\n\nA high number of suspicious fraud transactions has been detected. This issue requires immediate attention to ensure proper resolution and avoid customer dissatisfaction.\n{{/is_alert}}", + "tags": [ + "integration:authorize-net" + ], + "options": { + "thresholds": { + "critical": 10 + }, + "enable_logs_sample": false, + "notify_audit": false, + "on_missing_data": "default", + "include_tags": true, + "groupby_simple_monitor": false, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:authorize-net" + ] +} \ No newline at end of file diff --git a/authorize_net/assets/monitors/high_number_of_voided_transactions_detected.json b/authorize_net/assets/monitors/high_number_of_voided_transactions_detected.json new file mode 100644 index 0000000000000..84ceb25931ab0 --- /dev/null +++ b/authorize_net/assets/monitors/high_number_of_voided_transactions_detected.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-12-05", + "last_updated_at": "2024-12-05", + "title": "High number of voided transactions detected", + "description": "A voided transaction in Authorize.Net cancels the authorization process, preventing it from being sent to the processor for settlement. This monitor tracks voided transactions to ensure timely resolution and maintain customer satisfaction.", + "definition": { + "id": 156177451, + "name": "High number of voided transactions detected", + "type": "log alert", + "query": "logs(\"source:authorize-net service:transaction @log.transactionStatus:voided\").index(\"*\").rollup(\"cardinality\", \"@log.transId\").last(\"1d\") > 15", + "message": "{{#is_alert}}\nVoiding a transaction cancels the authorization process and prevents it from being submitted to the processor for settlement.\n\nA high number of voided transactions has been detected. This issue requires immediate attention to ensure proper resolution and avoid customer dissatisfaction.\n{{/is_alert}}", + "tags": [ + "integration:authorize-net" + ], + "options": { + "thresholds": { + "critical": 15 + }, + "enable_logs_sample": false, + "notify_audit": false, + "on_missing_data": "default", + "include_tags": true, + "groupby_simple_monitor": false, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:authorize-net" + ] +} \ No newline at end of file diff --git a/authorize_net/images/authorize_net_settled_transactions_1.png b/authorize_net/images/authorize_net_settled_transactions_1.png new file mode 100644 index 0000000000000..c21a9a9e2755e Binary files /dev/null and b/authorize_net/images/authorize_net_settled_transactions_1.png differ diff --git a/authorize_net/images/authorize_net_settled_transactions_2.png b/authorize_net/images/authorize_net_settled_transactions_2.png new file mode 100644 index 0000000000000..cfb59c0705c10 Binary files /dev/null and b/authorize_net/images/authorize_net_settled_transactions_2.png differ diff --git a/authorize_net/images/authorize_net_unsettled_transactions.png b/authorize_net/images/authorize_net_unsettled_transactions.png new file mode 100644 index 0000000000000..f0b89a403f906 Binary files /dev/null and b/authorize_net/images/authorize_net_unsettled_transactions.png differ diff --git a/authorize_net/manifest.json b/authorize_net/manifest.json index df97536b9149d..3d15aa0a4a0e1 100644 --- a/authorize_net/manifest.json +++ b/authorize_net/manifest.json @@ -4,46 +4,72 @@ "app_id": "authorize-net", "display_on_public_website": false, "tile": { - "overview": "README.md#Overview", - "configuration": "README.md#Setup", - "support": "README.md#Support", - "changelog": "CHANGELOG.md", - "description": "Gain insights into Settled and Unsettled Transactions of Authorize.Net", - "title": "Authorize.Net", - "media": [], - "classifier_tags": [ - "Category::Log Collection", - "Category::Metrics", - "Submitted Data Type::Logs", - "Submitted Data Type::Metrics", - "Offering::Integration" - ] + "overview": "README.md#Overview", + "configuration": "README.md#Setup", + "support": "README.md#Support", + "changelog": "CHANGELOG.md", + "description": "Gain insights into settled and unsettled transactions of Authorize.net", + "title": "Authorize.Net", + "media": [ + { + "media_type": "image", + "caption": "Authorize.net Settled Transactions", + "image_url": "images/authorize_net_settled_transactions_1.png" + }, + { + "media_type": "image", + "caption": "Authorize.net Settled Transactions", + "image_url": "images/authorize_net_settled_transactions_2.png" + }, + { + "media_type": "image", + "caption": "Authorize.net Unsettled Transactions", + "image_url": "images/authorize_net_unsettled_transactions.png" + } + ], + "classifier_tags": [ + "Category::Log Collection", + "Submitted Data Type::Logs", + "Submitted Data Type::Metrics", + "Offering::Integration" + ] }, "assets": { - "integration": { - "auto_install": false, - "source_type_id": 28965663, - "source_type_name": "Authorize.Net", - "events": { - "creates_events": false + "integration": { + "auto_install": false, + "source_type_id": 28965663, + "source_type_name": "Authorize.Net", + "events": { + "creates_events": false + }, + "metrics": { + "prefix": "authorize_net.", + "check": ["authorize_net.unsettled_transaction.amount_by_account_type", "authorize_net.unsettled_transaction.total_unsettled_transactions"], + "metadata_path": "metadata.csv" + }, + "service_checks": { + "metadata_path": "assets/service_checks.json" + } }, - "metrics": { - "prefix": "authorize_net.", - "check": [], - "metadata_path": "metadata.csv" + "dashboards": { + "Authorize.net settled transactions": "assets/dashboards/authorize_net_settled_transactions.json", + "Authorize.net unsettled transactions": "assets/dashboards/authorize_net_unsettled_transactions.json" }, - "service_checks": { - "metadata_path": "assets/service_checks.json" + "monitors": { + "High number of declined transactions detected": "assets/monitors/high_number_of_declined_transactions_detected.json", + "High number of errored transactions detected": "assets/monitors/high_number_of_errored_transactions_detected.json", + "High number of expired transactions detected": "assets/monitors/high_number_of_expired_transactions_detected.json", + "High number of voided transactions detected": "assets/monitors/high_number_of_voided_transactions_detected.json", + "High number of suspicious fraud transactions detected": "assets/monitors/high_number_of_suspicious_fraud_transactions_detected.json" + }, + "logs": { + "source": "authorize-net" } - }, - "logs": { - "source": "authorize_net" - } }, "author": { - "support_email": "help@datadoghq.com", - "name": "Datadog", - "homepage": "https://www.datadoghq.com", - "sales_email": "info@datadoghq.com" + "support_email": "help@datadoghq.com", + "name": "Datadog", + "homepage": "https://www.datadoghq.com", + "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/authorize_net/metadata.csv b/authorize_net/metadata.csv index 02cde5e98381e..e03b7c5241c0a 100644 --- a/authorize_net/metadata.csv +++ b/authorize_net/metadata.csv @@ -1 +1,10 @@ metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric,sample_tags +authorize_net.unsettled_transaction.amount_by_account_type,count,,,,Total amount of unsettled transactions by account type,0,authorize_net,Total amount by account type,, +authorize_net.unsettled_transaction.amount_by_market_type,count,,,,Total amount of unsettled transactions by market type,0,authorize_net,Total amount by market type,, +authorize_net.unsettled_transaction.amount_by_product,count,,,,Total amount of unsettled transactions by product,0,authorize_net,Total amount by product,, +authorize_net.unsettled_transaction.amount_by_status,count,,,,Total amount of unsettled transactions by status,0,authorize_net,Total amount by status,, +authorize_net.unsettled_transaction.count_by_account_type,count,,,,Total number of unsettled transactions by account type,0,authorize_net,Count by account type,, +authorize_net.unsettled_transaction.count_by_market_type,count,,,,Total number of unsettled transactions by market type,0,authorize_net,Count by market type,, +authorize_net.unsettled_transaction.count_by_product,count,,,,Total number of unsettled transactions by product,0,authorize_net,Count by product,, +authorize_net.unsettled_transaction.count_by_status,count,,,,Total number of unsettled transactions by status,0,authorize_net,Count by status,, +authorize_net.unsettled_transaction.total_unsettled_transactions,count,,,,Total number of unsettled transactions,0,authorize_net,Total unsettled transactions,,