From ffb7e01525451691ab551c4c9fd03df1b8479669 Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:35:19 -0500 Subject: [PATCH 01/34] Navigation Changes --- docs/main/invoicing_and_billing/quickstart.md | 10 -- .../record_an_offline_payment.md | 10 ++ .../resending_invoices.md | 4 +- .../create_a_payment_plan.md | 0 .../create_a_subscription.md | 167 ++++++++++++++++++ .../create_recurring_payment.md | 11 -- .../manage_recurring_payments.md | 13 -- .../manage_recurring_emails.md | 0 .../missed_recurring_payment_data.md | 0 .../retry_failed_recurring_payments.md | 0 .../update_recurring_payments.md | 0 docs/main/recurring_payments/overview.md | 164 ++++++++++++++++- 12 files changed, 339 insertions(+), 40 deletions(-) delete mode 100644 docs/main/invoicing_and_billing/quickstart.md create mode 100644 docs/main/invoicing_and_billing/record_an_offline_payment.md create mode 100644 docs/main/recurring_payments/create_a_payment_plan.md create mode 100644 docs/main/recurring_payments/create_a_subscription.md delete mode 100644 docs/main/recurring_payments/create_recurring_payment.md delete mode 100644 docs/main/recurring_payments/manage_recurring_payments.md rename docs/main/recurring_payments/{ => manage_recurring_payments}/manage_recurring_emails.md (100%) rename docs/main/recurring_payments/{ => manage_recurring_payments}/missed_recurring_payment_data.md (100%) rename docs/main/recurring_payments/{ => manage_recurring_payments}/retry_failed_recurring_payments.md (100%) rename docs/main/recurring_payments/{ => manage_recurring_payments}/update_recurring_payments.md (100%) diff --git a/docs/main/invoicing_and_billing/quickstart.md b/docs/main/invoicing_and_billing/quickstart.md deleted file mode 100644 index 02bff31..0000000 --- a/docs/main/invoicing_and_billing/quickstart.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -sidebar_position: 2 -sidebar_label: Quickstart -title: "Quickstart" - ---- - -Guide Coming Soon -## API Link -* [Invoicing and Billing](../../api/invoice) \ No newline at end of file diff --git a/docs/main/invoicing_and_billing/record_an_offline_payment.md b/docs/main/invoicing_and_billing/record_an_offline_payment.md new file mode 100644 index 0000000..6db9072 --- /dev/null +++ b/docs/main/invoicing_and_billing/record_an_offline_payment.md @@ -0,0 +1,10 @@ +--- +sidebar_position: 3 +sidebar_label: Record and Offline Payment +title: "Record an Offline Payment" + +--- + +Guide Coming Soon +## API Link +* [Invoicing and Billing](../../api/invoice) \ No newline at end of file diff --git a/docs/main/invoicing_and_billing/resending_invoices.md b/docs/main/invoicing_and_billing/resending_invoices.md index b196185..f9129cf 100644 --- a/docs/main/invoicing_and_billing/resending_invoices.md +++ b/docs/main/invoicing_and_billing/resending_invoices.md @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 2 sidebar_label: Resending Invoices title: "Resending Invoices" @@ -7,4 +7,4 @@ title: "Resending Invoices" Guide Coming Soon ## API Link -* [Resending Invoices](../../api/invoice#create-an-invoice-email) \ No newline at end of file +* [Resend Invoices](../../api/invoice#create-an-invoice-email) \ No newline at end of file diff --git a/docs/main/recurring_payments/create_a_payment_plan.md b/docs/main/recurring_payments/create_a_payment_plan.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/main/recurring_payments/create_a_subscription.md b/docs/main/recurring_payments/create_a_subscription.md new file mode 100644 index 0000000..82b7496 --- /dev/null +++ b/docs/main/recurring_payments/create_a_subscription.md @@ -0,0 +1,167 @@ +--- +sidebar_position: 2 +sidebar_label: Create Recurring Payment +title: "" + +--- + + + + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + + +# Create Recurring Payments +Recurring payments are payments that get triggered on a specified interval. can be used to create subscriptions, and payment plans and other use cases where you want to This guide will show you how to create a payment plan and a subscription. + +:::danger Before you start +You will need to be able to tokenize a payment in order to set up a recurring payment. + +Tokenizing Quickstart +::: + +## Setting up a your recurring payment + +### 1. Setting up a Payment Plan + +### 2. A + +## Creating a payment plan + +### 1. Tokenize a payment method + +### 2. Creating a recurring payment +```graphql +mutation { + createRecurringPayment(input: { + account_code: String, + amount: Int, + currency: String, + fee_mode: FEE_MODE, + merchant_uid: String, + metadata: JSON, + payment_interval: PAYMENT_INTERVAL, + payment_method_id: String, + payor_id: String, + payor: Payor, + mute_all_emails: Boolean + }) +``` +#### Arguments + +Key +Description +createRecurringPayment +This object contains all the details needed to create a recurring payment. + + +#### Required Arguments + +Key +Type +Description +`merchant_uid` +String +The Pay Theory merchant is a unique identifier for the merchant that is creating the recurring payment. +`amount` +Int +The amount of the recurring payment. +`payment_interval` +Payment_Interval +The interval of the recurring payment. The following intervals are available: +Weekly +Bi_Weekly +Monthly +Quarterly +Bi_Annual +Annual + + +`payment_method_id` +String +The `payment_method_id` of the tokenized payment method that will be used for the recurring payment. +`payor_id` +String +The `payor_id` of the payor that the recurring payment will be tied to. +`payor` +Payor +The payor object that the recurring payment will be tied to. This will create a new payor in the system + + +####Optional Arguments + +Key +Type +Description +`account_code` +String +Custom account code for the recurring payment that will be tied to each payment. +`currency` +String +The currency of the recurring payment. If not provided, the currency will default to 'USD'. +`metadata` +JSON +Custom metadata for the recurring payment that will be tied to each payment. +`mute_all_emails` +Boolean +If set to true, no emails will be sent to the payor for this recurring payment. Default is false. + + + +### Returns +The call will return the newly created recurring payment. + +```json +{ + "data": { + "createRecurringPayment": { + ...recurring_payment_object + } + } +} +``` + +## Next Steps +We always have the option to update any information[Update Information] pertaining to recurring payments as well as cancel the recurring payments[Cancel]. + + + + + + + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + + + + + + + + diff --git a/docs/main/recurring_payments/create_recurring_payment.md b/docs/main/recurring_payments/create_recurring_payment.md deleted file mode 100644 index 1716de2..0000000 --- a/docs/main/recurring_payments/create_recurring_payment.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 2 -sidebar_label: Create Recurring Payment -title: "Create Recurring Payment" - ---- - -Guide Coming Soon - -## API Link -* [Create Recurring Payment](../../api/recurring#create-recurring-payment) \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments.md b/docs/main/recurring_payments/manage_recurring_payments.md deleted file mode 100644 index df619a7..0000000 --- a/docs/main/recurring_payments/manage_recurring_payments.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -sidebar_position: 8 -sidebar_label: Manage Recurring Payments -title: "Manage Recurring Payments" -draft: true -sidebar_class_name: hidden - ---- - -Guide Coming Soon - -## API Link -* [Manage Recurring Payments](../../api/recurring) \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_emails.md b/docs/main/recurring_payments/manage_recurring_payments/manage_recurring_emails.md similarity index 100% rename from docs/main/recurring_payments/manage_recurring_emails.md rename to docs/main/recurring_payments/manage_recurring_payments/manage_recurring_emails.md diff --git a/docs/main/recurring_payments/missed_recurring_payment_data.md b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.md similarity index 100% rename from docs/main/recurring_payments/missed_recurring_payment_data.md rename to docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.md diff --git a/docs/main/recurring_payments/retry_failed_recurring_payments.md b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.md similarity index 100% rename from docs/main/recurring_payments/retry_failed_recurring_payments.md rename to docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.md diff --git a/docs/main/recurring_payments/update_recurring_payments.md b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.md similarity index 100% rename from docs/main/recurring_payments/update_recurring_payments.md rename to docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.md diff --git a/docs/main/recurring_payments/overview.md b/docs/main/recurring_payments/overview.md index cebdb6a..9969ba4 100644 --- a/docs/main/recurring_payments/overview.md +++ b/docs/main/recurring_payments/overview.md @@ -1,10 +1,166 @@ --- sidebar_position: 1 sidebar_label: Overview -title: "Overview" -draft: true -sidebar_class_name: hidden +title: "" --- -Overview Coming Soon \ No newline at end of file + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + + +# Recurring Payments +Recurring payments are payments that get triggered on a specified interval. The following guides will show you how to create a subscription and a payment plan. + +:::danger Before you start +You will need to be able to tokenize a payment in order to set up a recurring payment. + +Tokenizing Quickstart +::: + +## Create a payment plan +Payment plans enables you to collect a payment that gets evenly distributed over a set amount of time. + +## Create a subscription +A Subscription enables you to collect a specific + +### 1. Setting up a Payment Plan + +### 2. A + +## Creating a payment plan + +### 1. Tokenize a payment method + +### 2. Creating a recurring payment +```graphql +mutation { + createRecurringPayment(input: { + account_code: String, + amount: Int, + currency: String, + fee_mode: FEE_MODE, + merchant_uid: String, + metadata: JSON, + payment_interval: PAYMENT_INTERVAL, + payment_method_id: String, + payor_id: String, + payor: Payor, + mute_all_emails: Boolean + }) +``` +#### Arguments + +Key +Description +createRecurringPayment +This object contains all the details needed to create a recurring payment. + + +#### Required Arguments + +Key +Type +Description +`merchant_uid` +String +The Pay Theory merchant is a unique identifier for the merchant that is creating the recurring payment. +`amount` +Int +The amount of the recurring payment. +`payment_interval` +Payment_Interval +The interval of the recurring payment. The following intervals are available: +Weekly +Bi_Weekly +Monthly +Quarterly +Bi_Annual +Annual + + +`payment_method_id` +String +The `payment_method_id` of the tokenized payment method that will be used for the recurring payment. +`payor_id` +String +The `payor_id` of the payor that the recurring payment will be tied to. +`payor` +Payor +The payor object that the recurring payment will be tied to. This will create a new payor in the system + + +####Optional Arguments + +Key +Type +Description +`account_code` +String +Custom account code for the recurring payment that will be tied to each payment. +`currency` +String +The currency of the recurring payment. If not provided, the currency will default to 'USD'. +`metadata` +JSON +Custom metadata for the recurring payment that will be tied to each payment. +`mute_all_emails` +Boolean +If set to true, no emails will be sent to the payor for this recurring payment. Default is false. + + + +### Returns +The call will return the newly created recurring payment. + +```json +{ + "data": { + "createRecurringPayment": { + ...recurring_payment_object + } + } +} +``` + +## Next Steps +We always have the option to update any information[Update Information] pertaining to recurring payments as well as cancel the recurring payments[Cancel]. + + + + + + + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + + + + + + + + From 787e0e90ca7213b9bf26a173ebe8ff5e28e60fb4 Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:40:50 -0500 Subject: [PATCH 02/34] navigation changes --- .../invoicing_and_billing/{overview.md => create_an_invoice.md} | 0 .../{ => manage_recurring_payments}/cancel_recurring_payments.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename docs/main/invoicing_and_billing/{overview.md => create_an_invoice.md} (100%) rename docs/main/recurring_payments/{ => manage_recurring_payments}/cancel_recurring_payments.md (100%) diff --git a/docs/main/invoicing_and_billing/overview.md b/docs/main/invoicing_and_billing/create_an_invoice.md similarity index 100% rename from docs/main/invoicing_and_billing/overview.md rename to docs/main/invoicing_and_billing/create_an_invoice.md diff --git a/docs/main/recurring_payments/cancel_recurring_payments.md b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.md similarity index 100% rename from docs/main/recurring_payments/cancel_recurring_payments.md rename to docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.md From 3f12e34e38e4b5e050927a813aa4d6b5c8ed2768 Mon Sep 17 00:00:00 2001 From: srinithyaindla Date: Fri, 26 Jan 2024 09:50:34 -0500 Subject: [PATCH 03/34] Changes for recurring payment section. --- .../making_a_payment_with_payment_tokens.mdx | 2 +- .../create_a_payment_plan.md | 0 .../create_a_payment_plan.mdx | 141 +++++++++++++++ .../create_a_subscription.md | 167 ------------------ .../create_a_subscription.mdx | 121 +++++++++++++ .../cancel_recurring_payments.md | 11 -- .../cancel_recurring_payments.mdx | 74 ++++++++ ..._emails.md => manage_recurring_emails.mdx} | 0 .../missed_recurring_payment_data.md | 11 -- .../missed_recurring_payment_data.mdx | 85 +++++++++ .../retry_failed_recurring_payments.md | 11 -- .../retry_failed_recurring_payments.mdx | 79 +++++++++ .../update_recurring_payments.md | 11 -- .../update_recurring_payments.mdx | 116 ++++++++++++ .../{overview.md => overview.mdx} | 0 15 files changed, 617 insertions(+), 212 deletions(-) delete mode 100644 docs/main/recurring_payments/create_a_payment_plan.md create mode 100644 docs/main/recurring_payments/create_a_payment_plan.mdx delete mode 100644 docs/main/recurring_payments/create_a_subscription.md create mode 100644 docs/main/recurring_payments/create_a_subscription.mdx delete mode 100644 docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.md create mode 100644 docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx rename docs/main/recurring_payments/manage_recurring_payments/{manage_recurring_emails.md => manage_recurring_emails.mdx} (100%) delete mode 100644 docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.md create mode 100644 docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx delete mode 100644 docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.md create mode 100644 docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx delete mode 100644 docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.md create mode 100644 docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx rename docs/main/recurring_payments/{overview.md => overview.mdx} (100%) diff --git a/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx b/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx index 35aa774..695536f 100644 --- a/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx +++ b/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx @@ -100,7 +100,7 @@ The results presented below show that the query was successfully run and that ev *** ## Next Steps -You can also refer to Recurring payment here [Recurring Payments](../../recurring_payments/update_recurring_payments.md). +You can also refer to Recurring payment here [Recurring Payments](../../recurring_payments/manage_recurring_payments/update_recurring_payments.mdx). diff --git a/docs/main/recurring_payments/create_a_payment_plan.md b/docs/main/recurring_payments/create_a_payment_plan.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/main/recurring_payments/create_a_payment_plan.mdx b/docs/main/recurring_payments/create_a_payment_plan.mdx new file mode 100644 index 0000000..2fecf0c --- /dev/null +++ b/docs/main/recurring_payments/create_a_payment_plan.mdx @@ -0,0 +1,141 @@ +--- +sidebar_position: 2 +sidebar_label: 'Create a Recurring Payment' +title: "" +--- + + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Making a Recurring payment +This guide will walk you through how to make a recurring payment plan. + +## Create a payment plan +A recurring payment represents a payment that will trigger on an interval. You can create a recurring payment with a set number of payments to enable a payment plan for a payor. + +```graphql +mutation { + createRecurringPayment(input: { + amount: Int, + payment_count: Int + merchant_uid: String, + payment_interval: PAYMENT_INTERVAL, + payment_method_id: String, + recurring_name: String, + payor: Payor, + }) { + amount_per_payment + fee_mode + fee_per_payment + next_payment_date + payment_interval + recurring_id + remaining_payments + statuts +} + +} +``` +### Arguments +|Key |description | +|---------------|---------------------------| +| createRecurringPayment | This object contains all the details needed to create a recurring payment.| + +### Required Arguments +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| amount |int |The amount of the recurring payment.| +| merchant_uid |string |The Pay Theory merchant is a unique identifier for the merchant that is creating the recurring payment.| +| payment_count |int |The total number of payments to be made as part of the recurring schedule.| +| payment_interval |Payment_Interval |The interval of the recurring payment. The following intervals are available:
  • WEEKLY
  • BI_WEEKLY
  • MONTHLY
  • QUARTERLY
  • BI_ANNUAL
  • ANNUAL
| +| payment_method_id |string |The `payment_method_id` of the tokenized payment method that will be used for the recurring payment.| +| payor |Payor |The payor object that the recurring payment will be tied to. This will create a new payor in the system| +| recurring_name |string |Custom name for the recurring payment.| + + +### Optional Arguments +|Key |type |description | +|---------------------|-----------------|--------------------------------------------| +| amount_per_payment |int | The amount of the recurring payment.| +| fee_mode |FeeMode |The fee mode for the recurring payment. SERVICE_FEE charges the fees to the payor. MERCHANT_FEE charges the fees to the merchant. Options are
  • SERVICE_FEE
  • MERCHANT_FEE(default)
| +| recurring_id |string | The pay theory unique identifier assigned to the recurring payment.| +| remaining_payments |int |The amount of the recurring payment that is still owed. This will be null on a recurring date if there is no fixed payment amount.| +| status | Recurring status | The status of the recurring payment.
  • `SYSTEM_FAILURE`: The recurring payment failed due to a system error. Will retry automatically till the system issue is resolved.
  • `INSTRUMENT_FAILURE`: The recurring payment failed due to a payment method error. Will not retry until the payment method is updated.
  • `SUCCESS`: The last payment was successful.
| + +*** + +## Returns +The call will return the newly created recurring payment. +```JSON +{ + "data": { + "createRecurringPayment": { + "amount_per_payment": Int, + "fee_mode": "MERCHANT_FEE", + "fee_per_payment": Int, + "payment_interval": "WEEKLY", + "recurring_description": null, + "recurring_id": String, + "remaining_payments": Int, + "status": "SUCCESS", + } + } +} +``` + +## Next Steps +You can also refer to [create payment subscription](../recurring_payments/create_a_subscription.mdx) and we can also cancel our recurring payments refer to [cancel the recurring payments](../recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx). + +
+ + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/main/recurring_payments/create_a_subscription.md b/docs/main/recurring_payments/create_a_subscription.md deleted file mode 100644 index 82b7496..0000000 --- a/docs/main/recurring_payments/create_a_subscription.md +++ /dev/null @@ -1,167 +0,0 @@ ---- -sidebar_position: 2 -sidebar_label: Create Recurring Payment -title: "" - ---- - - - - -import Tabs from '../../../components/Tabs'; -import TabItem from '@theme/TabItem'; -import Admonition from '@theme/Admonition'; - - - - - -# Create Recurring Payments -Recurring payments are payments that get triggered on a specified interval. can be used to create subscriptions, and payment plans and other use cases where you want to This guide will show you how to create a payment plan and a subscription. - -:::danger Before you start -You will need to be able to tokenize a payment in order to set up a recurring payment. - -Tokenizing Quickstart -::: - -## Setting up a your recurring payment - -### 1. Setting up a Payment Plan - -### 2. A - -## Creating a payment plan - -### 1. Tokenize a payment method - -### 2. Creating a recurring payment -```graphql -mutation { - createRecurringPayment(input: { - account_code: String, - amount: Int, - currency: String, - fee_mode: FEE_MODE, - merchant_uid: String, - metadata: JSON, - payment_interval: PAYMENT_INTERVAL, - payment_method_id: String, - payor_id: String, - payor: Payor, - mute_all_emails: Boolean - }) -``` -#### Arguments - -Key -Description -createRecurringPayment -This object contains all the details needed to create a recurring payment. - - -#### Required Arguments - -Key -Type -Description -`merchant_uid` -String -The Pay Theory merchant is a unique identifier for the merchant that is creating the recurring payment. -`amount` -Int -The amount of the recurring payment. -`payment_interval` -Payment_Interval -The interval of the recurring payment. The following intervals are available: -Weekly -Bi_Weekly -Monthly -Quarterly -Bi_Annual -Annual - - -`payment_method_id` -String -The `payment_method_id` of the tokenized payment method that will be used for the recurring payment. -`payor_id` -String -The `payor_id` of the payor that the recurring payment will be tied to. -`payor` -Payor -The payor object that the recurring payment will be tied to. This will create a new payor in the system - - -####Optional Arguments - -Key -Type -Description -`account_code` -String -Custom account code for the recurring payment that will be tied to each payment. -`currency` -String -The currency of the recurring payment. If not provided, the currency will default to 'USD'. -`metadata` -JSON -Custom metadata for the recurring payment that will be tied to each payment. -`mute_all_emails` -Boolean -If set to true, no emails will be sent to the payor for this recurring payment. Default is false. - - - -### Returns -The call will return the newly created recurring payment. - -```json -{ - "data": { - "createRecurringPayment": { - ...recurring_payment_object - } - } -} -``` - -## Next Steps -We always have the option to update any information[Update Information] pertaining to recurring payments as well as cancel the recurring payments[Cancel]. - - - - - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - - - - - - - diff --git a/docs/main/recurring_payments/create_a_subscription.mdx b/docs/main/recurring_payments/create_a_subscription.mdx new file mode 100644 index 0000000..f545905 --- /dev/null +++ b/docs/main/recurring_payments/create_a_subscription.mdx @@ -0,0 +1,121 @@ +--- +sidebar_position: 3 +sidebar_label: Create Payment Subscription +title: "" + +--- + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Making a payment using subscription +This guide will walk you through how to make a payment using subscription. + +## Create a payment plan +You can also create a recurring payment with no set payment amounts to enable a subscription for a payor. + +```graphql +mutation { + createPaymentSubscription(input: { + amount: Int, + merchant_uid: String, + payment_interval: PAYMENT_INTERVAL, + payment_method_id: String, + recurring_name: String, + payor: Payor, + }) { + amount_per_payment + fee_mode + fee_per_payment + next_payment_date + payment_interval + recurring_id + remaining_payments + statuts +} + +} +``` +### Arguments +|Key |description | +|---------------|---------------------------| +| createPaymentSubscription | This object contains all the details needed to create a payment subscription.| + +### Required Arguments +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| amount |int |The amount of the recurring payment.| +| merchant_uid |string |The Pay Theory merchant is a unique identifier for the merchant that is creating the recurring payment.| +| payment_interval |Payment_Interval |The interval of the recurring payment. The following intervals are available:
  • WEEKLY
  • BI_WEEKLY
  • MONTHLY
  • QUARTERLY
  • BI_ANNUAL
  • ANNUAL
| +| payment_method_id |string |The `payment_method_id` of the tokenized payment method that will be used for the recurring payment.| +| payor |Payor |The payor object that the recurring payment will be tied to. This will create a new payor in the system| +| recurring_name |string |Custom name for the recurring payment.| + + +### Optional Arguments +|Key |type |description | +|---------------------|-----------------|--------------------------------------------| +| amount_per_payment |int | The amount of the recurring payment.| +| fee_mode |FeeMode |The fee mode for the recurring payment. SERVICE_FEE charges the fees to the payor. MERCHANT_FEE charges the fees to the merchant. Options are
  • SERVICE_FEE
  • MERCHANT_FEE(default)
| +| recurring_id |string | The pay theory unique identifier assigned to the recurring payment.| +| remaining_payments |int |The amount of the recurring payment that is still owed. This will be null on a recurring date if there is no fixed payment amount.| +| status | Recurring status | The status of the recurring payment.
  • `SYSTEM_FAILURE`: The recurring payment failed due to a system error. Will retry automatically till the system issue is resolved.
  • `INSTRUMENT_FAILURE`: The recurring payment failed due to a payment method error. Will not retry until the payment method is updated.
  • `SUCCESS`: The last payment was successful.
| + +*** + +## Returns +The call will return the newly created recurring payment. +```JSON +{ + "data": { + "createRecurringPayment": { + "amount_per_payment": Int, + "fee_mode": "MERCHANT_FEE", + "fee_per_payment": Int, + "payment_interval": "WEEKLY", + "recurring_description": null, + "recurring_id": String, + "remaining_payments": Int, + "status": "SUCCESS", + } + } +} +``` + +## Next Steps +You can also refer to [create recurring payment](../recurring_payments/create_a_payment_plan.mdx) and we can also update our recurring payments information refer to [update the recurring payments](../recurring_payments/manage_recurring_payments/update_recurring_payments.mdx). + +
+ + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + +
+ + + + + + diff --git a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.md b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.md deleted file mode 100644 index edffedd..0000000 --- a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 3 -sidebar_label: Cancel Recurring Payments -title: "Cancel Recurring Payment" - ---- - -Guide Coming Soon - -## API Link -* [Cancel Recurring Payment](../../api/recurring#cancel-recurring-payment) \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx new file mode 100644 index 0000000..60609d1 --- /dev/null +++ b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx @@ -0,0 +1,74 @@ +--- +sidebar_position: 3 +sidebar_label: Cancel Recurring Payments +title: "Cancel Recurring Payment" + +--- + +import Tabs from '../../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Cancel Recurring Payment +This guide will show you how to cancel the recurring payments that will halt the further installments. + +## Query to cancel recurring payments +The procedure known as "Cancel Recurring Payment" ends planned, recurring payments. In order to halt further installments, users usually take this step, frequently. Once a recurring payment is canceled, it cannot be reactivated. + +```graphql +mutation { + cancelRecurringPayment(recurring_id: string) +} + +``` + +### Required Arguments +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| recurring_id |string |The recurring_id of the recurring payment to be canceled.| + + +*** + +## Returns +The call will return true if the recurring payment was successfully canceled. + +```JSON +{ + "data": + { + "cancelRecurringPayment": true + } +} +``` + +## Next Steps +You always have the option to [update any information](update_recurring_payments.mdx)pertaining to recurring payments as well as [create a new recurring payments](../create_a_payment_plan.mdx). + + + + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + + \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments/manage_recurring_emails.md b/docs/main/recurring_payments/manage_recurring_payments/manage_recurring_emails.mdx similarity index 100% rename from docs/main/recurring_payments/manage_recurring_payments/manage_recurring_emails.md rename to docs/main/recurring_payments/manage_recurring_payments/manage_recurring_emails.mdx diff --git a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.md b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.md deleted file mode 100644 index 8ad0056..0000000 --- a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 5 -sidebar_label: Get Missed Recurring Payment Data -title: "Get Missed Recurring Payment Data" - ---- - -Guide Coming Soon - -## API Link -* [Get Missed Recurring Payment Data](../../api/recurring#get-missed-recurring-payment-data) \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx new file mode 100644 index 0000000..c2d0933 --- /dev/null +++ b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx @@ -0,0 +1,85 @@ +--- +sidebar_position: 5 +sidebar_label: Get Missed Recurring Payment Data +title: "Get Missed Recurring Payment Data" + +--- + +import Tabs from '../../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Get Missed Recurring Payment Data +By following this guide you will learn how to obtain the total amount of payments due as well as the number of missed payments. + + +## Obtain Missed Recurring Payment Information +This is useful if you want to charge a customer for all missed payments at once when updating their payment method. This will query how many payments have been missed and the total amount of those payments. + +```graphql +{ + query missedRecurringPaymentData(recurring_id: String) { + fee + number_of_payments_missed + total_amount_owed + } +} +``` + +### Required Arguments +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| recurring_id |string |The recurring_id of the recurring payment to be retired.| +|fee |int | If the recurring payment has fee_mode set to SERVICE_FEE, this will be the total amount of fees that will be charged to the customer to pay off the missed payments. If the recurring payment has fee_mode set to MERCHANT_FEE, this will be 0.| +|number_of_payments_missed| int |The number of payments that have been missed.| +|total_amount_owed | int |The total amount that the customer will owe to pay off the missed payments.| + + +*** + +## Returns +The information from this call will include the amount the consumer needs to make up for missing payments for a recurring payment option. + +```JSON +{ + "data": { + "missedRecurringPaymentData": { + "fee": int, + "number_of_payments_missed": int, + "total_amount_owed": int + } + } +} + +``` + +## Next Steps +You always have the option to create [retry for failed recurring payments](retry_failed_recurring_payments.mdx) pertaining to recurring payments as well as [cancel the recurring payments](cancel_recurring_payments.mdx). + + + + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + + \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.md b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.md deleted file mode 100644 index 6e19906..0000000 --- a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 6 -sidebar_label: Retry Failed Recurring Payment -title: "Retry Failed Recurring Payment" - ---- - -Guide Coming Soon - -## API Link -* [Retry Failed Recurring Payment](../../api/recurring#create-retry-for-failed-recurring-payment) \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx new file mode 100644 index 0000000..d6b8e7d --- /dev/null +++ b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx @@ -0,0 +1,79 @@ +--- +sidebar_position: 6 +sidebar_label: Retry Failed Recurring Payment +title: "Retry Failed Recurring Payment" + +--- + +import Tabs from '../../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Retry Failed Recurring Payment +This should be used if the payment method on file is still valid, and you want to retry the payment. + +:::info Example +Payment has failed because of insufficient funds on the card, but the customer has made a payment on the balance to resolve the issue this will prevent future payment failures due to insufficient funds. +::: + + +## Create a retry for failed payments +This call will allow you to retry a payment for a recurring payment that is in a Failed state. This should be used when the state is `INSTRUMENT_FAILURE` and the issue with the payment method has been addressed. + +```graphql +mutation { + createRetryForFailedRecurringPayment(recurring_id: string) +} + +``` + +### Required Arguments +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| recurring_id |string |The recurring_id of the recurring payment to be retired.| + + +*** + +## Returns +This returns if the attempt made for retry failed payment is successful or not. + +```JSON +{ + "data": + { + "createRetryForFailedRecurringPayment": true + } +} +``` + +## Next Steps +You always have the choice to either [cancel the recurring payments](cancel_recurring_payments.mdx) or check for any [missed recurring payments](missed_recurring_payment_data.mdx) related to recurring payments. + + + + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + + \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.md b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.md deleted file mode 100644 index b969c14..0000000 --- a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 4 -sidebar_label: Update Recurring Payment -title: "Update Recurring Payment" - ---- - -Guide Coming Soon - -## API Link -* [Update Recurring Payment](../../api/recurring#update-recurring-payment) \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx new file mode 100644 index 0000000..8923cf3 --- /dev/null +++ b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx @@ -0,0 +1,116 @@ +--- +sidebar_position: 4 +sidebar_label: Update Recurring Payment +title: "Update Recurring Payment" + +--- + + +import Tabs from '../../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Update Recurring Payment +This guide refers to making changes to the specifics of an already-existing regular payment plan, including altering the amounts, intervals, or related data. + +:::info +It updates the payment method on the recurring payment. If you want to update any other fields, you will need to cancel the recurring payment and create a new one. +::: + + +## Create a update recurring payments +This call will modify automatic payment plans that are in progress without having to cancel and start over from scratch. + +```graphql +mutation { + updateRecurringPayment(input: { + payment_method_id: String, + recurring_id: String, + }) + { + fee_mode + Fee_per_payment + mute_all_emails + payment_method { + payment_method_object + } + recurring_id + + } +} +``` + +### Arguments +|Key | description | +|-------------------|---------------------------------------| +| UpdateRecurringPaymentInput |The recurring_id of the recurring payment to be retired.| + +### Required Arguments +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| recurring_id |string |The `recurring_id` of the recurring payments to be updated.| +| payment_method_id |string |The payment_method_id of the tokenized payment method that will be used for the recurring payment. If recurring payment is in a Failed state it will try to run a payment with the new payment method and get it back into a Successful state.| + + +### Optional Arguments +|Key |type |description | +|---------------------|-----------------|--------------------------------------------| +| pay_all_missed_payment |boolean | If the recurring payment has a set number of payments (Payment Plan) and is in a Failed state, this will make a one time charge to account for all missed payments to get it back into a Successful state.| +| mute_all_emails |boolean |If set to true, no emails will be sent to the payor for this recurring payment.| +| recurring_id |string | The pay theory unique identifier assigned to the recurring payment.| +| fee_mode |FeeMode |The fee mode for the recurring payment. SERVICE_FEE charges the fees to the payor. MERCHANT_FEE charges the fees to the merchant. Options are
  • SERVICE_FEE
  • MERCHANT_FEE(default)
| +| fee_per_payment | int | The fee for the recurring payment. | + + +*** + +## Returns +The call will return the updated recurring payment object. + +```JSON +{ + "data": { + "updateRecurringPayment": { + "fee_per_payment": int, + "mute_all_emails": false, + "payment_method": { + "payment_method_id": string + }, + "recurring_id": string + } + } +} + +``` + +## Next Steps +You always have the option to create [new recurring payments](../create_a_payment_plan.mdx) pertaining to recurring payments as well as [cancel the recurring payments](cancel_recurring_payments.mdx). + + +
+ + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + +
\ No newline at end of file diff --git a/docs/main/recurring_payments/overview.md b/docs/main/recurring_payments/overview.mdx similarity index 100% rename from docs/main/recurring_payments/overview.md rename to docs/main/recurring_payments/overview.mdx From 51d6f1c85a8f6a17fcb922a55a88b2bdb426d79c Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Fri, 26 Jan 2024 15:37:07 -0500 Subject: [PATCH 04/34] Update to overview format --- docs/main/recurring_payments/overview.mdx | 115 ++-------------------- 1 file changed, 8 insertions(+), 107 deletions(-) diff --git a/docs/main/recurring_payments/overview.mdx b/docs/main/recurring_payments/overview.mdx index 9969ba4..858e3f3 100644 --- a/docs/main/recurring_payments/overview.mdx +++ b/docs/main/recurring_payments/overview.mdx @@ -29,114 +29,15 @@ You will need to be able to tokenize a payment in order to set up a recurring pa Tokenizing Quickstart ::: -## Create a payment plan -Payment plans enables you to collect a payment that gets evenly distributed over a set amount of time. - -## Create a subscription -A Subscription enables you to collect a specific - -### 1. Setting up a Payment Plan - -### 2. A - -## Creating a payment plan - -### 1. Tokenize a payment method - -### 2. Creating a recurring payment -```graphql -mutation { - createRecurringPayment(input: { - account_code: String, - amount: Int, - currency: String, - fee_mode: FEE_MODE, - merchant_uid: String, - metadata: JSON, - payment_interval: PAYMENT_INTERVAL, - payment_method_id: String, - payor_id: String, - payor: Payor, - mute_all_emails: Boolean - }) -``` -#### Arguments - -Key -Description -createRecurringPayment -This object contains all the details needed to create a recurring payment. - - -#### Required Arguments - -Key -Type -Description -`merchant_uid` -String -The Pay Theory merchant is a unique identifier for the merchant that is creating the recurring payment. -`amount` -Int -The amount of the recurring payment. -`payment_interval` -Payment_Interval -The interval of the recurring payment. The following intervals are available: -Weekly -Bi_Weekly -Monthly -Quarterly -Bi_Annual -Annual - - -`payment_method_id` -String -The `payment_method_id` of the tokenized payment method that will be used for the recurring payment. -`payor_id` -String -The `payor_id` of the payor that the recurring payment will be tied to. -`payor` -Payor -The payor object that the recurring payment will be tied to. This will create a new payor in the system - - -####Optional Arguments - -Key -Type -Description -`account_code` -String -Custom account code for the recurring payment that will be tied to each payment. -`currency` -String -The currency of the recurring payment. If not provided, the currency will default to 'USD'. -`metadata` -JSON -Custom metadata for the recurring payment that will be tied to each payment. -`mute_all_emails` -Boolean -If set to true, no emails will be sent to the payor for this recurring payment. Default is false. - - - -### Returns -The call will return the newly created recurring payment. - -```json -{ - "data": { - "createRecurringPayment": { - ...recurring_payment_object - } - } -} -``` - -## Next Steps -We always have the option to update any information[Update Information] pertaining to recurring payments as well as cancel the recurring payments[Cancel]. +## Subscriptions +A subscription enables you to... +Create a subscription + +## Payment plans +Payment plans enables you to... + +Create a payment plan From d56a48c45c2d38776dffe84d106fe3e40487e519 Mon Sep 17 00:00:00 2001 From: srinithyaindla Date: Tue, 30 Jan 2024 10:47:38 -0600 Subject: [PATCH 05/34] Recurring and After Payments sections commit. --- docs/main/after_payments/query.mdx | 187 ++++++++++++++++++ .../after_payments/query_settlement_data.md | 12 -- .../after_payments/query_settlement_data.mdx | 114 +++++++++++ docs/main/after_payments/sending_receipts.md | 10 - docs/main/after_payments/sending_receipts.mdx | 66 +++++++ .../tokenizing/recalling_payment_methods.mdx | 2 +- .../create_a_payment_plan.mdx | 8 +- .../create_a_subscription.mdx | 10 +- .../cancel_recurring_payments.mdx | 4 +- .../missed_recurring_payment_data.mdx | 4 +- .../retry_failed_recurring_payments.mdx | 4 +- .../update_recurring_payments.mdx | 8 +- 12 files changed, 399 insertions(+), 30 deletions(-) create mode 100644 docs/main/after_payments/query.mdx delete mode 100644 docs/main/after_payments/query_settlement_data.md create mode 100644 docs/main/after_payments/query_settlement_data.mdx delete mode 100644 docs/main/after_payments/sending_receipts.md create mode 100644 docs/main/after_payments/sending_receipts.mdx diff --git a/docs/main/after_payments/query.mdx b/docs/main/after_payments/query.mdx new file mode 100644 index 0000000..bec0738 --- /dev/null +++ b/docs/main/after_payments/query.mdx @@ -0,0 +1,187 @@ +--- +sidebar_position: 3 +sidebar_label: Query Data +title: "Query Data" + +--- + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Query +We will go over how to create custom queries that you may submit to the Pay Theory API in this section. +Let's examine a fundamental query object first, and then we will dissect it. + +```graphql +{ + query_list: [ + { + key: "full_name", + value: "John Doe", + operator: EQUAL, + conjunctive_operator: NONE_NEXT + } + ], + sort_list: { + direction: ASC, + key: "transfer_date" + } +} +``` + +## Query Pair +A list of query pairs used to build out a query. + +#### Required Arguments +The following parameter must be used in order to use a query pair while writing a graphql query. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|key |string |The key to the value you want to query against.| +|operator | operator |The operator to use to compare the value to the data you are calling. More detail below.| +|value |string |The value to compare the data to. If using the LIKE or NOT_LIKE operator, this value can contain wildcard characters.| + + +#### Optional Arguments +The parameters listed below provide flexibility in query result customization but are not required in query pair. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|in_values |string |A list of values to compare the data to. This should be used instead of `value` if using the operators `IN` or `NOT_IN`.| +|conjuctive_operator | conjuctive_operator | The conjunctive operator to use to connect the query pair with the next query pair. More detail below.| +|query_group |QueryPairs | A list of query pairs to use to build out a nested query. A more detailed example is below under the examples section.| + + +### Operators +These operators are case-sensitive. The following are the available operators: + +|Type | description | +|-------------------|---------------------------------------| +|EQUAL | The data is equal to the value.| +|NOT_IN_LIST | The data is not in the list of values. | +|LIKE | The data is like the value. The value can contain wildcard characters like %,[],-,{},_,^. | +|GREATER_EQUAL | The data is greater than or equal to the value. | + +### Conjunctive Operators +These operators are case-sensitive. Conjunctive operators in the same array must match for a query to work. To mix operators use nested queries with query pairs containing a `query_list`. The following are the available conjunctive operators: + +|Type | description | +|-------------------|---------------------------------------| +|AND_NEXT | The results of the query have to meet all the conditions in the query pair list.| +|OR_NEXT | The results of the query have to meet one of the conditions in the query pair list. | +|NONE_NEXT | The final query pair in the list should use this operator since it has nothing to connect to. | + +### Sort Pair +A sort pair is the object used to tell a query how the data should be sorted. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|direction |string |The direction to sort the data. These are case-sensitive.
  • `ASC`: Begins with the least or smallest and ends with the greatest or largest.
  • `DESC`: Begins with the greatest or largest and ends with the least or smallest.
| +|key | string | The key to sort the data by.| + +## Examples +The examples that follow will provide a quick rundown of how the query functions in the payment transaction. + +#### 1. Transactions With Status SETTLED and the reference starts with `test`. + If you wanted to build a query that looked for any transactions that had a status of SETTLED and the reference starts with test, you would do the following. + + This query would return only those transactions where the status is `SETTLED` and the reference is `test`. + ```graphql + { + transactions(limit: 5, query: {query_list: [ + { + key: "reference", + value: "test%", + operator: LIKE, + conjunctive_operator: AND_NEXT + }, + { + key: "status", + value: "SETTLED", + operator: EQUAL, + conjunctive_operator: NONE_NEXT + } + ]}) + { + items { + transaction_id + reference + gross_amount + } + total_row_count + } + } + + ``` + +#### 2. Querying Sub Objects + Due to the fact payment method is a nested data object payment method queries can be made by passing a separate array of query pairs for the metadata. + + + This would return 10 transactions where the `gross_amount` is greater than 1000 and the payment has a payment method in which the `last_four` is equal to 1234. It would be sorted by gross_amount in ascending order. + + ```graphql + { + transactions(limit: 10, query:{ + query_list: [ + { + key: "gross_amount", + value: "1000", + operator: GREATER_THAN, + conjunctive_operator: NONE_NEXT + } + ], + sort_pair: [{ + direction: ASC, + key: "gross_amount" + }] + } + ) + { + items { + currency + gross_amount + payment_method(query_list: [{ + key: "last_four", + value: "1234", + operator: EQUAL + }]) + } + total_row_count + } + } + ``` + +*** + +## Next Steps +We can discover how to utilize the query object to [settle the transactions](query_settlement_data.mdx). + +
+ + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + +
\ No newline at end of file diff --git a/docs/main/after_payments/query_settlement_data.md b/docs/main/after_payments/query_settlement_data.md deleted file mode 100644 index 65f3019..0000000 --- a/docs/main/after_payments/query_settlement_data.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -sidebar_position: 2 -sidebar_label: Query Settlement Data -title: "Query Settlement Data" - ---- - -Guide Coming Soon - -## API Links -* [Query Settlement Data](../../api/settlement) -* [Query Data](../../api/query) diff --git a/docs/main/after_payments/query_settlement_data.mdx b/docs/main/after_payments/query_settlement_data.mdx new file mode 100644 index 0000000..0e5878c --- /dev/null +++ b/docs/main/after_payments/query_settlement_data.mdx @@ -0,0 +1,114 @@ +--- +sidebar_position: 2 +sidebar_label: Query Settlement Data +title: "Query Settlement Data" + +--- + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Query Settlement Data +Settlements are a batch of payments, disputes, and refunds that are grouped together and paid out to a merchant. This guide will walk you through how to write a query for settlment. + +```graphql +query Getsettlement{ + settlements(limit: 10, direction: FORWARD, offset: "", offset_id: "", query:{ + query_list:[ + { + key: "status", + value: "SUCCEEDED", + operator : EQUAL + } + ] + }) { + items { + gross_amount + merchant_uid + settlement_batch + status + transaction_debit_count + transaction_reversal_count + } + } +} + +``` + +### Arguments +Sending a request is required in order to get query settlement data. To obtain the query data, the following three parameters are necessary. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|limit |int |The number of settlements to return.| +|direction | string | The direction of the pagination. Make sure the results are returned in the correct order.
  • FORWARD
  • BACKWARD
| +|query |QueryObject | The query to filter the settlements with. Detailed information about the query object can be found [here](query.mdx).| + + +### Required Arguments +The following parameters must be used in order for getting the query settlement data. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|gross_amount |int |The total amount of the settlement before any fees and adjustments. | +|merchant_uid | string | The Pay Theory unique identifier assigned to the merchant that the settlement belongs to.| +|query |QueryObject | The query to filter the settlements with. Detailed information about the query object can be found here[query].| +|settlement_batch |int |The unique settlement batch number.| +|status | string |The status of the settlement.
  • PENDING
  • SUCCEEDED
| +|transaction_debit_count |int | The number of transactions of type DEBIT that were included in the settlement.| + + +*** + +## Returns +This returns if the attempt made for retry failed payment is successful or not. + +```JSON +{ + "data": { + "settlements": { + "items": [ + { + "settlement_batch": int + }, + { + "settlement_batch": int + }, + ], + "total_row_count": int + } + } +} +``` + +## Next Steps +We can also find how to build your own queries and what operators we need while building a [query](query.mdx). + +
+ + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + +
\ No newline at end of file diff --git a/docs/main/after_payments/sending_receipts.md b/docs/main/after_payments/sending_receipts.md deleted file mode 100644 index dbbb955..0000000 --- a/docs/main/after_payments/sending_receipts.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -sidebar_position: 3 -sidebar_label: Sending Receipts -title: "Sending Receipts" - ---- - -Guide Coming Soon -## API Link -* [Sending Receipts](../../api/transaction#send-transaction-receipt) \ No newline at end of file diff --git a/docs/main/after_payments/sending_receipts.mdx b/docs/main/after_payments/sending_receipts.mdx new file mode 100644 index 0000000..38b9b46 --- /dev/null +++ b/docs/main/after_payments/sending_receipts.mdx @@ -0,0 +1,66 @@ +--- +sidebar_position: 4 +sidebar_label: Sending Receipts +title: "Sending Receipts" + +--- + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Sending Receipts +This call will send a receipt for a transaction to the email address on file with the payor or an email passed in. This guide will walk you through how to send receipts the payor. + +```graphql +mutation sendingReceipts (email: AWSEmail, receipt_description: String, transaction_id: String!) { + createReceiptEmail(transaction_id: transaction_id, + email: email, + receipt_description: receipt_description) +} + +``` + +### Required Arguments +The following parameters must be used in order to send receipts to the payor. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|transaction_id |string |The Pay Theory unique identifier for the transaction to send the receipt for. | +|email | AWSEmail | The email address to send the receipt to. If not provided the email address on file with the payor will be used.| +|receipt_description |string | The description of the transaction that will be displayed on the receipt. If not provided it will just say "Payment to merchant_name".| + + +*** + + +## Next Steps +We can learn how to use the querying object in settlements [query settlement object](query_settlement_data.mdx) as well as how the [query](query) in a transaction functions works. + + + + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + + \ No newline at end of file diff --git a/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx b/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx index 42652b0..bda34ab 100644 --- a/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx +++ b/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx @@ -97,7 +97,7 @@ The output response will come back in JSON format as an array of payment method *** ## Next Steps -You can also refer to how to make [one time payment Transaction](./Making a Payment with Payment Token.mdx) +You can also refer to how to make [one time payment Transaction](making_a_payment_with_payment_tokens.mdx)
diff --git a/docs/main/recurring_payments/create_a_payment_plan.mdx b/docs/main/recurring_payments/create_a_payment_plan.mdx index 2fecf0c..059792e 100644 --- a/docs/main/recurring_payments/create_a_payment_plan.mdx +++ b/docs/main/recurring_payments/create_a_payment_plan.mdx @@ -19,7 +19,7 @@ import Admonition from '@theme/Admonition'; # Making a Recurring payment -This guide will walk you through how to make a recurring payment plan. +Payment plan are any recurring transactions that are completed on a periodic basis, such as utility bills, loans, or contracts. This guide will walk you through how to make a recurring payment plan. ## Create a payment plan A recurring payment represents a payment that will trigger on an interval. You can create a recurring payment with a set number of payments to enable a payment plan for a payor. @@ -48,11 +48,15 @@ mutation { } ``` ### Arguments +To create a payment plan, you need to send a request. + |Key |description | |---------------|---------------------------| | createRecurringPayment | This object contains all the details needed to create a recurring payment.| ### Required Arguments +The following parameters must be used in order for the payment plan to be created successfully. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. + |Key |type | description | |-------------------|-------------|---------------------------------------| | amount |int |The amount of the recurring payment.| @@ -65,6 +69,8 @@ mutation { ### Optional Arguments +The parameters listed below provide flexibility in query result customization but are not required to create a payment plan. Default values are frequently assigned to them. + |Key |type |description | |---------------------|-----------------|--------------------------------------------| | amount_per_payment |int | The amount of the recurring payment.| diff --git a/docs/main/recurring_payments/create_a_subscription.mdx b/docs/main/recurring_payments/create_a_subscription.mdx index f545905..7188684 100644 --- a/docs/main/recurring_payments/create_a_subscription.mdx +++ b/docs/main/recurring_payments/create_a_subscription.mdx @@ -19,9 +19,9 @@ import Admonition from '@theme/Admonition'; # Making a payment using subscription -This guide will walk you through how to make a payment using subscription. +A payment subscription involves paying for ongoing use of a service or product, sometimes in many levels.This guide will walk you through how to make a payment using subscription. -## Create a payment plan +## Create a payment plan using subscription You can also create a recurring payment with no set payment amounts to enable a subscription for a payor. ```graphql @@ -47,11 +47,15 @@ mutation { } ``` ### Arguments +To create a payment subscription plan, you need to send a request. + |Key |description | |---------------|---------------------------| | createPaymentSubscription | This object contains all the details needed to create a payment subscription.| ### Required Arguments +The following parameters must be used in order for the subscription plan to be created successfully. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. + |Key |type | description | |-------------------|-------------|---------------------------------------| | amount |int |The amount of the recurring payment.| @@ -63,6 +67,8 @@ mutation { ### Optional Arguments +The parameters listed below provide flexibility in query result customization but are not required to create a subscription plan. Default values are frequently assigned to them. + |Key |type |description | |---------------------|-----------------|--------------------------------------------| | amount_per_payment |int | The amount of the recurring payment.| diff --git a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx index 60609d1..dda03f9 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx @@ -19,7 +19,7 @@ import Admonition from '@theme/Admonition'; # Cancel Recurring Payment -This guide will show you how to cancel the recurring payments that will halt the further installments. +Cancelling recurring payments stops an account from being charged or debited in the future for a service or subscription. This guide will show you how to cancel the recurring payments that will halt the further installments. ## Query to cancel recurring payments The procedure known as "Cancel Recurring Payment" ends planned, recurring payments. In order to halt further installments, users usually take this step, frequently. Once a recurring payment is canceled, it cannot be reactivated. @@ -32,6 +32,8 @@ mutation { ``` ### Required Arguments +The following parameter must be used in order for the payment plan to be cancelled successfully. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. + |Key |type | description | |-------------------|-------------|---------------------------------------| | recurring_id |string |The recurring_id of the recurring payment to be canceled.| diff --git a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx index c2d0933..d69193e 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx @@ -19,7 +19,7 @@ import Admonition from '@theme/Admonition'; # Get Missed Recurring Payment Data -By following this guide you will learn how to obtain the total amount of payments due as well as the number of missed payments. +Retrieving missed recurring payment data allows tracking of failed transactions or missed payments within a subscription or service. By following this guide you will learn how to obtain the total amount of payments due as well as the number of missed payments. ## Obtain Missed Recurring Payment Information @@ -36,6 +36,8 @@ This is useful if you want to charge a customer for all missed payments at once ``` ### Required Arguments +The following parameters must be used in order to get the missed recurring payment data information. + |Key |type | description | |-------------------|-------------|---------------------------------------| | recurring_id |string |The recurring_id of the recurring payment to be retired.| diff --git a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx index d6b8e7d..07cc24d 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx @@ -19,7 +19,7 @@ import Admonition from '@theme/Admonition'; # Retry Failed Recurring Payment -This should be used if the payment method on file is still valid, and you want to retry the payment. +Retry failed recurring payments automatically resubmits declined transactions for a subscription or service. This should be used if the payment method on file is still valid, and you want to retry the payment. :::info Example Payment has failed because of insufficient funds on the card, but the customer has made a payment on the balance to resolve the issue this will prevent future payment failures due to insufficient funds. @@ -37,6 +37,8 @@ mutation { ``` ### Required Arguments +The following parameter must be used in order to retry the failed recurring payment data. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. + |Key |type | description | |-------------------|-------------|---------------------------------------| | recurring_id |string |The recurring_id of the recurring payment to be retired.| diff --git a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx index 8923cf3..3ac0716 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx @@ -20,7 +20,7 @@ import Admonition from '@theme/Admonition'; # Update Recurring Payment -This guide refers to making changes to the specifics of an already-existing regular payment plan, including altering the amounts, intervals, or related data. +Updating recurring payments allows modifications to payment details, intervals, or amounts for ongoing subscriptions or services. This guide refers to making changes to the specifics of an already-existing regular payment plan, including altering the amounts, intervals, or related data. :::info It updates the payment method on the recurring payment. If you want to update any other fields, you will need to cancel the recurring payment and create a new one. @@ -50,11 +50,15 @@ mutation { ``` ### Arguments +To update a recurring payment, you need to send a request. + |Key | description | |-------------------|---------------------------------------| | UpdateRecurringPaymentInput |The recurring_id of the recurring payment to be retired.| ### Required Arguments +The following parameters must be used in order to update recurring payment data information. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. + |Key |type | description | |-------------------|-------------|---------------------------------------| | recurring_id |string |The `recurring_id` of the recurring payments to be updated.| @@ -62,6 +66,8 @@ mutation { ### Optional Arguments +The parameters listed below provide flexibility in query result customization but are not required to update a payment plan. + |Key |type |description | |---------------------|-----------------|--------------------------------------------| | pay_all_missed_payment |boolean | If the recurring payment has a set number of payments (Payment Plan) and is in a Failed state, this will make a one time charge to account for all missed payments to get it back into a Successful state.| From c737b3e884ae035d1e08539bf45e1b9f9c8c4d30 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Tue, 30 Jan 2024 12:20:00 -0500 Subject: [PATCH 06/34] fix: updated the operator list to more exhaustive --- docs/main/after_payments/query.mdx | 30 +- package-lock.json | 2430 ++++++++++++++++++---------- 2 files changed, 1584 insertions(+), 876 deletions(-) diff --git a/docs/main/after_payments/query.mdx b/docs/main/after_payments/query.mdx index bec0738..0a18f91 100644 --- a/docs/main/after_payments/query.mdx +++ b/docs/main/after_payments/query.mdx @@ -49,7 +49,6 @@ The following parameter must be used in order to use a query pair while writing |-------------------|-------------|---------------------------------------| |key |string |The key to the value you want to query against.| |operator | operator |The operator to use to compare the value to the data you are calling. More detail below.| -|value |string |The value to compare the data to. If using the LIKE or NOT_LIKE operator, this value can contain wildcard characters.| #### Optional Arguments @@ -57,20 +56,33 @@ The parameters listed below provide flexibility in query result customization bu |Key |type | description | |-------------------|-------------|---------------------------------------| -|in_values |string |A list of values to compare the data to. This should be used instead of `value` if using the operators `IN` or `NOT_IN`.| -|conjuctive_operator | conjuctive_operator | The conjunctive operator to use to connect the query pair with the next query pair. More detail below.| +|conjuctive_operator | ConjunctiveOperator | The conjunctive operator to use to connect the query pair with the next query pair. More detail below.| +|in_values |string |A list of values to compare the data to. This should be used instead of `value` if using the operators `IN_LIST` or `NOT_IN_LIST`.| |query_group |QueryPairs | A list of query pairs to use to build out a nested query. A more detailed example is below under the examples section.| +|value |string |The value to compare the data to. If using the LIKE or NOT_LIKE operator, this value can contain wildcard characters.| -### Operators + + ### Operators These operators are case-sensitive. The following are the available operators: |Type | description | |-------------------|---------------------------------------| -|EQUAL | The data is equal to the value.| -|NOT_IN_LIST | The data is not in the list of values. | +|EQUAL | The value of the data must be equal to the value in the query pair.| +|EQUAL_FALSE | The value of the data must be equal to False.| +|EQUAL_TRUE | The value of the data must be equal to True.| +|GREATER_EQUAL | The value of the data must be greater than or equal to the value in the query pair.| +|GREATER_THAN | The value of the data must be greater than the value in the query pair.| +|IN_LIST | The value of the data must be in the list of in_values in the query pair.| +|IS_NOT_NULL | The value of the data must not be null.| +|IS_NULL | The value of the data must be null.| +|LESS_EQUAL | The value of the data must be less than or equal to the value in the query pair.| +|LESS_THAN | The value of the data must be less than the value in the query pair.| |LIKE | The data is like the value. The value can contain wildcard characters like %,[],-,{},_,^. | -|GREATER_EQUAL | The data is greater than or equal to the value. | +|NOT_EQUAL | The value of the data must not be equal to the value in the query pair.| +|NOT_IN_LIST | The value of the data must not be in the list of in_values in the query pair.| +|NOT_LIKE | The data is not like the value. The value can contain wildcard characters like %,[],-,{},_,^. | + ### Conjunctive Operators These operators are case-sensitive. Conjunctive operators in the same array must match for a query to work. To mix operators use nested queries with query pairs containing a `query_list`. The following are the available conjunctive operators: @@ -86,7 +98,7 @@ A sort pair is the object used to tell a query how the data should be sorted. |Key |type | description | |-------------------|-------------|---------------------------------------| -|direction |string |The direction to sort the data. These are case-sensitive.
  • `ASC`: Begins with the least or smallest and ends with the greatest or largest.
  • `DESC`: Begins with the greatest or largest and ends with the least or smallest.
| +|direction |SortDirection |The direction to sort the data. These are case-sensitive.
  • `ASC`: Begins with the least or smallest and ends with the greatest or largest.
  • `DESC`: Begins with the greatest or largest and ends with the least or smallest.
| |key | string | The key to sort the data by.| ## Examples @@ -165,7 +177,7 @@ The examples that follow will provide a quick rundown of how the query functions *** ## Next Steps -We can discover how to utilize the query object to [settle the transactions](query_settlement_data.mdx). +We can discover how to utilize the query object to [query settlement details](query_settlement_data.mdx).
diff --git a/package-lock.json b/package-lock.json index e067628..53ce259 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,22 +35,22 @@ } }, "node_modules/@algolia/autocomplete-core": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.12.1.tgz", - "integrity": "sha512-Paf1MEdsU8EA5eApJlp6yNJGn6IfWec6UoJyv6fzI+T2v9nU4ynH4nkq07hzOilImVy33vFlzh1+D7jcU2lMFg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.12.2.tgz", + "integrity": "sha512-9H11byD/LotKdsAQW8LKfJRwTKde33nxieKgBRbG8jhPErnREsiAmdF82910mv2zimu66T4f9BL9zT1kGEF74g==", "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.12.1", - "@algolia/autocomplete-shared": "1.12.1" + "@algolia/autocomplete-plugin-algolia-insights": "1.12.2", + "@algolia/autocomplete-shared": "1.12.2" } }, "node_modules/@algolia/autocomplete-js": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-js/-/autocomplete-js-1.12.1.tgz", - "integrity": "sha512-o8OVeyTSCJ1n5xnULBqlJ3gcimlyevUeNUmGXuHgd6K2TeHmZ8EgaxHWuyzOdgWNjcJpCpjDh4Q/hEvQq3svDQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-js/-/autocomplete-js-1.12.2.tgz", + "integrity": "sha512-urCborbT4qJHZJ8atCe1YNicWQ0rJPRK6KWoufmukqZV0ktxXcRlJCstRV9j/8CqxOheB/eDWo/Rm3v9nXSJLg==", "dependencies": { - "@algolia/autocomplete-core": "1.12.1", - "@algolia/autocomplete-preset-algolia": "1.12.1", - "@algolia/autocomplete-shared": "1.12.1", + "@algolia/autocomplete-core": "1.12.2", + "@algolia/autocomplete-preset-algolia": "1.12.2", + "@algolia/autocomplete-shared": "1.12.2", "htm": "^3.1.1", "preact": "^10.13.2" }, @@ -60,22 +60,22 @@ } }, "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.12.1.tgz", - "integrity": "sha512-wZnfgmJA+g+WWkyXRZqv9NvRtOrZCnsZMpSvGe4QdQatEWRTAn2hry1cHMj8+sxwpqQQE7Kt/GAZhElrmErPkw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.12.2.tgz", + "integrity": "sha512-jPlBXFZs3ukUl5bn27kF3D6JHsWwK9g2bcjIeFBld2UaZnH6ec8tcldVeYbUy6QzDevmFyTohzhb1j6MtSZBrQ==", "dependencies": { - "@algolia/autocomplete-shared": "1.12.1" + "@algolia/autocomplete-shared": "1.12.2" }, "peerDependencies": { "search-insights": ">= 1 < 3" } }, "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.12.1.tgz", - "integrity": "sha512-fbciiuDZ6WsQOhf3Rdm4ctZpOGngg8hNtss4FCJz4FGnGSUxs+H0n38k+FbQ3vcfzQ0nsdAjXWwM4G0OLJE3Mw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.12.2.tgz", + "integrity": "sha512-eIKg14xSr5nHp4Qc9ddl59iVTGmJzOTN8KSZMR/cp76Wa78VvYG5SWSU3Qi+visFrlPWH6I0aM8RrevsnhprtQ==", "dependencies": { - "@algolia/autocomplete-shared": "1.12.1" + "@algolia/autocomplete-shared": "1.12.2" }, "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", @@ -83,88 +83,88 @@ } }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.12.1.tgz", - "integrity": "sha512-Q2NQ9pxSpwi0WsLlGtrnE+nMo4ERgB4YlYi7eW7EIUtD0LSixLQeOqlNNYIhFUYbNYpfG5s9L3W8PMfS2M4qOg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.12.2.tgz", + "integrity": "sha512-XOaJ0LeXh8jgLKgR1FF2l3aF/8pw4gdjNWucaZh2NfwU1EfXmgjsvUHS7GglJgvxUcSHDoQglr2I5zUo3piSbA==", "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, "node_modules/@algolia/autocomplete-theme-classic": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-theme-classic/-/autocomplete-theme-classic-1.12.1.tgz", - "integrity": "sha512-oKmMEWAtASUizKc73RKS5vzu0iURM+joVdlAkOVuCpjajUJ98ejMnk43ht4FKPBXDBAVSlM4SmS05lHIpYVLIg==" + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-theme-classic/-/autocomplete-theme-classic-1.12.2.tgz", + "integrity": "sha512-0AZzaX4jiN9fc/uO00PTZ4GUYMS/W5BIjCVMF6Rry21VhH5RYBnhH1VLNw3WUH++K2xwcyIoDIBV+tCInF0lOg==" }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.20.0.tgz", - "integrity": "sha512-uujahcBt4DxduBTvYdwO3sBfHuJvJokiC3BP1+O70fglmE1ShkH8lpXqZBac1rrU3FnNYSUs4pL9lBdTKeRPOQ==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.21.1.tgz", + "integrity": "sha512-vUkac/vgj8inyGR/IgunRjTOQ6IlBwl7afFkIfUZRqbqKKXBs+A/g5wgH+UnAlCSW8wjFRAIfCzuvSRb1/qjsQ==", "dependencies": { - "@algolia/cache-common": "4.20.0" + "@algolia/cache-common": "4.21.1" } }, "node_modules/@algolia/cache-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.20.0.tgz", - "integrity": "sha512-vCfxauaZutL3NImzB2G9LjLt36vKAckc6DhMp05An14kVo8F1Yofb6SIl6U3SaEz8pG2QOB9ptwM5c+zGevwIQ==" + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.21.1.tgz", + "integrity": "sha512-HUo4fRk8KXFMyCASW0k+Kl8iXBoRPdqAjV9OVaFibTNg1dbwnpe6eIxbSTM6AJ2X82ic/8x3GuAO8zF/E515PA==" }, "node_modules/@algolia/cache-in-memory": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.20.0.tgz", - "integrity": "sha512-Wm9ak/IaacAZXS4mB3+qF/KCoVSBV6aLgIGFEtQtJwjv64g4ePMapORGmCyulCFwfePaRAtcaTbMcJF+voc/bg==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.21.1.tgz", + "integrity": "sha512-+l2pLg6yIwRaGNtv41pGF/f/e9Qk80FeYE41f4OXS9lb5vpyrxzqM5nUaffWk/ZSFrPDuw5J2E226c//tIIffA==", "dependencies": { - "@algolia/cache-common": "4.20.0" + "@algolia/cache-common": "4.21.1" } }, "node_modules/@algolia/client-account": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.20.0.tgz", - "integrity": "sha512-GGToLQvrwo7am4zVkZTnKa72pheQeez/16sURDWm7Seyz+HUxKi3BM6fthVVPUEBhtJ0reyVtuK9ArmnaKl10Q==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.21.1.tgz", + "integrity": "sha512-AC6SjA9n38th73gAUqcjsuxNUChpwaflaAhPL0qO9cUICN67njpQrnYaoSVZ/yx0opG5zQFRKbpEcuPGj0XjhQ==", "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.21.1", + "@algolia/client-search": "4.21.1", + "@algolia/transporter": "4.21.1" } }, "node_modules/@algolia/client-analytics": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.20.0.tgz", - "integrity": "sha512-EIr+PdFMOallRdBTHHdKI3CstslgLORQG7844Mq84ib5oVFRVASuuPmG4bXBgiDbcsMLUeOC6zRVJhv1KWI0ug==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.21.1.tgz", + "integrity": "sha512-q6AxvAcBl4fNZXZsMwRRQXcsxUv0PK5eUAz/lHDvgkMWAg6cP7Fl+WIq0fHcG7cJA4EHf2sT5fV6Z+yUlf7NfA==", "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.21.1", + "@algolia/client-search": "4.21.1", + "@algolia/requester-common": "4.21.1", + "@algolia/transporter": "4.21.1" } }, "node_modules/@algolia/client-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.20.0.tgz", - "integrity": "sha512-P3WgMdEss915p+knMMSd/fwiHRHKvDu4DYRrCRaBrsfFw7EQHon+EbRSm4QisS9NYdxbS04kcvNoavVGthyfqQ==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.21.1.tgz", + "integrity": "sha512-LOH7ncYwY/x7epOgxc/MIuV7m3qzl00wIjDG5/9rgImFpkV0X+D/ndJI9DmPsIx7yaTLd5xv/XYuKLcvrUR0eQ==", "dependencies": { - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/requester-common": "4.21.1", + "@algolia/transporter": "4.21.1" } }, "node_modules/@algolia/client-personalization": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.20.0.tgz", - "integrity": "sha512-N9+zx0tWOQsLc3K4PVRDV8GUeOLAY0i445En79Pr3zWB+m67V+n/8w4Kw1C5LlbHDDJcyhMMIlqezh6BEk7xAQ==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.21.1.tgz", + "integrity": "sha512-u2CyQjHbyVwPqM5eSXd/o+rh1Pk949P/MO6s+OxyEGg6/R2YpYvmsafVZl9Q+xqT8pFaf5QygfcqlSdMUDHV5Q==", "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.21.1", + "@algolia/requester-common": "4.21.1", + "@algolia/transporter": "4.21.1" } }, "node_modules/@algolia/client-search": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.20.0.tgz", - "integrity": "sha512-zgwqnMvhWLdpzKTpd3sGmMlr4c+iS7eyyLGiaO51zDZWGMkpgoNVmltkzdBwxOVXz0RsFMznIxB9zuarUv4TZg==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.21.1.tgz", + "integrity": "sha512-3KqSmMkQmF+ACY/Ms5TdcvrcK8iqgQP/N0EPnNUUP4LMUzAACpLLTdzA+AtCuc6oaz5ITtGJBVdPUljj5Jf/Lg==", "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.21.1", + "@algolia/requester-common": "4.21.1", + "@algolia/transporter": "4.21.1" } }, "node_modules/@algolia/events": { @@ -173,47 +173,47 @@ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" }, "node_modules/@algolia/logger-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.20.0.tgz", - "integrity": "sha512-xouigCMB5WJYEwvoWW5XDv7Z9f0A8VoXJc3VKwlHJw/je+3p2RcDXfksLI4G4lIVncFUYMZx30tP/rsdlvvzHQ==" + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.21.1.tgz", + "integrity": "sha512-9AyYpR2OO9vPkkDlpTtW2/6nX+RmMd7LUwzJiAF3uN+BYUiQqgXEp+oGaH8UC0dgetmK7wJO6hw4b39cnTdEpw==" }, "node_modules/@algolia/logger-console": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.20.0.tgz", - "integrity": "sha512-THlIGG1g/FS63z0StQqDhT6bprUczBI8wnLT3JWvfAQDZX5P6fCg7dG+pIrUBpDIHGszgkqYEqECaKKsdNKOUA==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.21.1.tgz", + "integrity": "sha512-9wizQiQ8kL4DiBmT82i403UwacNuv+0hpfsfaWYZQrGjpzG+yvXETWM4AgwFZLj007esuKQiGfOPUoYFZNkGGA==", "dependencies": { - "@algolia/logger-common": "4.20.0" + "@algolia/logger-common": "4.21.1" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.20.0.tgz", - "integrity": "sha512-HbzoSjcjuUmYOkcHECkVTwAelmvTlgs48N6Owt4FnTOQdwn0b8pdht9eMgishvk8+F8bal354nhx/xOoTfwiAw==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.21.1.tgz", + "integrity": "sha512-9NudesJLuXtRHV+JD8fTkrsdVj/oAPQbtLnxBbSQeMduzV6+a7W+G9VuWo5fwFymCdXR8/Hb6jy8D1owQIq5Gw==", "dependencies": { - "@algolia/requester-common": "4.20.0" + "@algolia/requester-common": "4.21.1" } }, "node_modules/@algolia/requester-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.20.0.tgz", - "integrity": "sha512-9h6ye6RY/BkfmeJp7Z8gyyeMrmmWsMOCRBXQDs4mZKKsyVlfIVICpcSibbeYcuUdurLhIlrOUkH3rQEgZzonng==" + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.21.1.tgz", + "integrity": "sha512-KtX2Ep3C43XxoN3xKw755cdf9enE6gPgzh6ufZQRJBl4rYCOoXbiREU6noDYX/Nq+Q+sl03V37WAp0YgtIlh9g==" }, "node_modules/@algolia/requester-node-http": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.20.0.tgz", - "integrity": "sha512-ocJ66L60ABSSTRFnCHIEZpNHv6qTxsBwJEPfYaSBsLQodm0F9ptvalFkHMpvj5DfE22oZrcrLbOYM2bdPJRHng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.21.1.tgz", + "integrity": "sha512-EcD8cY6Bh2iMySpqXglTKU9+pt+km1ws3xF0V7CGMIUzW1HmN/ZVhi4apCBY4tEMytbyARv0XRTPsolSC4gSSw==", "dependencies": { - "@algolia/requester-common": "4.20.0" + "@algolia/requester-common": "4.21.1" } }, "node_modules/@algolia/transporter": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.20.0.tgz", - "integrity": "sha512-Lsii1pGWOAISbzeyuf+r/GPhvHMPHSPrTDWNcIzOE1SG1inlJHICaVe2ikuoRjcpgxZNU54Jl+if15SUCsaTUg==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.21.1.tgz", + "integrity": "sha512-KGLFKz8krzOWRwcbR4FT49Grh1dES/mG8dHABEojbvrfUb6kUFxkAee/aezp2GIxuNx+gpQjRn1IzOsqbUZL0A==", "dependencies": { - "@algolia/cache-common": "4.20.0", - "@algolia/logger-common": "4.20.0", - "@algolia/requester-common": "4.20.0" + "@algolia/cache-common": "4.21.1", + "@algolia/logger-common": "4.21.1", + "@algolia/requester-common": "4.21.1" } }, "node_modules/@ampproject/remapping": { @@ -229,11 +229,11 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dependencies": { - "@babel/highlight": "^7.22.13", + "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" }, "engines": { @@ -305,28 +305,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz", + "integrity": "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.6", + "@babel/parser": "^7.23.6", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -350,11 +350,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dependencies": { - "@babel/types": "^7.23.0", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -386,13 +386,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -409,16 +409,16 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", + "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" @@ -463,9 +463,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -531,9 +531,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -633,9 +633,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "engines": { "node": ">=6.9.0" } @@ -649,9 +649,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "engines": { "node": ">=6.9.0" } @@ -670,22 +670,22 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -760,9 +760,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -771,9 +771,9 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -785,13 +785,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -800,6 +800,21 @@ "@babel/core": "^7.13.0" } }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", + "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", @@ -870,9 +885,9 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -884,9 +899,9 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -920,9 +935,9 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1028,9 +1043,9 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1057,9 +1072,9 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1071,9 +1086,9 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", - "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", + "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5", @@ -1088,13 +1103,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" + "@babel/helper-remap-async-to-generator": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1104,9 +1119,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1118,9 +1133,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", - "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1132,11 +1147,11 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1147,11 +1162,11 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, @@ -1163,17 +1178,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -1185,12 +1200,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" + "@babel/template": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1200,9 +1215,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", - "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1214,11 +1229,11 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1229,9 +1244,9 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1243,9 +1258,9 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -1258,11 +1273,11 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1273,9 +1288,9 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -1288,11 +1303,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1302,12 +1318,12 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1318,9 +1334,9 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -1333,9 +1349,9 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1347,9 +1363,9 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -1362,9 +1378,9 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1376,11 +1392,11 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", - "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1391,11 +1407,11 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -1407,12 +1423,12 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", - "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.20" }, @@ -1424,11 +1440,11 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1454,9 +1470,9 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1468,9 +1484,9 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -1483,9 +1499,9 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -1498,15 +1514,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", "dependencies": { - "@babel/compat-data": "^7.22.9", + "@babel/compat-data": "^7.23.3", "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" + "@babel/plugin-transform-parameters": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -1516,12 +1532,12 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" + "@babel/helper-replace-supers": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1531,9 +1547,9 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -1546,9 +1562,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", - "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -1562,9 +1578,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1576,11 +1592,11 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1591,12 +1607,12 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, @@ -1608,9 +1624,9 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1622,9 +1638,9 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz", - "integrity": "sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz", + "integrity": "sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1636,9 +1652,9 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", - "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", + "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1650,15 +1666,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz", - "integrity": "sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.15" + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" }, "engines": { "node": ">=6.9.0" @@ -1682,9 +1698,9 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", - "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", + "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -1697,9 +1713,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "regenerator-transform": "^0.15.2" @@ -1712,9 +1728,9 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1726,9 +1742,9 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", - "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.6.tgz", + "integrity": "sha512-kF1Zg62aPseQ11orDhFRw+aPG/eynNQtI+TyY+m33qJa2cJ5EEvza2P2BNTIA9E5MyqFABHEyY6CPHwgdy9aNg==", "dependencies": { "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", @@ -1753,9 +1769,9 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1767,9 +1783,9 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1782,9 +1798,9 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1796,9 +1812,9 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1810,9 +1826,9 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1824,14 +1840,14 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", - "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", + "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-create-class-features-plugin": "^7.23.6", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" + "@babel/plugin-syntax-typescript": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -1841,9 +1857,9 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1855,11 +1871,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1870,11 +1886,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1885,11 +1901,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1900,24 +1916,25 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", - "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.6.tgz", + "integrity": "sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==", "dependencies": { - "@babel/compat-data": "^7.23.2", - "@babel/helper-compilation-targets": "^7.22.15", + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1929,56 +1946,55 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.23.2", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.23.0", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.23.0", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.23.0", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-modules-systemjs": "^7.23.0", - "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.4", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.23.0", "babel-plugin-polyfill-corejs2": "^0.4.6", "babel-plugin-polyfill-corejs3": "^0.8.5", "babel-plugin-polyfill-regenerator": "^0.5.3", @@ -2014,16 +2030,16 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.15.tgz", - "integrity": "sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", + "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.22.5", + "@babel/plugin-transform-react-display-name": "^7.23.3", "@babel/plugin-transform-react-jsx": "^7.22.15", "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" + "@babel/plugin-transform-react-pure-annotations": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -2033,15 +2049,15 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz", - "integrity": "sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", + "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-typescript": "^7.22.15" + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -2056,9 +2072,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2067,9 +2083,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.2.tgz", - "integrity": "sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.6.tgz", + "integrity": "sha512-Djs/ZTAnpyj0nyg7p1J6oiE/tZ9G2stqAFlLGZynrW+F3k2w2jGK2mLOBxzYIOcZYA89+c3d3wXKpYLcpwcU6w==", "dependencies": { "core-js-pure": "^3.30.2", "regenerator-runtime": "^0.14.0" @@ -2092,19 +2108,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -2112,11 +2128,11 @@ } }, "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, @@ -2548,16 +2564,16 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.0.0.tgz", - "integrity": "sha512-cfcONdWku56Oi7Hdus2uvUw/RKRRlIGMViiHLjvQ21CEsEqnQ297MRoIgjU28kL7/CXD/+OiANSq3T1ezAiMhA==", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/logger": "3.0.0", - "@docusaurus/types": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-common": "3.0.0", - "@docusaurus/utils-validation": "3.0.0", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.0.1.tgz", + "integrity": "sha512-xARiWnjtVvoEniZudlCq5T9ifnhCu/GAZ5nA7XgyLfPcNpHQa241HZdsTlLtVcecEVVdllevBKOp7qknBBaMGw==", + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-common": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" @@ -2570,24 +2586,83 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/preset-classic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.0.0.tgz", - "integrity": "sha512-90aOKZGZdi0+GVQV+wt8xx4M4GiDrBRke8NO8nWwytMEXNrxrBxsQYFRD1YlISLJSCiHikKf3Z/MovMnQpnZyg==", + "node_modules/@docusaurus/plugin-sitemap/node_modules/@docusaurus/core": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.0.1.tgz", + "integrity": "sha512-CXrLpOnW+dJdSv8M5FAJ3JBwXtL6mhUWxFA8aS0ozK6jBG/wgxERk5uvH28fCeFxOGbAT9v1e9dOMo1X2IEVhQ==", "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/plugin-content-blog": "3.0.0", - "@docusaurus/plugin-content-docs": "3.0.0", - "@docusaurus/plugin-content-pages": "3.0.0", - "@docusaurus/plugin-debug": "3.0.0", - "@docusaurus/plugin-google-analytics": "3.0.0", - "@docusaurus/plugin-google-gtag": "3.0.0", - "@docusaurus/plugin-google-tag-manager": "3.0.0", - "@docusaurus/plugin-sitemap": "3.0.0", - "@docusaurus/theme-classic": "3.0.0", - "@docusaurus/theme-common": "3.0.0", - "@docusaurus/theme-search-algolia": "3.0.0", - "@docusaurus/types": "3.0.0" + "@babel/core": "^7.23.3", + "@babel/generator": "^7.23.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "@babel/preset-react": "^7.22.5", + "@babel/preset-typescript": "^7.22.5", + "@babel/runtime": "^7.22.6", + "@babel/runtime-corejs3": "^7.22.6", + "@babel/traverse": "^7.22.8", + "@docusaurus/cssnano-preset": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-common": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@slorber/static-site-generator-webpack-plugin": "^4.0.7", + "@svgr/webpack": "^6.5.1", + "autoprefixer": "^10.4.14", + "babel-loader": "^9.1.3", + "babel-plugin-dynamic-import-node": "^2.3.3", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "clean-css": "^5.3.2", + "cli-table3": "^0.6.3", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "copy-webpack-plugin": "^11.0.0", + "core-js": "^3.31.1", + "css-loader": "^6.8.1", + "css-minimizer-webpack-plugin": "^4.2.2", + "cssnano": "^5.1.15", + "del": "^6.1.1", + "detect-port": "^1.5.1", + "escape-html": "^1.0.3", + "eta": "^2.2.0", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "html-minifier-terser": "^7.2.0", + "html-tags": "^3.3.1", + "html-webpack-plugin": "^5.5.3", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "mini-css-extract-plugin": "^2.7.6", + "postcss": "^8.4.26", + "postcss-loader": "^7.3.3", + "prompts": "^2.4.2", + "react-dev-utils": "^12.0.1", + "react-helmet-async": "^1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.4", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.4", + "rtl-detect": "^1.0.4", + "semver": "^7.5.4", + "serve-handler": "^6.1.5", + "shelljs": "^0.8.5", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "update-notifier": "^6.0.2", + "url-loader": "^4.1.1", + "webpack": "^5.88.1", + "webpack-bundle-analyzer": "^4.9.0", + "webpack-dev-server": "^4.15.1", + "webpack-merge": "^5.9.0", + "webpackbar": "^5.0.2" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" }, "engines": { "node": ">=18.0" @@ -2597,25 +2672,267 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/react-loadable": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "node_modules/@docusaurus/plugin-sitemap/node_modules/@docusaurus/cssnano-preset": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.0.1.tgz", + "integrity": "sha512-wjuXzkHMW+ig4BD6Ya1Yevx9UJadO4smNZCEljqBoQfIQrQskTswBs7lZ8InHP7mCt273a/y/rm36EZhqJhknQ==", "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" + "cssnano-preset-advanced": "^5.3.10", + "postcss": "^8.4.26", + "postcss-sort-media-queries": "^4.4.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap/node_modules/@docusaurus/logger": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.0.1.tgz", + "integrity": "sha512-I5L6Nk8OJzkVA91O2uftmo71LBSxe1vmOn9AMR6JRCzYeEBrqneWMH02AqMvjJ2NpMiviO+t0CyPjyYV7nxCWQ==", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap/node_modules/@docusaurus/mdx-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.0.1.tgz", + "integrity": "sha512-ldnTmvnvlrONUq45oKESrpy+lXtbnTcTsFkOTIDswe5xx5iWJjt6eSa0f99ZaWlnm24mlojcIGoUWNCS53qVlQ==", + "dependencies": { + "@babel/parser": "^7.22.7", + "@babel/traverse": "^7.22.8", + "@docusaurus/logger": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@mdx-js/mdx": "^3.0.0", + "@slorber/remark-comment": "^1.0.0", + "escape-html": "^1.0.3", + "estree-util-value-to-estree": "^3.0.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "image-size": "^1.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-raw": "^7.0.0", + "remark-directive": "^3.0.0", + "remark-emoji": "^4.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "stringify-object": "^3.3.0", + "tslib": "^2.6.0", + "unified": "^11.0.3", + "unist-util-visit": "^5.0.0", + "url-loader": "^4.1.1", + "vfile": "^6.0.1", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" }, "peerDependencies": { - "react": "*" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/theme-classic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.0.0.tgz", - "integrity": "sha512-wWOHSrKMn7L4jTtXBsb5iEJ3xvTddBye5PjYBnWiCkTAlhle2yMdc4/qRXW35Ot+OV/VXu6YFG8XVUJEl99z0A==", + "node_modules/@docusaurus/plugin-sitemap/node_modules/@docusaurus/types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.0.1.tgz", + "integrity": "sha512-plyX2iU1tcUsF46uQ01pAd4JhexR7n0iiQ5MSnBFX6M6NSJgDYdru/i1/YNPKOnQHBoXGLHv0dNT6OAlDWNjrg==", "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/mdx-loader": "3.0.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.9.2", + "react-helmet-async": "^1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1", + "webpack-merge": "^5.9.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap/node_modules/@docusaurus/utils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.0.1.tgz", + "integrity": "sha512-TwZ33Am0q4IIbvjhUOs+zpjtD/mXNmLmEgeTGuRq01QzulLHuPhaBTTAC/DHu6kFx3wDgmgpAlaRuCHfTcXv8g==", + "dependencies": { + "@docusaurus/logger": "3.0.1", + "@svgr/webpack": "^6.5.1", + "escape-string-regexp": "^4.0.0", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "github-slugger": "^1.5.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "jiti": "^1.20.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "resolve-pathname": "^3.0.0", + "shelljs": "^0.8.5", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/plugin-sitemap/node_modules/@docusaurus/utils-common": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.0.1.tgz", + "integrity": "sha512-W0AxD6w6T8g6bNro8nBRWf7PeZ/nn7geEWM335qHU2DDDjHuV4UZjgUGP1AQsdcSikPrlIqTJJbKzer1lRSlIg==", + "dependencies": { + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/plugin-sitemap/node_modules/@docusaurus/utils-validation": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.0.1.tgz", + "integrity": "sha512-ujTnqSfyGQ7/4iZdB4RRuHKY/Nwm58IIb+41s5tCXOv/MBU2wGAjOHq3U+AEyJ8aKQcHbxvTKJaRchNHYUVUQg==", + "dependencies": { + "@docusaurus/logger": "3.0.1", + "@docusaurus/utils": "3.0.1", + "joi": "^17.9.2", + "js-yaml": "^4.1.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.0.0.tgz", + "integrity": "sha512-90aOKZGZdi0+GVQV+wt8xx4M4GiDrBRke8NO8nWwytMEXNrxrBxsQYFRD1YlISLJSCiHikKf3Z/MovMnQpnZyg==", + "dependencies": { + "@docusaurus/core": "3.0.0", + "@docusaurus/plugin-content-blog": "3.0.0", + "@docusaurus/plugin-content-docs": "3.0.0", + "@docusaurus/plugin-content-pages": "3.0.0", + "@docusaurus/plugin-debug": "3.0.0", + "@docusaurus/plugin-google-analytics": "3.0.0", + "@docusaurus/plugin-google-gtag": "3.0.0", + "@docusaurus/plugin-google-tag-manager": "3.0.0", + "@docusaurus/plugin-sitemap": "3.0.0", + "@docusaurus/theme-classic": "3.0.0", + "@docusaurus/theme-common": "3.0.0", + "@docusaurus/theme-search-algolia": "3.0.0", + "@docusaurus/types": "3.0.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-sitemap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.0.0.tgz", + "integrity": "sha512-cfcONdWku56Oi7Hdus2uvUw/RKRRlIGMViiHLjvQ21CEsEqnQ297MRoIgjU28kL7/CXD/+OiANSq3T1ezAiMhA==", + "dependencies": { + "@docusaurus/core": "3.0.0", + "@docusaurus/logger": "3.0.0", + "@docusaurus/types": "3.0.0", + "@docusaurus/utils": "3.0.0", + "@docusaurus/utils-common": "3.0.0", + "@docusaurus/utils-validation": "3.0.0", + "fs-extra": "^11.1.1", + "sitemap": "^7.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/theme-search-algolia": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.0.0.tgz", + "integrity": "sha512-PyMUNIS9yu0dx7XffB13ti4TG47pJq3G2KE/INvOFb6M0kWh+wwCnucPg4WAOysHOPh+SD9fjlXILoLQstgEIA==", + "dependencies": { + "@docsearch/react": "^3.5.2", + "@docusaurus/core": "3.0.0", + "@docusaurus/logger": "3.0.0", + "@docusaurus/plugin-content-docs": "3.0.0", + "@docusaurus/theme-common": "3.0.0", + "@docusaurus/theme-translations": "3.0.0", + "@docusaurus/utils": "3.0.0", + "@docusaurus/utils-validation": "3.0.0", + "algoliasearch": "^4.18.0", + "algoliasearch-helper": "^3.13.3", + "clsx": "^1.2.1", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/preset-classic/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@docusaurus/react-loadable": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "dependencies": { + "@types/react": "*", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.0.0.tgz", + "integrity": "sha512-wWOHSrKMn7L4jTtXBsb5iEJ3xvTddBye5PjYBnWiCkTAlhle2yMdc4/qRXW35Ot+OV/VXu6YFG8XVUJEl99z0A==", + "dependencies": { + "@docusaurus/core": "3.0.0", + "@docusaurus/mdx-loader": "3.0.0", "@docusaurus/module-type-aliases": "3.0.0", "@docusaurus/plugin-content-blog": "3.0.0", "@docusaurus/plugin-content-docs": "3.0.0", @@ -2631,14 +2948,320 @@ "copy-text-to-clipboard": "^3.2.0", "infima": "0.2.0-alpha.43", "lodash": "^4.17.21", - "nprogress": "^0.2.0", - "postcss": "^8.4.26", - "prism-react-renderer": "^2.1.0", - "prismjs": "^1.29.0", - "react-router-dom": "^5.3.4", - "rtlcss": "^4.1.0", + "nprogress": "^0.2.0", + "postcss": "^8.4.26", + "prism-react-renderer": "^2.1.0", + "prismjs": "^1.29.0", + "react-router-dom": "^5.3.4", + "rtlcss": "^4.1.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-classic/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@docusaurus/theme-common": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.0.0.tgz", + "integrity": "sha512-PahRpCLRK5owCMEqcNtUeTMOkTUCzrJlKA+HLu7f+8osYOni617YurXvHASCsSTxurjXaLz/RqZMnASnqATxIA==", + "dependencies": { + "@docusaurus/mdx-loader": "3.0.0", + "@docusaurus/module-type-aliases": "3.0.0", + "@docusaurus/plugin-content-blog": "3.0.0", + "@docusaurus/plugin-content-docs": "3.0.0", + "@docusaurus/plugin-content-pages": "3.0.0", + "@docusaurus/utils": "3.0.0", + "@docusaurus/utils-common": "3.0.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^1.2.1", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^2.1.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-common/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.0.1.tgz", + "integrity": "sha512-DDiPc0/xmKSEdwFkXNf1/vH1SzJPzuJBar8kMcBbDAZk/SAmo/4lf6GU2drou4Ae60lN2waix+jYWTWcJRahSA==", + "dependencies": { + "@docsearch/react": "^3.5.2", + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/plugin-content-docs": "3.0.1", + "@docusaurus/theme-common": "3.0.1", + "@docusaurus/theme-translations": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "algoliasearch": "^4.18.0", + "algoliasearch-helper": "^3.13.3", + "clsx": "^2.0.0", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/core": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.0.1.tgz", + "integrity": "sha512-CXrLpOnW+dJdSv8M5FAJ3JBwXtL6mhUWxFA8aS0ozK6jBG/wgxERk5uvH28fCeFxOGbAT9v1e9dOMo1X2IEVhQ==", + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/generator": "^7.23.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "@babel/preset-react": "^7.22.5", + "@babel/preset-typescript": "^7.22.5", + "@babel/runtime": "^7.22.6", + "@babel/runtime-corejs3": "^7.22.6", + "@babel/traverse": "^7.22.8", + "@docusaurus/cssnano-preset": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-common": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@slorber/static-site-generator-webpack-plugin": "^4.0.7", + "@svgr/webpack": "^6.5.1", + "autoprefixer": "^10.4.14", + "babel-loader": "^9.1.3", + "babel-plugin-dynamic-import-node": "^2.3.3", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "clean-css": "^5.3.2", + "cli-table3": "^0.6.3", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "copy-webpack-plugin": "^11.0.0", + "core-js": "^3.31.1", + "css-loader": "^6.8.1", + "css-minimizer-webpack-plugin": "^4.2.2", + "cssnano": "^5.1.15", + "del": "^6.1.1", + "detect-port": "^1.5.1", + "escape-html": "^1.0.3", + "eta": "^2.2.0", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "html-minifier-terser": "^7.2.0", + "html-tags": "^3.3.1", + "html-webpack-plugin": "^5.5.3", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "mini-css-extract-plugin": "^2.7.6", + "postcss": "^8.4.26", + "postcss-loader": "^7.3.3", + "prompts": "^2.4.2", + "react-dev-utils": "^12.0.1", + "react-helmet-async": "^1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.4", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.4", + "rtl-detect": "^1.0.4", + "semver": "^7.5.4", + "serve-handler": "^6.1.5", + "shelljs": "^0.8.5", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "update-notifier": "^6.0.2", + "url-loader": "^4.1.1", + "webpack": "^5.88.1", + "webpack-bundle-analyzer": "^4.9.0", + "webpack-dev-server": "^4.15.1", + "webpack-merge": "^5.9.0", + "webpackbar": "^5.0.2" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/cssnano-preset": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.0.1.tgz", + "integrity": "sha512-wjuXzkHMW+ig4BD6Ya1Yevx9UJadO4smNZCEljqBoQfIQrQskTswBs7lZ8InHP7mCt273a/y/rm36EZhqJhknQ==", + "dependencies": { + "cssnano-preset-advanced": "^5.3.10", + "postcss": "^8.4.26", + "postcss-sort-media-queries": "^4.4.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/logger": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.0.1.tgz", + "integrity": "sha512-I5L6Nk8OJzkVA91O2uftmo71LBSxe1vmOn9AMR6JRCzYeEBrqneWMH02AqMvjJ2NpMiviO+t0CyPjyYV7nxCWQ==", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/mdx-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.0.1.tgz", + "integrity": "sha512-ldnTmvnvlrONUq45oKESrpy+lXtbnTcTsFkOTIDswe5xx5iWJjt6eSa0f99ZaWlnm24mlojcIGoUWNCS53qVlQ==", + "dependencies": { + "@babel/parser": "^7.22.7", + "@babel/traverse": "^7.22.8", + "@docusaurus/logger": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@mdx-js/mdx": "^3.0.0", + "@slorber/remark-comment": "^1.0.0", + "escape-html": "^1.0.3", + "estree-util-value-to-estree": "^3.0.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "image-size": "^1.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-raw": "^7.0.0", + "remark-directive": "^3.0.0", + "remark-emoji": "^4.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "stringify-object": "^3.3.0", + "tslib": "^2.6.0", + "unified": "^11.0.3", + "unist-util-visit": "^5.0.0", + "url-loader": "^4.1.1", + "vfile": "^6.0.1", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/module-type-aliases": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", + "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", + "dependencies": { + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/types": "3.0.1", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/plugin-content-blog": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.0.1.tgz", + "integrity": "sha512-cLOvtvAyaMQFLI8vm4j26svg3ktxMPSXpuUJ7EERKoGbfpJSsgtowNHcRsaBVmfuCsRSk1HZ/yHBsUkTmHFEsg==", + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-common": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "cheerio": "^1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "reading-time": "^1.5.0", + "srcset": "^4.0.0", + "tslib": "^2.6.0", + "unist-util-visit": "^5.0.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/plugin-content-docs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz", + "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==", + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/module-type-aliases": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", "tslib": "^2.6.0", - "utility-types": "^3.10.0" + "utility-types": "^3.10.0", + "webpack": "^5.88.1" }, "engines": { "node": ">=18.0" @@ -2648,32 +3271,46 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/theme-classic/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/plugin-content-pages": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.0.1.tgz", + "integrity": "sha512-oP7PoYizKAXyEttcvVzfX3OoBIXEmXTMzCdfmC4oSwjG4SPcJsRge3mmI6O8jcZBgUPjIzXD21bVGWEE1iu8gg==", + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, "engines": { - "node": ">=6" + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/theme-common": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.0.0.tgz", - "integrity": "sha512-PahRpCLRK5owCMEqcNtUeTMOkTUCzrJlKA+HLu7f+8osYOni617YurXvHASCsSTxurjXaLz/RqZMnASnqATxIA==", - "dependencies": { - "@docusaurus/mdx-loader": "3.0.0", - "@docusaurus/module-type-aliases": "3.0.0", - "@docusaurus/plugin-content-blog": "3.0.0", - "@docusaurus/plugin-content-docs": "3.0.0", - "@docusaurus/plugin-content-pages": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-common": "3.0.0", + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/theme-common": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.0.1.tgz", + "integrity": "sha512-cr9TOWXuIOL0PUfuXv6L5lPlTgaphKP+22NdVBOYah5jSq5XAAulJTjfe+IfLsEG4L7lJttLbhW7LXDFSAI7Ag==", + "dependencies": { + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/module-type-aliases": "3.0.1", + "@docusaurus/plugin-content-blog": "3.0.1", + "@docusaurus/plugin-content-docs": "3.0.1", + "@docusaurus/plugin-content-pages": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-common": "3.0.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", - "clsx": "^1.2.1", + "clsx": "^2.0.0", "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^2.1.0", + "prism-react-renderer": "^2.3.0", "tslib": "^2.6.0", "utility-types": "^3.10.0" }, @@ -2685,50 +3322,104 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/theme-common/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/theme-translations": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.0.1.tgz", + "integrity": "sha512-6UrbpzCTN6NIJnAtZ6Ne9492vmPVX+7Fsz4kmp+yor3KQwA1+MCzQP7ItDNkP38UmVLnvB/cYk/IvehCUqS3dg==", + "dependencies": { + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, "engines": { - "node": ">=6" + "node": ">=18.0" } }, - "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.0.0.tgz", - "integrity": "sha512-PyMUNIS9yu0dx7XffB13ti4TG47pJq3G2KE/INvOFb6M0kWh+wwCnucPg4WAOysHOPh+SD9fjlXILoLQstgEIA==", + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.0.1.tgz", + "integrity": "sha512-plyX2iU1tcUsF46uQ01pAd4JhexR7n0iiQ5MSnBFX6M6NSJgDYdru/i1/YNPKOnQHBoXGLHv0dNT6OAlDWNjrg==", "dependencies": { - "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.0.0", - "@docusaurus/logger": "3.0.0", - "@docusaurus/plugin-content-docs": "3.0.0", - "@docusaurus/theme-common": "3.0.0", - "@docusaurus/theme-translations": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-validation": "3.0.0", - "algoliasearch": "^4.18.0", - "algoliasearch-helper": "^3.13.3", - "clsx": "^1.2.1", - "eta": "^2.2.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.9.2", + "react-helmet-async": "^1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1", + "webpack-merge": "^5.9.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/utils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.0.1.tgz", + "integrity": "sha512-TwZ33Am0q4IIbvjhUOs+zpjtD/mXNmLmEgeTGuRq01QzulLHuPhaBTTAC/DHu6kFx3wDgmgpAlaRuCHfTcXv8g==", + "dependencies": { + "@docusaurus/logger": "3.0.1", + "@svgr/webpack": "^6.5.1", + "escape-string-regexp": "^4.0.0", + "file-loader": "^6.2.0", "fs-extra": "^11.1.1", + "github-slugger": "^1.5.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "jiti": "^1.20.0", + "js-yaml": "^4.1.0", "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "resolve-pathname": "^3.0.0", + "shelljs": "^0.8.5", "tslib": "^2.6.0", - "utility-types": "^3.10.0" + "url-loader": "^4.1.1", + "webpack": "^5.88.1" }, "engines": { "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } } }, - "node_modules/@docusaurus/theme-search-algolia/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/utils-common": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.0.1.tgz", + "integrity": "sha512-W0AxD6w6T8g6bNro8nBRWf7PeZ/nn7geEWM335qHU2DDDjHuV4UZjgUGP1AQsdcSikPrlIqTJJbKzer1lRSlIg==", + "dependencies": { + "tslib": "^2.6.0" + }, "engines": { - "node": ">=6" + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/utils-validation": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.0.1.tgz", + "integrity": "sha512-ujTnqSfyGQ7/4iZdB4RRuHKY/Nwm58IIb+41s5tCXOv/MBU2wGAjOHq3U+AEyJ8aKQcHbxvTKJaRchNHYUVUQg==", + "dependencies": { + "@docusaurus/logger": "3.0.1", + "@docusaurus/utils": "3.0.1", + "joi": "^17.9.2", + "js-yaml": "^4.1.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" } }, "node_modules/@docusaurus/theme-translations": { @@ -3075,9 +3766,9 @@ } }, "node_modules/@polka/url": { - "version": "1.0.0-next.23", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", - "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==" + "version": "1.0.0-next.24", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", + "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==" }, "node_modules/@sideway/address": { "version": "4.1.4", @@ -3103,9 +3794,9 @@ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" }, "node_modules/@sindresorhus/is": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz", - "integrity": "sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "engines": { "node": ">=10" }, @@ -3407,82 +4098,82 @@ } }, "node_modules/@types/body-parser": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.4.tgz", - "integrity": "sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "node_modules/@types/bonjour": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.12.tgz", - "integrity": "sha512-ky0kWSqXVxSqgqJvPIkgFkcn4C8MnRog308Ou8xBBIVo39OmUFy+jqNe0nPwLCDFxUpmT9EvT91YzOJgkDRcFg==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.37.tgz", - "integrity": "sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.2.tgz", - "integrity": "sha512-gX2j9x+NzSh4zOhnRPSdPPmTepS4DfxES0AvIFv3jGv5QyeAJf6u6dY5/BAoAJU9Qq1uTvwOku8SSC2GnCRl6Q==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" } }, "node_modules/@types/debug": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.10.tgz", - "integrity": "sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/eslint": { - "version": "8.44.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.6.tgz", - "integrity": "sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==", + "version": "8.44.9", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.9.tgz", + "integrity": "sha512-6yBxcvwnnYoYT1Uk2d+jvIfsuP4mb2EdIxFnrPABj5a/838qe5bGkNLFOiipX4ULQ7XVQvTxOh7jO+BTAiqsEw==", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "node_modules/@types/eslint-scope": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.6.tgz", - "integrity": "sha512-zfM4ipmxVKWdxtDaJ3MP3pBurDXOCoyjvlpE3u6Qzrmw4BPbfm4/ambIeTk/r/J0iq/+2/xp0Fmt+gFvXJY2PQ==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "node_modules/@types/estree": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", - "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/estree-jsx": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.2.tgz", - "integrity": "sha512-GNBWlGBMjiiiL5TSkvPtOteuXsiVitw5MYGY1UYlrAq0SKyczsls6sCD7TZ8fsjRsvCVxml7EbyjJezPb3DrSA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.3.tgz", + "integrity": "sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==", "dependencies": { "@types/estree": "*" } }, "node_modules/@types/express": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.20.tgz", - "integrity": "sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -3491,9 +4182,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.39", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.39.tgz", - "integrity": "sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==", + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -3507,9 +4198,9 @@ "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==" }, "node_modules/@types/hast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.2.tgz", - "integrity": "sha512-B5hZHgHsXvfCoO3xgNJvBnX7N8p86TqQeGKXcokW4XXi+qY4vxxPSFYofytvVmpFxzPv7oxDQzjg5Un5m2/xiw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", + "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", "dependencies": { "@types/unist": "*" } @@ -3525,117 +4216,117 @@ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" }, "node_modules/@types/http-cache-semantics": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", - "integrity": "sha512-V46MYLFp08Wf2mmaBhvgjStM3tPa+2GAdy/iqoX+noX1//zje2x4XmrIU0cAwyClATsTmahbtoQ2EwP7I5WSiA==" + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" }, "node_modules/@types/http-errors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.3.tgz", - "integrity": "sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" }, "node_modules/@types/http-proxy": { - "version": "1.17.13", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.13.tgz", - "integrity": "sha512-GkhdWcMNiR5QSQRYnJ+/oXzu0+7JJEPC8vkWXK351BkhjraZF+1W13CUYARUvX9+NqIU2n6YHA4iwywsc/M6Sw==", + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz", - "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz", - "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==" + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "node_modules/@types/mdast": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.2.tgz", - "integrity": "sha512-tYR83EignvhYO9iU3kDg8V28M0jqyh9zzp5GV+EO+AYnyUl3P5ltkTeJuTiFZQFz670FSb3EwT/6LQdX+UdKfw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", + "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", "dependencies": { "@types/unist": "*" } }, "node_modules/@types/mdx": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.9.tgz", - "integrity": "sha512-OKMdj17y8Cs+k1r0XFyp59ChSOwf8ODGtMQ4mnpfz5eFDk1aO41yN3pSKGuvVzmWAkFp37seubY1tzOVpwfWwg==" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.10.tgz", + "integrity": "sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==" }, "node_modules/@types/mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.4.tgz", - "integrity": "sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" }, "node_modules/@types/ms": { - "version": "0.7.33", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.33.tgz", - "integrity": "sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==" + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.8.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", - "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", + "version": "20.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", + "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/node-forge": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.8.tgz", - "integrity": "sha512-vGXshY9vim9CJjrpcS5raqSjEfKlJcWy2HNdgUasR66fAnVEYarrf1ULV4nfvpC1nZq/moA9qyqBcu83x+Jlrg==", + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", + "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/parse-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.1.tgz", - "integrity": "sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/prismjs": { - "version": "1.26.2", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.2.tgz", - "integrity": "sha512-/r7Cp7iUIk7gts26mHXD66geUC+2Fo26TZYjQK6Nr4LDfi6lmdRmMqM0oPwfiMhUwoBAOFe8GstKi2pf6hZvwA==" + "version": "1.26.3", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.3.tgz", + "integrity": "sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==" }, "node_modules/@types/prop-types": { - "version": "15.7.9", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", - "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==" + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "node_modules/@types/qs": { - "version": "6.9.9", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz", - "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==" + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==" }, "node_modules/@types/range-parser": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.6.tgz", - "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, "node_modules/@types/react": { - "version": "18.2.34", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.34.tgz", - "integrity": "sha512-U6eW/alrRk37FU/MS2RYMjx0Va2JGIVXELTODaTIYgvWGCV4Y4TfTUzG8DdmpDNIT0Xpj/R7GfyHOJJrDttcvg==", + "version": "18.2.45", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.45.tgz", + "integrity": "sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3652,9 +4343,9 @@ } }, "node_modules/@types/react-router-config": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.9.tgz", - "integrity": "sha512-a7zOj9yVUtM3Ns5stoseQAAsmppNxZpXDv6tZiFV5qlRmV4W96u53on1vApBX1eRSc8mrFOiB54Hc0Pk1J8GFg==", + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", + "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", @@ -3677,39 +4368,39 @@ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, "node_modules/@types/sax": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.6.tgz", - "integrity": "sha512-A1mpYCYu1aHFayy8XKN57ebXeAbh9oQIZ1wXcno6b1ESUAfMBDMx7mf/QGlYwcMRaFryh9YBuH03i/3FlPGDkQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/scheduler": { - "version": "0.16.5", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz", - "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==" + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, "node_modules/@types/send": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.3.tgz", - "integrity": "sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "node_modules/@types/serve-index": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.3.tgz", - "integrity": "sha512-4KG+yMEuvDPRrYq5fyVm/I2uqAJSAwZK9VSa+Zf+zUq9/oxSSvy3kkIqyL+jjStv6UCVi8/Aho0NHtB1Fwosrg==", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.4.tgz", - "integrity": "sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "dependencies": { "@types/http-errors": "*", "@types/mime": "*", @@ -3717,38 +4408,38 @@ } }, "node_modules/@types/sockjs": { - "version": "0.3.35", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.35.tgz", - "integrity": "sha512-tIF57KB+ZvOBpAQwSaACfEu7htponHXaFzP7RfKYgsOS0NoYnn+9+jzp7bbq4fWerizI3dTB4NfAZoyeQKWJLw==", + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/unist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.1.tgz", - "integrity": "sha512-ue/hDUpPjC85m+PM9OQDMZr3LywT+CT6mPsQq8OJtCLiERkGRcQUFvu9XASF5XWqyZFXbf15lvb3JFJ4dRLWPg==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" }, "node_modules/@types/ws": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.8.tgz", - "integrity": "sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==", + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/yargs": { - "version": "17.0.29", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", - "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.2", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz", - "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==" + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", @@ -4067,9 +4758,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", "engines": { "node": ">=0.4.0" } @@ -4146,30 +4837,30 @@ } }, "node_modules/algoliasearch": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.20.0.tgz", - "integrity": "sha512-y+UHEjnOItoNy0bYO+WWmLWBlPwDjKHW6mNHrPi0NkuhpQOOEbrkwQH/wgKFDLh7qlKjzoKeiRtlpewDPDG23g==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.20.0", - "@algolia/cache-common": "4.20.0", - "@algolia/cache-in-memory": "4.20.0", - "@algolia/client-account": "4.20.0", - "@algolia/client-analytics": "4.20.0", - "@algolia/client-common": "4.20.0", - "@algolia/client-personalization": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/logger-common": "4.20.0", - "@algolia/logger-console": "4.20.0", - "@algolia/requester-browser-xhr": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/requester-node-http": "4.20.0", - "@algolia/transporter": "4.20.0" + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.21.1.tgz", + "integrity": "sha512-Ym0MGwOcjQhZ+s1N/j0o94g3vQD0MzNpWsfJLyPVCt0zHflbi0DwYX+9GPmTJ4BzegoxWMyCPgcmpd3R+VlOzQ==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.21.1", + "@algolia/cache-common": "4.21.1", + "@algolia/cache-in-memory": "4.21.1", + "@algolia/client-account": "4.21.1", + "@algolia/client-analytics": "4.21.1", + "@algolia/client-common": "4.21.1", + "@algolia/client-personalization": "4.21.1", + "@algolia/client-search": "4.21.1", + "@algolia/logger-common": "4.21.1", + "@algolia/logger-console": "4.21.1", + "@algolia/requester-browser-xhr": "4.21.1", + "@algolia/requester-common": "4.21.1", + "@algolia/requester-node-http": "4.21.1", + "@algolia/transporter": "4.21.1" } }, "node_modules/algoliasearch-helper": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.15.0.tgz", - "integrity": "sha512-DGUnK3TGtDQsaUE4ayF/LjSN0DGsuYThB8WBgnnDY0Wq04K6lNVruO3LfqJOgSfDiezp+Iyt8Tj4YKHi+/ivSA==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.16.0.tgz", + "integrity": "sha512-RxOtBafSQwyqD5BLO/q9VsVw/zuNz8kjb51OZhCIWLr33uvKB+vrRis+QK+JFlNQXbXf+w28fsTWiBupc1pHew==", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -4459,12 +5150,13 @@ } }, "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/babel-loader": { @@ -4508,12 +5200,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", + "@babel/helper-define-polyfill-provider": "^0.4.4", "semver": "^6.3.1" }, "peerDependencies": { @@ -4529,11 +5221,11 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", + "@babel/helper-define-polyfill-provider": "^0.4.4", "core-js-compat": "^3.33.1" }, "peerDependencies": { @@ -4541,11 +5233,11 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" + "@babel/helper-define-polyfill-provider": "^0.4.4" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -4847,9 +5539,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "funding": [ { "type": "opencollective", @@ -4865,9 +5557,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, "bin": { @@ -5063,9 +5755,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001559", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001559.tgz", - "integrity": "sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==", + "version": "1.0.30001570", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", + "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", "funding": [ { "type": "opencollective", @@ -5290,9 +5982,9 @@ } }, "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", "dependencies": { "source-map": "~0.6.0" }, @@ -5487,10 +6179,13 @@ "peer": true }, "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "peer": true + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/compressible": { "version": "2.0.18", @@ -5798,9 +6493,9 @@ } }, "node_modules/core-js": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.2.tgz", - "integrity": "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.34.0.tgz", + "integrity": "sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -5808,11 +6503,11 @@ } }, "node_modules/core-js-compat": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", - "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", "dependencies": { - "browserslist": "^4.22.1" + "browserslist": "^4.22.2" }, "funding": { "type": "opencollective", @@ -5820,9 +6515,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.33.2.tgz", - "integrity": "sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.34.0.tgz", + "integrity": "sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -6208,9 +6903,9 @@ } }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/cyclist": { "version": "1.0.2", @@ -6218,6 +6913,11 @@ "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", "peer": true }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -7427,9 +8127,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.574", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.574.tgz", - "integrity": "sha512-bg1m8L0n02xRzx4LsTTMbBPiUd9yIR+74iPtS/Ao65CuXvhVZHP0ym1kSdDG3yHFDXqHQQBKujlN1AQ8qZnyFg==" + "version": "1.4.611", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.611.tgz", + "integrity": "sha512-ZtRpDxrjHapOwxtv+nuth5ByB8clyn8crVynmRNGO3wG3LOp8RTcyZDqwaI6Ng6y8FCK2hVZmJoqwCskKbNMaw==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -7540,9 +8240,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" }, "node_modules/escalade": { "version": "3.1.1", @@ -7994,9 +8694,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -8094,6 +8794,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "deprecated": "This module is no longer supported.", "peer": true }, "node_modules/file-loader": { @@ -8564,9 +9265,9 @@ } }, "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -9193,17 +9894,23 @@ } }, "node_modules/hast-util-to-jsx-runtime": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.2.0.tgz", - "integrity": "sha512-wSlp23N45CMjDg/BPW8zvhEi3R+8eRE1qFbjEyAUzMCzu2l1Wzwakq+Tlia9nkCtEl5mDxa7nKHsvYJ6Gfn21A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", + "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", "dependencies": { + "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.0", + "style-to-object": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" }, @@ -9212,6 +9919,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-jsx-runtime/node_modules/inline-style-parser": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.2.tgz", + "integrity": "sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==" + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.5.tgz", + "integrity": "sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==", + "dependencies": { + "inline-style-parser": "0.2.2" + } + }, "node_modules/hast-util-to-parse5": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", @@ -9361,6 +10081,11 @@ } ] }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, "node_modules/html-minifier-terser": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", @@ -9410,9 +10135,9 @@ } }, "node_modules/html-webpack-plugin": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", - "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.4.tgz", + "integrity": "sha512-3wNSaVVxdxcu0jd4FpQFoICdqgxs4zIQQvj+2yQKFfBOnLETQ6X5CDWdeasuGlSsooFlMkEioWDTqBv1wvw5Iw==", "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", @@ -9555,9 +10280,9 @@ } }, "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -9629,9 +10354,9 @@ "peer": true }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "engines": { "node": ">= 4" } @@ -10351,46 +11076,21 @@ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, - "node_modules/lodash.escape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, "node_modules/lodash.flow": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==" }, - "node_modules/lodash.invokemap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz", - "integrity": "sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w==" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" }, - "node_modules/lodash.pullall": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.pullall/-/lodash.pullall-4.2.0.tgz", - "integrity": "sha512-VhqxBKH0ZxPpLhiu68YD1KnHmbhQJQctcipvmFnqIBDYzcIHzf3Zpu0tpeOKtR4x76p9yohc506eGdOjTmyIBg==" - }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, - "node_modules/lodash.uniqby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==" - }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -12931,9 +13631,9 @@ "peer": true }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", @@ -13029,14 +13729,17 @@ } }, "node_modules/node-emoji": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.0.tgz", - "integrity": "sha512-tcsBm9C6FmPN5Wo7OjFi9lgMyJjvkAeirmjR/ax8Ttfqy4N8PoFic26uqFTIgayHPNI5FH4ltUvfh9kHzwcK9A==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", + "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", "dependencies": { - "@sindresorhus/is": "^3.1.2", + "@sindresorhus/is": "^4.6.0", "char-regex": "^1.0.2", "emojilib": "^2.4.0", "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" } }, "node_modules/node-fetch": { @@ -13134,9 +13837,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -13280,12 +13983,12 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -13577,9 +14280,9 @@ } }, "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.9.tgz", - "integrity": "sha512-zC0iXxAv1C1ERURduJueYzkzZ2zaGyc+P2c95hgkikHPr3z8EdUZOlgEQ5X0DRmwDZn+hekycQnoeiiRVrmilQ==" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" }, "node_modules/parse-json": { "version": "5.2.0", @@ -13857,9 +14560,9 @@ } }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "funding": [ { "type": "opencollective", @@ -13875,7 +14578,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -14448,9 +15151,9 @@ } }, "node_modules/preact": { - "version": "10.18.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.18.1.tgz", - "integrity": "sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==", + "version": "10.19.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.3.tgz", + "integrity": "sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -14474,25 +15177,17 @@ } }, "node_modules/prism-react-renderer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.1.0.tgz", - "integrity": "sha512-I5cvXHjA1PVGbGm1MsWCpvBCRrYyxEri0MC7/JbfIfYfcXAxHyO5PaUjs3A8H5GW6kJcLhTHxxMaOZZpRZD2iQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.3.0.tgz", + "integrity": "sha512-UYRg2TkVIaI6tRVHC5OJ4/BxqPUxJkJvq/odLT/ykpt1zGYXooNperUxQcCvi87LyRnR4nCh81ceOA+e7nrydg==", "dependencies": { "@types/prismjs": "^1.26.0", - "clsx": "^1.2.1" + "clsx": "^2.0.0" }, "peerDependencies": { "react": ">=16.0.0" } }, - "node_modules/prism-react-renderer/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "engines": { - "node": ">=6" - } - }, "node_modules/prismjs": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", @@ -14585,6 +15280,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -15779,9 +16479,9 @@ } }, "node_modules/search-insights": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.9.0.tgz", - "integrity": "sha512-bkWW9nIHOFkLwjQ1xqVaMbjjO5vhP26ERsH9Y3pKr8imthofEFIxlnOabkmGcw6ksRj9jWidcI65vvjJH/nTGg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.13.0.tgz", + "integrity": "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==", "peer": true }, "node_modules/section-matter": { @@ -16142,9 +16842,9 @@ } }, "node_modules/shiki": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.5.tgz", - "integrity": "sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==", + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.6.tgz", + "integrity": "sha512-R4koBBlQP33cC8cpzX0hAoOURBHJILp4Aaduh2eYi+Vj8ZBqtK/5SWNEHBS3qwUMu8dqOtI/ftno3ESfNeVW9g==", "dev": true, "dependencies": { "ansi-sequence-parser": "^1.1.0", @@ -16591,9 +17291,9 @@ } }, "node_modules/std-env": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz", - "integrity": "sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.6.0.tgz", + "integrity": "sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==" }, "node_modules/stream-browserify": { "version": "2.0.2", @@ -16969,9 +17669,9 @@ } }, "node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", + "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -17381,9 +18081,9 @@ } }, "node_modules/typedoc": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.3.tgz", - "integrity": "sha512-Ow8Bo7uY1Lwy7GTmphRIMEo6IOZ+yYUyrc8n5KXIZg1svpqhZSWgni2ZrDhe+wLosFS8yswowUzljTAV/3jmWw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.4.tgz", + "integrity": "sha512-Du9ImmpBCw54bX275yJrxPVnjdIyJO/84co0/L9mwe0R3G4FSR6rQ09AlXVRvZEGMUg09+z/usc8mgygQ1aidA==", "dev": true, "dependencies": { "lunr": "^2.3.9", @@ -17398,13 +18098,13 @@ "node": ">= 16" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x" } }, "node_modules/typedoc-plugin-markdown": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.17.0.tgz", - "integrity": "sha512-+uh5fHNfNSGdUxae0FWOuJ8Xu9Sl08jkdshOg6dilAqN/ZXmYsUFFDKw70fYfiGxdCLvpUuyr9FYO+WAa2lHeA==", + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.17.1.tgz", + "integrity": "sha512-QzdU3fj0Kzw2XSdoL15ExLASt2WPqD7FbLeaqwT70+XjKyTshBnUlQA5nNREO1C2P8Uen0CDjsBLMsCQ+zd0lw==", "dev": true, "dependencies": { "handlebars": "^4.7.7" @@ -17438,9 +18138,9 @@ } }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "peer": true, "bin": { "tsc": "bin/tsc", @@ -18172,15 +18872,15 @@ "dev": true }, "node_modules/wait-on": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.0.1.tgz", - "integrity": "sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", + "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", "dependencies": { - "axios": "^0.27.2", - "joi": "^17.7.0", + "axios": "^1.6.1", + "joi": "^17.11.0", "lodash": "^4.17.21", - "minimist": "^1.2.7", - "rxjs": "^7.8.0" + "minimist": "^1.2.8", + "rxjs": "^7.8.1" }, "bin": { "wait-on": "bin/wait-on" @@ -18592,23 +19292,19 @@ } }, "node_modules/webpack-bundle-analyzer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.1.tgz", - "integrity": "sha512-jnd6EoYrf9yMxCyYDPj8eutJvtjQNp8PHmni/e/ulydHBWhT5J3menXt3HEkScsu9YqMAcG4CfFjs3rj5pVU1w==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", + "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", "acorn-walk": "^8.0.0", "commander": "^7.2.0", + "debounce": "^1.2.1", "escape-string-regexp": "^4.0.0", "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", "is-plain-object": "^5.0.0", - "lodash.debounce": "^4.0.8", - "lodash.escape": "^4.0.1", - "lodash.flatten": "^4.4.0", - "lodash.invokemap": "^4.6.0", - "lodash.pullall": "^4.2.0", - "lodash.uniqby": "^4.7.0", "opener": "^1.5.2", "picocolors": "^1.0.0", "sirv": "^2.0.3", @@ -18737,9 +19433,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "version": "8.15.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz", + "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==", "engines": { "node": ">=10.0.0" }, From 3ba74f0ec61ad6e58be6ea24b6170805a3e42e04 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:47:42 -0500 Subject: [PATCH 07/34] feat: added void auth call to auth docs --- docs/api/authorization.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/api/authorization.md b/docs/api/authorization.md index 65795da..535370e 100644 --- a/docs/api/authorization.md +++ b/docs/api/authorization.md @@ -294,3 +294,27 @@ Can be set to true to send a receipt to the payor. **Returns** The transaction object. Refer to the [Transaction Object](transaction.md) for more info. + +## Void Authorization + +This will void an authorization that has not been captured. If the authorization has been captured, this call will fail. + +*Partial voids are not supported by all processors and cannot be processed on an Amex authorization. Please contact Pay Theory for more information.* + +```graphql +mutation { + createVoidForAuthorization(authorization_id: String!, void_amount: Int!) +} +``` + +**Arguments** + +**`authorization_id`: String!** +The Pay Theory unique identifier assigned to the authorization that you are looking to void. + +**`void_amount`: Int!** +The amount of the void in cents. +*Partial voids are not supported by all processors and cannot be processed on an Amex authorization. Please contact Pay Theory for more information.* + +**Returns** +This call returns a boolean indicating if the void was successful. From 04085096065a284b30d0fb1e00c14e9a05920e83 Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:06:46 -0500 Subject: [PATCH 08/34] Spell check and copy updates --- .../{query.mdx => custom_query.mdx} | 17 +++++++---------- .../after_payments/query_settlement_data.mdx | 8 +++----- docs/main/after_payments/sending_receipts.mdx | 5 +---- .../create_a_subscription.mdx | 2 +- docs/main/recurring_payments/overview.mdx | 4 ++-- 5 files changed, 14 insertions(+), 22 deletions(-) rename docs/main/after_payments/{query.mdx => custom_query.mdx} (89%) diff --git a/docs/main/after_payments/query.mdx b/docs/main/after_payments/custom_query.mdx similarity index 89% rename from docs/main/after_payments/query.mdx rename to docs/main/after_payments/custom_query.mdx index 0a18f91..3517382 100644 --- a/docs/main/after_payments/query.mdx +++ b/docs/main/after_payments/custom_query.mdx @@ -18,7 +18,7 @@ import Admonition from '@theme/Admonition'; ]}> -# Query +# Custom Query We will go over how to create custom queries that you may submit to the Pay Theory API in this section. Let's examine a fundamental query object first, and then we will dissect it. @@ -40,10 +40,10 @@ Let's examine a fundamental query object first, and then we will dissect it. ``` ## Query Pair -A list of query pairs used to build out a query. +A list of query pairs can be used to build out a query. #### Required Arguments -The following parameter must be used in order to use a query pair while writing a graphql query. +The following parameter must be used in order to use a query pair while writing a GraphQL query. |Key |type | description | |-------------------|-------------|---------------------------------------| @@ -102,10 +102,10 @@ A sort pair is the object used to tell a query how the data should be sorted. |key | string | The key to sort the data by.| ## Examples -The examples that follow will provide a quick rundown of how the query functions in the payment transaction. +The following examples provide a quick rundown of how the query functions in the payment transaction. #### 1. Transactions With Status SETTLED and the reference starts with `test`. - If you wanted to build a query that looked for any transactions that had a status of SETTLED and the reference starts with test, you would do the following. + If you wanted to build a query that looks for any transactions that has a status of SETTLED and the reference starts with test, you would do the following. This query would return only those transactions where the status is `SETTLED` and the reference is `test`. ```graphql @@ -137,10 +137,10 @@ The examples that follow will provide a quick rundown of how the query functions ``` #### 2. Querying Sub Objects - Due to the fact payment method is a nested data object payment method queries can be made by passing a separate array of query pairs for the metadata. + Payment method is a nested data object. Because of this, payment method queries can be made by passing a separate array of query pairs for the metadata. - This would return 10 transactions where the `gross_amount` is greater than 1000 and the payment has a payment method in which the `last_four` is equal to 1234. It would be sorted by gross_amount in ascending order. + This following will return 10 transactions where the `gross_amount` is greater than 1000 and the payment has a payment method in which the `last_four` is equal to 1234. It would be sorted by gross_amount in ascending order. ```graphql { @@ -176,9 +176,6 @@ The examples that follow will provide a quick rundown of how the query functions *** -## Next Steps -We can discover how to utilize the query object to [query settlement details](query_settlement_data.mdx). - diff --git a/docs/main/after_payments/query_settlement_data.mdx b/docs/main/after_payments/query_settlement_data.mdx index 0e5878c..e3eef37 100644 --- a/docs/main/after_payments/query_settlement_data.mdx +++ b/docs/main/after_payments/query_settlement_data.mdx @@ -19,7 +19,7 @@ import Admonition from '@theme/Admonition'; # Query Settlement Data -Settlements are a batch of payments, disputes, and refunds that are grouped together and paid out to a merchant. This guide will walk you through how to write a query for settlment. +Settlements are a batch of payments, disputes, and refunds that are grouped together and paid out to a merchant. This guide will walk you through how to write a query for a settlment. ```graphql query Getsettlement{ @@ -56,7 +56,7 @@ Sending a request is required in order to get query settlement data. To obtain t ### Required Arguments -The following parameters must be used in order for getting the query settlement data. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. +The following parameters must be used in order to get the query settlement data. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. |Key |type | description | |-------------------|-------------|---------------------------------------| @@ -71,7 +71,7 @@ The following parameters must be used in order for getting the query settlement *** ## Returns -This returns if the attempt made for retry failed payment is successful or not. +This returns an array of settlement objects and the total number of items that match that query. ```JSON { @@ -91,8 +91,6 @@ This returns if the attempt made for retry failed payment is successful or not. } ``` -## Next Steps -We can also find how to build your own queries and what operators we need while building a [query](query.mdx). diff --git a/docs/main/after_payments/sending_receipts.mdx b/docs/main/after_payments/sending_receipts.mdx index 38b9b46..09ef6b5 100644 --- a/docs/main/after_payments/sending_receipts.mdx +++ b/docs/main/after_payments/sending_receipts.mdx @@ -19,7 +19,7 @@ import Admonition from '@theme/Admonition'; # Sending Receipts -This call will send a receipt for a transaction to the email address on file with the payor or an email passed in. This guide will walk you through how to send receipts the payor. +This guide will walk you through how to send receipts the payor. The following call will send a receipt for a transaction to the email address on file with the payor or an email passed in. ```graphql mutation sendingReceipts (email: AWSEmail, receipt_description: String, transaction_id: String!) { @@ -43,9 +43,6 @@ The following parameters must be used in order to send receipts to the payor. Th *** -## Next Steps -We can learn how to use the querying object in settlements [query settlement object](query_settlement_data.mdx) as well as how the [query](query) in a transaction functions works. - diff --git a/docs/main/recurring_payments/create_a_subscription.mdx b/docs/main/recurring_payments/create_a_subscription.mdx index 7188684..f01740f 100644 --- a/docs/main/recurring_payments/create_a_subscription.mdx +++ b/docs/main/recurring_payments/create_a_subscription.mdx @@ -19,7 +19,7 @@ import Admonition from '@theme/Admonition'; # Making a payment using subscription -A payment subscription involves paying for ongoing use of a service or product, sometimes in many levels.This guide will walk you through how to make a payment using subscription. +A payment subscription involves paying for ongoing use of a service or product. This guide will walk you through how to make a payment using subscription. ## Create a payment plan using subscription You can also create a recurring payment with no set payment amounts to enable a subscription for a payor. diff --git a/docs/main/recurring_payments/overview.mdx b/docs/main/recurring_payments/overview.mdx index 858e3f3..52e9664 100644 --- a/docs/main/recurring_payments/overview.mdx +++ b/docs/main/recurring_payments/overview.mdx @@ -30,12 +30,12 @@ You will need to be able to tokenize a payment in order to set up a recurring pa ::: ## Subscriptions -A subscription enables you to... +A payment subscription involves paying for ongoing use of a service or product. This payment will continue for as long as specified. Create a subscription ## Payment plans -Payment plans enables you to... +Payment plans are recurring payments that will trigger on an interval and continue until a total amount is reached. Create a payment plan From 4c339b0f8134c0f3318783509c8644d4db0d9b58 Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:13:46 -0500 Subject: [PATCH 09/34] updated copy --- docs/main/recurring_payments/create_a_payment_plan.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/main/recurring_payments/create_a_payment_plan.mdx b/docs/main/recurring_payments/create_a_payment_plan.mdx index 059792e..041b03e 100644 --- a/docs/main/recurring_payments/create_a_payment_plan.mdx +++ b/docs/main/recurring_payments/create_a_payment_plan.mdx @@ -19,7 +19,7 @@ import Admonition from '@theme/Admonition'; # Making a Recurring payment -Payment plan are any recurring transactions that are completed on a periodic basis, such as utility bills, loans, or contracts. This guide will walk you through how to make a recurring payment plan. +Recurring payments are any repeating transactions that are completed on a periodic basis, such as a car loan, or mortgage. This guide will walk you through how to make a recurring payment plan. ## Create a payment plan A recurring payment represents a payment that will trigger on an interval. You can create a recurring payment with a set number of payments to enable a payment plan for a payor. From 8c221dcea7bdd7e2c2533227c2460b8d9be46600 Mon Sep 17 00:00:00 2001 From: srinithyaindla Date: Tue, 6 Feb 2024 13:19:43 -0500 Subject: [PATCH 10/34] Commiting changes for invoicing and billing --- .../record_an_offline_payment.md | 10 - .../record_an_offline_payment.mdx | 86 ++++++++ .../resending_invoices.md | 10 - .../resending_invoices.mdx | 188 ++++++++++++++++++ 4 files changed, 274 insertions(+), 20 deletions(-) delete mode 100644 docs/main/invoicing_and_billing/record_an_offline_payment.md create mode 100644 docs/main/invoicing_and_billing/record_an_offline_payment.mdx delete mode 100644 docs/main/invoicing_and_billing/resending_invoices.md create mode 100644 docs/main/invoicing_and_billing/resending_invoices.mdx diff --git a/docs/main/invoicing_and_billing/record_an_offline_payment.md b/docs/main/invoicing_and_billing/record_an_offline_payment.md deleted file mode 100644 index 6db9072..0000000 --- a/docs/main/invoicing_and_billing/record_an_offline_payment.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -sidebar_position: 3 -sidebar_label: Record and Offline Payment -title: "Record an Offline Payment" - ---- - -Guide Coming Soon -## API Link -* [Invoicing and Billing](../../api/invoice) \ No newline at end of file diff --git a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx new file mode 100644 index 0000000..8247efe --- /dev/null +++ b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx @@ -0,0 +1,86 @@ +--- +sidebar_position: 3 +sidebar_label: Record and Offline Payment +title: "Record an Offline Payment" + +--- + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Create an offline invoice Transaction + Offline transactions are used to track payments that are made outside Pay Theory towards an Invoice. This call is used to create an offline transaction for an invoice. + +```graphql +mutation { + createOfflineTransaction(input: { + amount:int + invoice_id: string + type: OfflineTransactionType, + transaction_date: string + + }){ + amount + type + note + } +} +``` + +### Required Arguments +The following parameters must be used in order to create an offline invoice payment. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|amount |int |The amount of the offline transaction.| +|invoice_id |string | The Pay Theory unique identifier for the invoice that the offline transaction is being applied to.| +|transaction_date| string |The date that the offline transaction was made.| +|type | OfflineTransactionType |The type of offline transaction. It can be one of the following:
  • ACH
  • CARD
  • CASH
  • OTHER
| + + +*** + +## Returns +The response will contain the offline transaction object that was created. + +```JSON +{ + "data": { + "createOfflineTransaction": { + "amount": int, + "type": "OfflineTransactionType", + "note": string + } + } +} + +``` + +
+ + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + +
\ No newline at end of file diff --git a/docs/main/invoicing_and_billing/resending_invoices.md b/docs/main/invoicing_and_billing/resending_invoices.md deleted file mode 100644 index f9129cf..0000000 --- a/docs/main/invoicing_and_billing/resending_invoices.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -sidebar_position: 2 -sidebar_label: Resending Invoices -title: "Resending Invoices" - ---- - -Guide Coming Soon -## API Link -* [Resend Invoices](../../api/invoice#create-an-invoice-email) \ No newline at end of file diff --git a/docs/main/invoicing_and_billing/resending_invoices.mdx b/docs/main/invoicing_and_billing/resending_invoices.mdx new file mode 100644 index 0000000..788d8e5 --- /dev/null +++ b/docs/main/invoicing_and_billing/resending_invoices.mdx @@ -0,0 +1,188 @@ +--- +sidebar_position: 2 +sidebar_label: Resending Invoices +title: "Resending Invoices" + +--- + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Invoice +Invoices are used to create a payment request that can be sent to a payor. This guide will walk you through how to create, update and delete an invoice. + +## Create an Invoice +An invoice helps in providing the essential details regarding the services rendered, their associated costs, and the terms of payment, allowing for effective billing procedures. + +```graphql +mutation { + createInvoice(input:{ + invoice_amount: int, + currency:string, + merchant_uid: string, + payor_id: string + }){ + due_by + fee_mode + invoice_id + invoice_description + invoice_name + } +} + +``` + +### Required Arguments +To create an invoice, you need to send a request. The following parameters must be used in order to create an invoice successfully. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| invoice_amount |int |The total amount of the invoice.| +| currency |string |The currency of the payment that will be used to pay the invoice.| +| merchant_uid |string |The Pay Theory unique identifier for the merchant that the invoice belongs to.| +| payor_id |string |The Pay Theory unique identifier for the payor that the invoice belongs to.| + +### Optional Arguments +The parameters listed below provide flexibility in query result customization but are not required to create an invoice. Default values are frequently assigned to them. + +|Key |type |description | +|---------------------|-----------------|--------------------------------------------| +| due_by |string | The date that the payor is expected to pay the invoice by.| +| fee_mode |FeeMode |The fee mode that will be used on that transaction when a payment is made through Pay Theory's hosted checkout. It can be one of the following:
  • MERCHANT_FEE=''
  • SERVICE_FEE=''
| +| invoice_description |string | A brief description of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice.| +| invoice_name |string |The name of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice. | + +*** + +### Returns +The call will return the newly created invoice. +```JSON +{ + "data": { + "createInvoice": { + "due_by": string, + "created_date": string, + "currency": string, + "fee_mode": string, + "invoice_description": string, + } + } +} +``` + +## Update an Invoice +Updating an invoice involves making changes to the billing or payment information included in the invoice record. + +```graphql +mutation { + updateInvoice(invoice_id: string, invoice_update_input:{ + invoice_description: string, + currency: "USD", + due_by: "2022-09-19" + + }) +} +``` +### Required Arguments +The following parameters must be used in order to update an invoice successfully. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| +| invoice_update_input |UpdateInvoiceInput |The input object that contains all of the information needed to update an invoice.| + +### Return +If the invoice is updated and the call will return true. + +```JSON +{ + "data": { + "updateInvoice": true + } +} +``` + +## Delete Invoice +When an invoice is deleted, its information and transaction history are permanently erased from the database. + +```graphql +mutation { + deleteInvoice(invoice_id: string) +} +``` +### Required Arguments +To delete an invoice, you need to send a request. The following parameters must be used in order to delete an invoice successfully. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| + +### Return +If the invoice is deleted and the call will return true. + +```JSON +{ + "data": { + "deleteInvoice": true + } +} +``` + +## Create an Invoice email +This call is used to resend Invoice emails for a specific invoice. + +```graphql + +mutation { + createInvoiceEmail(invoice_id: String) +} +``` + +### Required Arguments +To create an invoice email, you need to send a request. The following parameters must be used in order to create an invoice email successfully. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| + +### Return +The response will include a boolean value that will be true if the email was sent successfully. + +```JSON +{ + "data": { + "createInvoiceEmail": true + } +} +``` +## Next Steps +You can also refer to [creating an offline invoice payment](record_an_offline_payment). + +
+ + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + +
From 9ae994858c4ba7bff48061a5de0f12d469f34b1f Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Wed, 7 Feb 2024 15:14:53 -0500 Subject: [PATCH 11/34] Navigation updates, Content review for invoicing and billing, minor padding fix to button css. --- .../create_an_invoice.md | 9 ------- .../{resending_invoices.mdx => invoices.mdx} | 24 +++++++++---------- .../record_an_offline_payment.mdx | 4 ++-- sidebars.js | 13 +++++++++- src/css/custom.css | 2 +- 5 files changed, 27 insertions(+), 25 deletions(-) delete mode 100644 docs/main/invoicing_and_billing/create_an_invoice.md rename docs/main/invoicing_and_billing/{resending_invoices.mdx => invoices.mdx} (86%) diff --git a/docs/main/invoicing_and_billing/create_an_invoice.md b/docs/main/invoicing_and_billing/create_an_invoice.md deleted file mode 100644 index 90196be..0000000 --- a/docs/main/invoicing_and_billing/create_an_invoice.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 1 -sidebar_label: Overview -title: "Overview" -sidebar_class_name: hidden - ---- - -Guide Coming Soon \ No newline at end of file diff --git a/docs/main/invoicing_and_billing/resending_invoices.mdx b/docs/main/invoicing_and_billing/invoices.mdx similarity index 86% rename from docs/main/invoicing_and_billing/resending_invoices.mdx rename to docs/main/invoicing_and_billing/invoices.mdx index 788d8e5..42e61fa 100644 --- a/docs/main/invoicing_and_billing/resending_invoices.mdx +++ b/docs/main/invoicing_and_billing/invoices.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 2 -sidebar_label: Resending Invoices -title: "Resending Invoices" +sidebar_label: Invoices +title: "Invoices" --- @@ -18,11 +18,11 @@ import Admonition from '@theme/Admonition'; ]}> -# Invoice +# Invoices Invoices are used to create a payment request that can be sent to a payor. This guide will walk you through how to create, update and delete an invoice. -## Create an Invoice -An invoice helps in providing the essential details regarding the services rendered, their associated costs, and the terms of payment, allowing for effective billing procedures. +## Create an invoice +Use the code below to create an invoice. ```graphql mutation { @@ -43,7 +43,7 @@ mutation { ``` ### Required Arguments -To create an invoice, you need to send a request. The following parameters must be used in order to create an invoice successfully. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. +When creating an invoice you need to send a request. The following parameters must be used in order to create an invoice successfully. |Key |type | description | |-------------------|-------------|---------------------------------------| @@ -80,7 +80,7 @@ The call will return the newly created invoice. } ``` -## Update an Invoice +## Update an invoice Updating an invoice involves making changes to the billing or payment information included in the invoice record. ```graphql @@ -94,7 +94,7 @@ mutation { } ``` ### Required Arguments -The following parameters must be used in order to update an invoice successfully. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. +The following parameters must be used in order to update an invoice successfully. |Key |type | description | |-------------------|-------------|---------------------------------------| @@ -102,7 +102,7 @@ The following parameters must be used in order to update an invoice successfully | invoice_update_input |UpdateInvoiceInput |The input object that contains all of the information needed to update an invoice.| ### Return -If the invoice is updated and the call will return true. +If the invoice is updated, the call will return true. ```JSON { @@ -112,7 +112,7 @@ If the invoice is updated and the call will return true. } ``` -## Delete Invoice +## Delete an invoice When an invoice is deleted, its information and transaction history are permanently erased from the database. ```graphql @@ -138,8 +138,8 @@ If the invoice is deleted and the call will return true. } ``` -## Create an Invoice email -This call is used to resend Invoice emails for a specific invoice. +## Create an invoice email +This call is used to resend invoice emails for a specific invoice. ```graphql diff --git a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx index 8247efe..95cf20a 100644 --- a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx +++ b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx @@ -1,6 +1,6 @@ --- sidebar_position: 3 -sidebar_label: Record and Offline Payment +sidebar_label: Record an Offline Payment title: "Record an Offline Payment" --- @@ -18,7 +18,7 @@ import Admonition from '@theme/Admonition'; ]}> -# Create an offline invoice Transaction +# Record an Offline Payment Offline transactions are used to track payments that are made outside Pay Theory towards an Invoice. This call is used to create an offline transaction for an invoice. ```graphql diff --git a/sidebars.js b/sidebars.js index 8b87cb6..5dc7fce 100644 --- a/sidebars.js +++ b/sidebars.js @@ -70,7 +70,18 @@ module.exports = { type: 'category', label: 'Recurring Payments', items: [ { - type: 'autogenerated', dirName: 'main/recurring_payments' + type:'doc', id: 'main/recurring_payments/overview' + }, + { + type: 'doc', id: 'main/recurring_payments/create_a_payment_plan' + }, + { + type: 'doc', id: 'main/recurring_payments/create_a_subscription' + }, + { + type:'category', + label:'Manage Recurring Payments', + items: ['main/recurring_payments/manage_recurring_payments/cancel_recurring_payments','main/recurring_payments/manage_recurring_payments/update_recurring_payments','main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data','main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments'] }, ] diff --git a/src/css/custom.css b/src/css/custom.css index 9cfdb51..e64af82 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -772,7 +772,7 @@ div.navbar__logo{ border-radius: 10px; } -.alert .button--md{ +.button--md, .alert .button--md{ padding-top: .35rem; text-decoration: none; margin-top: .5rem ; From 764c4acba27b8019284f042622f6bdb9690fc367 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Wed, 7 Feb 2024 15:38:30 -0500 Subject: [PATCH 12/34] fix: fixed some formatting issues --- .../recurring_payments/create_a_payment_plan.mdx | 2 +- .../recurring_payments/create_a_subscription.mdx | 2 +- .../update_recurring_payments.mdx | 2 +- docs/main/recurring_payments/overview.mdx | 14 +++++++------- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/main/recurring_payments/create_a_payment_plan.mdx b/docs/main/recurring_payments/create_a_payment_plan.mdx index 041b03e..53effcf 100644 --- a/docs/main/recurring_payments/create_a_payment_plan.mdx +++ b/docs/main/recurring_payments/create_a_payment_plan.mdx @@ -1,6 +1,6 @@ --- sidebar_position: 2 -sidebar_label: 'Create a Recurring Payment' +sidebar_label: 'Create a Payment Plan' title: "" --- diff --git a/docs/main/recurring_payments/create_a_subscription.mdx b/docs/main/recurring_payments/create_a_subscription.mdx index f01740f..a859d3e 100644 --- a/docs/main/recurring_payments/create_a_subscription.mdx +++ b/docs/main/recurring_payments/create_a_subscription.mdx @@ -1,6 +1,6 @@ --- sidebar_position: 3 -sidebar_label: Create Payment Subscription +sidebar_label: Create a Subscription title: "" --- diff --git a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx index 3ac0716..51ec142 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx @@ -22,7 +22,7 @@ import Admonition from '@theme/Admonition'; # Update Recurring Payment Updating recurring payments allows modifications to payment details, intervals, or amounts for ongoing subscriptions or services. This guide refers to making changes to the specifics of an already-existing regular payment plan, including altering the amounts, intervals, or related data. -:::info +:::info Info It updates the payment method on the recurring payment. If you want to update any other fields, you will need to cancel the recurring payment and create a new one. ::: diff --git a/docs/main/recurring_payments/overview.mdx b/docs/main/recurring_payments/overview.mdx index 52e9664..fdbd03e 100644 --- a/docs/main/recurring_payments/overview.mdx +++ b/docs/main/recurring_payments/overview.mdx @@ -29,19 +29,19 @@ You will need to be able to tokenize a payment in order to set up a recurring pa Tokenizing Quickstart ::: -## Subscriptions -A payment subscription involves paying for ongoing use of a service or product. This payment will continue for as long as specified. - -Create a subscription - ## Payment plans Payment plans are recurring payments that will trigger on an interval and continue until a total amount is reached. -Create a payment plan +Create a payment plan +## Subscriptions +A payment subscription involves paying for ongoing use of a service or product. This payment will continue for as long as specified. + +Create a subscription - + + # Documentation Coming Soon From a528b3bdca8052268d2eb02ea60b878c5f4ca9e3 Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Wed, 7 Feb 2024 16:48:11 -0500 Subject: [PATCH 13/34] Separated Invoice into separate guides --- .../{invoices.mdx => create_an_invoice.mdx} | 109 ++---------------- .../delete_an_invoice.mdx | 64 ++++++++++ .../record_an_offline_payment.mdx | 4 +- .../resend_an_invoice_email.mdx | 66 +++++++++++ .../update_an_invoice.mdx | 71 ++++++++++++ 5 files changed, 211 insertions(+), 103 deletions(-) rename docs/main/invoicing_and_billing/{invoices.mdx => create_an_invoice.mdx} (53%) create mode 100644 docs/main/invoicing_and_billing/delete_an_invoice.mdx create mode 100644 docs/main/invoicing_and_billing/resend_an_invoice_email.mdx create mode 100644 docs/main/invoicing_and_billing/update_an_invoice.mdx diff --git a/docs/main/invoicing_and_billing/invoices.mdx b/docs/main/invoicing_and_billing/create_an_invoice.mdx similarity index 53% rename from docs/main/invoicing_and_billing/invoices.mdx rename to docs/main/invoicing_and_billing/create_an_invoice.mdx index 42e61fa..484c4a8 100644 --- a/docs/main/invoicing_and_billing/invoices.mdx +++ b/docs/main/invoicing_and_billing/create_an_invoice.mdx @@ -1,7 +1,7 @@ --- -sidebar_position: 2 -sidebar_label: Invoices -title: "Invoices" +sidebar_position: 1 +sidebar_label: Create an Invoice +title: "Create an Invoice" --- @@ -18,11 +18,8 @@ import Admonition from '@theme/Admonition'; ]}> -# Invoices -Invoices are used to create a payment request that can be sent to a payor. This guide will walk you through how to create, update and delete an invoice. - -## Create an invoice -Use the code below to create an invoice. +# Create an Invoice +Invoices are used to create a payment request that can be sent to a payor. This guide will walk you through how to create an invoice. ```graphql mutation { @@ -42,7 +39,7 @@ mutation { ``` -### Required Arguments +## Required Arguments When creating an invoice you need to send a request. The following parameters must be used in order to create an invoice successfully. |Key |type | description | @@ -52,7 +49,7 @@ When creating an invoice you need to send a request. The following parameters mu | merchant_uid |string |The Pay Theory unique identifier for the merchant that the invoice belongs to.| | payor_id |string |The Pay Theory unique identifier for the payor that the invoice belongs to.| -### Optional Arguments +## Optional Arguments The parameters listed below provide flexibility in query result customization but are not required to create an invoice. Default values are frequently assigned to them. |Key |type |description | @@ -62,9 +59,7 @@ The parameters listed below provide flexibility in query result customization bu | invoice_description |string | A brief description of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice.| | invoice_name |string |The name of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice. | -*** - -### Returns +## Returns The call will return the newly created invoice. ```JSON { @@ -80,94 +75,6 @@ The call will return the newly created invoice. } ``` -## Update an invoice -Updating an invoice involves making changes to the billing or payment information included in the invoice record. - -```graphql -mutation { - updateInvoice(invoice_id: string, invoice_update_input:{ - invoice_description: string, - currency: "USD", - due_by: "2022-09-19" - - }) -} -``` -### Required Arguments -The following parameters must be used in order to update an invoice successfully. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| -| invoice_update_input |UpdateInvoiceInput |The input object that contains all of the information needed to update an invoice.| - -### Return -If the invoice is updated, the call will return true. - -```JSON -{ - "data": { - "updateInvoice": true - } -} -``` - -## Delete an invoice -When an invoice is deleted, its information and transaction history are permanently erased from the database. - -```graphql -mutation { - deleteInvoice(invoice_id: string) -} -``` -### Required Arguments -To delete an invoice, you need to send a request. The following parameters must be used in order to delete an invoice successfully. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| - -### Return -If the invoice is deleted and the call will return true. - -```JSON -{ - "data": { - "deleteInvoice": true - } -} -``` - -## Create an invoice email -This call is used to resend invoice emails for a specific invoice. - -```graphql - -mutation { - createInvoiceEmail(invoice_id: String) -} -``` - -### Required Arguments -To create an invoice email, you need to send a request. The following parameters must be used in order to create an invoice email successfully. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| - -### Return -The response will include a boolean value that will be true if the email was sent successfully. - -```JSON -{ - "data": { - "createInvoiceEmail": true - } -} -``` -## Next Steps -You can also refer to [creating an offline invoice payment](record_an_offline_payment). - diff --git a/docs/main/invoicing_and_billing/delete_an_invoice.mdx b/docs/main/invoicing_and_billing/delete_an_invoice.mdx new file mode 100644 index 0000000..459572d --- /dev/null +++ b/docs/main/invoicing_and_billing/delete_an_invoice.mdx @@ -0,0 +1,64 @@ +--- +sidebar_position: 3 +sidebar_label: Delete an Invoice +title: "Delete an Invoice" + +--- + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Delete an Invoice +Deleting an invoice permenantly erases an invoice's transaction history from the database. This guide will walk you through how to delete an invoice. + +```graphql +mutation { + deleteInvoice(invoice_id: string) +} +``` +## Required Arguments +To delete an invoice, you need to send a request. The following parameters must be used in order to delete an invoice successfully. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| + +## Return +If the invoice is deleted and the call will return true. + +```JSON +{ + "data": { + "deleteInvoice": true + } +} +``` + + + + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + + diff --git a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx index 95cf20a..4faf39c 100644 --- a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx +++ b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 5 sidebar_label: Record an Offline Payment title: "Record an Offline Payment" @@ -37,7 +37,7 @@ mutation { } ``` -### Required Arguments +## Required Arguments The following parameters must be used in order to create an offline invoice payment. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. |Key |type | description | diff --git a/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx b/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx new file mode 100644 index 0000000..035dda9 --- /dev/null +++ b/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx @@ -0,0 +1,66 @@ +--- +sidebar_position: 4 +sidebar_label: Resend an Invoice Email +title: "Resend an Invoice Email" + +--- + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Resend an Invoice Email +This guide will demonstrate how to resend an invoice's email. + +```graphql + +mutation { + createInvoiceEmail(invoice_id: String) +} +``` + +## Required Arguments +To create an invoice email, you need to send a request. The following parameters must be used in order to create an invoice email successfully. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| + +## Return +The response will include a boolean value that will be true if the email was sent successfully. + +```JSON +{ + "data": { + "createInvoiceEmail": true + } +} +``` + + + + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + + diff --git a/docs/main/invoicing_and_billing/update_an_invoice.mdx b/docs/main/invoicing_and_billing/update_an_invoice.mdx new file mode 100644 index 0000000..b393186 --- /dev/null +++ b/docs/main/invoicing_and_billing/update_an_invoice.mdx @@ -0,0 +1,71 @@ +--- +sidebar_position: 2 +sidebar_label: Update an Invoice +title: "Invoices" + +--- + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + + + +# Update an Invoice +Updating an invoice involves making changes to the billing or payment information included in the invoice record. This guide will show you how to update an existing invoice. + +```graphql +mutation { + updateInvoice(invoice_id: string, invoice_update_input:{ + invoice_description: string, + currency: "USD", + due_by: "2022-09-19" + + }) +} +``` +## Required Arguments +The following parameters must be used in order to update an invoice successfully. + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| +| invoice_update_input |UpdateInvoiceInput |The input object that contains all of the information needed to update an invoice.| + +## Return +If the invoice is updated, the call will return true. + +```JSON +{ + "data": { + "updateInvoice": true + } +} +``` + + + + + +# Documentation Coming Soon +Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. +View Apple SDK Reference + + + + + +# Documentation Coming Soon +Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. +View Android SDK Reference + + + + From 60f4c12d8bad489acf628e52cbfd7badc2bd1191 Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Sun, 11 Feb 2024 17:08:43 -0500 Subject: [PATCH 14/34] Code block titles added. Recurring and Invoice sections reworked. Tabs removed in after payment, recurring and invocing sections --- docs/main/after_payments/custom_query.mdx | 39 ++----------- docs/main/after_payments/payouts.md | 10 ---- .../after_payments/query_settlement_data.mdx | 35 +---------- docs/main/after_payments/sending_receipts.mdx | 32 +--------- docs/main/getting_started/error_handling.mdx | 2 +- docs/main/getting_started/quickstart.mdx | 9 +-- .../styling_pay_theory_fields.mdx | 4 +- .../create_an_invoice.mdx | 58 +++---------------- .../delete_an_invoice.mdx | 41 +++---------- .../record_an_offline_payment.mdx | 48 ++------------- .../resend_an_invoice_email.mdx | 42 +++----------- .../update_an_invoice.mdx | 45 +++----------- docs/main/online_payments/ach_payments.mdx | 8 +-- docs/main/online_payments/cash_payments.mdx | 4 +- docs/main/online_payments/payment_button.mdx | 9 ++- docs/main/online_payments/qr_code.mdx | 2 +- .../making_a_payment_with_payment_tokens.mdx | 4 +- .../online_payments/tokenizing/quickstart.mdx | 2 +- .../tokenizing/recalling_payment_methods.mdx | 4 +- .../create_a_payment_plan.mdx | 35 ++--------- .../create_a_subscription.mdx | 33 +---------- .../cancel_recurring_payments.mdx | 33 +---------- .../manage_recurring_emails.mdx | 13 ----- .../missed_recurring_payment_data.mdx | 32 +--------- .../retry_failed_recurring_payments.mdx | 31 +--------- .../update_recurring_payments.mdx | 33 +---------- docs/main/recurring_payments/overview.mdx | 30 ---------- 27 files changed, 87 insertions(+), 551 deletions(-) delete mode 100644 docs/main/after_payments/payouts.md delete mode 100644 docs/main/recurring_payments/manage_recurring_payments/manage_recurring_emails.mdx diff --git a/docs/main/after_payments/custom_query.mdx b/docs/main/after_payments/custom_query.mdx index 3517382..ac7372d 100644 --- a/docs/main/after_payments/custom_query.mdx +++ b/docs/main/after_payments/custom_query.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 3 -sidebar_label: Query Data -title: "Query Data" +sidebar_label: Custom Query +title: "Custom Query" --- @@ -9,20 +9,11 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Custom Query We will go over how to create custom queries that you may submit to the Pay Theory API in this section. Let's examine a fundamental query object first, and then we will dissect it. -```graphql +```graphql title="GraphQL" { query_list: [ { @@ -108,7 +99,7 @@ The following examples provide a quick rundown of how the query functions in the If you wanted to build a query that looks for any transactions that has a status of SETTLED and the reference starts with test, you would do the following. This query would return only those transactions where the status is `SETTLED` and the reference is `test`. - ```graphql + ```graphql title="GraphQL" { transactions(limit: 5, query: {query_list: [ { @@ -142,7 +133,7 @@ The following examples provide a quick rundown of how the query functions in the This following will return 10 transactions where the `gross_amount` is greater than 1000 and the payment has a payment method in which the `last_four` is equal to 1234. It would be sorted by gross_amount in ascending order. - ```graphql + ```graphql title="GraphQL" { transactions(limit: 10, query:{ query_list: [ @@ -174,23 +165,3 @@ The following examples provide a quick rundown of how the query functions in the } ``` -*** - - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - \ No newline at end of file diff --git a/docs/main/after_payments/payouts.md b/docs/main/after_payments/payouts.md deleted file mode 100644 index 26d4bee..0000000 --- a/docs/main/after_payments/payouts.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -sidebar_position: 4 -sidebar_label: Payouts -title: "Payouts" -draft: true -sidebar_class_name: hidden - ---- - -Coming Soon \ No newline at end of file diff --git a/docs/main/after_payments/query_settlement_data.mdx b/docs/main/after_payments/query_settlement_data.mdx index e3eef37..e03e186 100644 --- a/docs/main/after_payments/query_settlement_data.mdx +++ b/docs/main/after_payments/query_settlement_data.mdx @@ -9,19 +9,10 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Query Settlement Data Settlements are a batch of payments, disputes, and refunds that are grouped together and paid out to a merchant. This guide will walk you through how to write a query for a settlment. -```graphql +```graphql title="GraphQL" query Getsettlement{ settlements(limit: 10, direction: FORWARD, offset: "", offset_id: "", query:{ query_list:[ @@ -73,7 +64,7 @@ The following parameters must be used in order to get the query settlement data. ## Returns This returns an array of settlement objects and the total number of items that match that query. -```JSON +```JSON title="JSON" { "data": { "settlements": { @@ -89,24 +80,4 @@ This returns an array of settlement objects and the total number of items that m } } } -``` - - - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - \ No newline at end of file +``` \ No newline at end of file diff --git a/docs/main/after_payments/sending_receipts.mdx b/docs/main/after_payments/sending_receipts.mdx index 09ef6b5..1b21184 100644 --- a/docs/main/after_payments/sending_receipts.mdx +++ b/docs/main/after_payments/sending_receipts.mdx @@ -9,19 +9,10 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Sending Receipts This guide will walk you through how to send receipts the payor. The following call will send a receipt for a transaction to the email address on file with the payor or an email passed in. -```graphql +```graphql title="GraphQL" mutation sendingReceipts (email: AWSEmail, receipt_description: String, transaction_id: String!) { createReceiptEmail(transaction_id: transaction_id, email: email, @@ -40,24 +31,3 @@ The following parameters must be used in order to send receipts to the payor. Th |receipt_description |string | The description of the transaction that will be displayed on the receipt. If not provided it will just say "Payment to merchant_name".| -*** - - - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - \ No newline at end of file diff --git a/docs/main/getting_started/error_handling.mdx b/docs/main/getting_started/error_handling.mdx index 1610662..ad43d75 100644 --- a/docs/main/getting_started/error_handling.mdx +++ b/docs/main/getting_started/error_handling.mdx @@ -43,7 +43,7 @@ Below is a list of errors that can be returned from the SDK. | SOCKET_ERROR | Indicates an error with the call to the socket. | | TRANSACTING_FIELD_ERROR | Indicates either multiple transacting fields or no transacting fields were found visible on the DOM when running a function. | -```jsx +```jsx title="javascript" window.paytheory.errorObserver(error => { if (error.startsWith("FIELD_ERROR")) { // Logic to handle field-related errors diff --git a/docs/main/getting_started/quickstart.mdx b/docs/main/getting_started/quickstart.mdx index 71e1214..b1adbd3 100644 --- a/docs/main/getting_started/quickstart.mdx +++ b/docs/main/getting_started/quickstart.mdx @@ -43,7 +43,7 @@ When you want to call a function from Pay Theory SDK you will need to use one of ## 3. Add Pay Theory elements to your form You need to add the Pay Theory elements to your form. You can place these elements anywhere in your form and the SDK will place the hosted fields in the correct place. -```jsx +```jsx title="javascript"
``` @@ -54,10 +54,11 @@ After that, before you initialize the Pay Theory fields, you would need to invok :::tip Recommended event listeners The link below provides list of all event listeners available in the below link. + View All Event Listeners ::: -```jsx +```jsx title="javascript" paytheory.errorobserver(error => { //Logic to respond to errors }) @@ -68,7 +69,7 @@ paytheory.errorobserver(error => { After you have set up all the event listeners, you can initialize the Pay Theory fields by calling the ` payTheoryFields ` function. -```jsx +```jsx title="javascript" const API_KEY ='YOUR_API_KEY' paytheory.payTheoryFields({ apiKey: API_KEY, @@ -87,7 +88,7 @@ paytheory.payTheoryFields({ ## 6. Once the fields are valid, run transaction The only required field for the transact parameters is the amount field. You can customize the transact function more. -```jsx +```jsx title="javascript" //Amount passed in is in cents const AMOUNT = 1000 diff --git a/docs/main/getting_started/styling_pay_theory_fields.mdx b/docs/main/getting_started/styling_pay_theory_fields.mdx index 69e4935..7cd820a 100644 --- a/docs/main/getting_started/styling_pay_theory_fields.mdx +++ b/docs/main/getting_started/styling_pay_theory_fields.mdx @@ -68,7 +68,7 @@ To style the input parent div, provide your own CSS for the Pay Theory container Individual pay-theory-credit-card-number containers should be at least 340px wide, pay-theory-credit-card combined input should be 400px ::: -```jsx title= src/custom.css +```jsx title="src/custom.css" #pay-theory-credit-card-number, #pay-theory-credit-card-exp, #pay-theory-credit-card-cvv { @@ -84,7 +84,7 @@ Individual pay-theory-credit-card-number containers should be at least 340px wid ## Using the stateObserver A stateObserver lets you keep an eye on changes to the state of hosted fields and react to them. It offers a mechanism to keep a look on things like field focus, if a field is empty or if there are any validation errors with the field. Each time the state of a text input changes, the stateObserver callback method is called. -```jsx title= src/paytheory.js +```jsx title="src/paytheory.js" const stateHandler = (state) => { const cardState = state['card-number'] const cardField = document.getElementById("pay-theory-credit-card-number") diff --git a/docs/main/invoicing_and_billing/create_an_invoice.mdx b/docs/main/invoicing_and_billing/create_an_invoice.mdx index 484c4a8..1a1413e 100644 --- a/docs/main/invoicing_and_billing/create_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/create_an_invoice.mdx @@ -9,19 +9,10 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - +# Create an Invoice +Invoices are used to create a payment request that can be sent to a payor. The call below will create an invoice. -# Create an Invoice -Invoices are used to create a payment request that can be sent to a payor. This guide will walk you through how to create an invoice. - -```graphql +```graphql title="GraphQL" mutation { createInvoice(input:{ invoice_amount: int, @@ -39,29 +30,9 @@ mutation { ``` -## Required Arguments -When creating an invoice you need to send a request. The following parameters must be used in order to create an invoice successfully. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| invoice_amount |int |The total amount of the invoice.| -| currency |string |The currency of the payment that will be used to pay the invoice.| -| merchant_uid |string |The Pay Theory unique identifier for the merchant that the invoice belongs to.| -| payor_id |string |The Pay Theory unique identifier for the payor that the invoice belongs to.| - -## Optional Arguments -The parameters listed below provide flexibility in query result customization but are not required to create an invoice. Default values are frequently assigned to them. - -|Key |type |description | -|---------------------|-----------------|--------------------------------------------| -| due_by |string | The date that the payor is expected to pay the invoice by.| -| fee_mode |FeeMode |The fee mode that will be used on that transaction when a payment is made through Pay Theory's hosted checkout. It can be one of the following:
  • MERCHANT_FEE=''
  • SERVICE_FEE=''
| -| invoice_description |string | A brief description of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice.| -| invoice_name |string |The name of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice. | - ## Returns The call will return the newly created invoice. -```JSON +```JSON title="JSON" { "data": { "createInvoice": { @@ -75,21 +46,8 @@ The call will return the newly created invoice. } ``` -
- - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - +:::note View Arguments +View the extensive list of arguments for creating an invoice in our API. -
+View All Arguments +::: diff --git a/docs/main/invoicing_and_billing/delete_an_invoice.mdx b/docs/main/invoicing_and_billing/delete_an_invoice.mdx index 459572d..d28cfaf 100644 --- a/docs/main/invoicing_and_billing/delete_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/delete_an_invoice.mdx @@ -9,34 +9,19 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Delete an Invoice -Deleting an invoice permenantly erases an invoice's transaction history from the database. This guide will walk you through how to delete an invoice. +Deleting an invoice permenantly erases an invoice's transaction history from the database. The call below will delete an invoice. -```graphql +```graphql title="GraphQL" mutation { deleteInvoice(invoice_id: string) } ``` -## Required Arguments -To delete an invoice, you need to send a request. The following parameters must be used in order to delete an invoice successfully. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| ## Return If the invoice is deleted and the call will return true. -```JSON +```JSON title="JSON" { "data": { "deleteInvoice": true @@ -44,21 +29,9 @@ If the invoice is deleted and the call will return true. } ``` - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference +:::note View Arguments +View the extensive list of arguments for deleting an invoice in our API. - +View All Arguments +::: - diff --git a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx index 4faf39c..7fef9dd 100644 --- a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx +++ b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx @@ -9,19 +9,10 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Record an Offline Payment Offline transactions are used to track payments that are made outside Pay Theory towards an Invoice. This call is used to create an offline transaction for an invoice. -```graphql +```graphql title="GraphQL" mutation { createOfflineTransaction(input: { amount:int @@ -37,23 +28,10 @@ mutation { } ``` -## Required Arguments -The following parameters must be used in order to create an offline invoice payment. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -|amount |int |The amount of the offline transaction.| -|invoice_id |string | The Pay Theory unique identifier for the invoice that the offline transaction is being applied to.| -|transaction_date| string |The date that the offline transaction was made.| -|type | OfflineTransactionType |The type of offline transaction. It can be one of the following:
  • ACH
  • CARD
  • CASH
  • OTHER
| - - -*** - ## Returns The response will contain the offline transaction object that was created. -```JSON +```JSON title="JSON" { "data": { "createOfflineTransaction": { @@ -65,22 +43,8 @@ The response will contain the offline transaction object that was created. } ``` +:::note View Arguments +View the extensive list of arguments for recording an offline payment in our API. -
- - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - -
\ No newline at end of file +View All Arguments +::: \ No newline at end of file diff --git a/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx b/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx index 035dda9..d2af57d 100644 --- a/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx +++ b/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx @@ -9,36 +9,21 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - # Resend an Invoice Email -This guide will demonstrate how to resend an invoice's email. +The call below will resend an invoice's email. -```graphql +```graphql title="GraphQL" mutation { createInvoiceEmail(invoice_id: String) } ``` -## Required Arguments -To create an invoice email, you need to send a request. The following parameters must be used in order to create an invoice email successfully. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| - ## Return The response will include a boolean value that will be true if the email was sent successfully. -```JSON +```JSON title="JSON" { "data": { "createInvoiceEmail": true @@ -46,21 +31,8 @@ The response will include a boolean value that will be true if the email was sen } ``` - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - +:::note View Arguments +View the extensive list of arguments for resending an invoice email in our API. - +View All Arguments +::: \ No newline at end of file diff --git a/docs/main/invoicing_and_billing/update_an_invoice.mdx b/docs/main/invoicing_and_billing/update_an_invoice.mdx index b393186..bad4211 100644 --- a/docs/main/invoicing_and_billing/update_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/update_an_invoice.mdx @@ -9,19 +9,10 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Update an Invoice -Updating an invoice involves making changes to the billing or payment information included in the invoice record. This guide will show you how to update an existing invoice. +Updating an invoice involves making changes to the billing or payment information included in the invoice record. This following call will update an existing invoice. -```graphql +```graphql title="GraphQL" mutation { updateInvoice(invoice_id: string, invoice_update_input:{ invoice_description: string, @@ -31,41 +22,19 @@ mutation { }) } ``` -## Required Arguments -The following parameters must be used in order to update an invoice successfully. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| invoice_id |string |The Pay Theory unique identifier for the invoice to update.| -| invoice_update_input |UpdateInvoiceInput |The input object that contains all of the information needed to update an invoice.| ## Return If the invoice is updated, the call will return true. -```JSON +```JSON title="JSON" { "data": { "updateInvoice": true } } ``` +:::note View Arguments +View the extensive list of arguments for updating an invoice in our API. - - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - +View All Arguments +::: diff --git a/docs/main/online_payments/ach_payments.mdx b/docs/main/online_payments/ach_payments.mdx index 79a7697..4905dab 100644 --- a/docs/main/online_payments/ach_payments.mdx +++ b/docs/main/online_payments/ach_payments.mdx @@ -44,7 +44,7 @@ When you want to call a function from Pay Theory SDK you will need to use one of ## 3. Add Pay Theory elements to your form You need to add the Pay Theory elements to your form. You can place these elements anywhere in your form and the SDK will place the hosted fields in the correct place. -```jsx +```jsx title="javascript"
@@ -60,7 +60,7 @@ The link below provides list of all event listeners available in the below link. View All Event Listeners ::: -```jsx +```jsx title="javascript" paytheory.errorobserver(error => { //Logic to respond to errors }) @@ -71,7 +71,7 @@ paytheory.errorobserver(error => { After you have set up all the event listeners, you can initialize the Pay Theory fields by calling the ` payTheoryFields ` function. -```jsx +```jsx title="javascript" const API_KEY ='YOUR_API_KEY' paytheory.payTheoryFields({ apiKey: API_KEY, @@ -90,7 +90,7 @@ paytheory.payTheoryFields({ ## 6. Once the fields are valid, run transaction The only required field for the transact parameters is the amount field. You can customize the transact function more. -```jsx +```jsx title="javascript" //Amount passed in is in cents const AMOUNT = 1000 diff --git a/docs/main/online_payments/cash_payments.mdx b/docs/main/online_payments/cash_payments.mdx index 349c8f0..4a98eb0 100644 --- a/docs/main/online_payments/cash_payments.mdx +++ b/docs/main/online_payments/cash_payments.mdx @@ -33,7 +33,7 @@ To use cash you will need to make sure the transact function is enabled in order This function is used to submit a payment to Pay Theory or generate a barcode using Pay Theory’s cash fields. It returns a Promise with the result or an error. -```jsx paytheory.js +```jsx title="paytheory.js" //Amount passed in is in cents const AMOUNT = 1000 @@ -114,7 +114,7 @@ This is the value of the `error` key in the response if the `type` is ERROR: You can customize your cash fields based on your requirements and desired user experience. These fields are all required to collect cash information from the user. -```jsx +```jsx title="javascript"
diff --git a/docs/main/online_payments/payment_button.mdx b/docs/main/online_payments/payment_button.mdx index cbdfbc5..315ef75 100644 --- a/docs/main/online_payments/payment_button.mdx +++ b/docs/main/online_payments/payment_button.mdx @@ -24,7 +24,7 @@ This guide will walk you through the steps to create a payment button that will ## 1. Import the SDK You need to use the Pay Theory Web SDK. This is available by adding the below script into your web header. This button will open a hosted checkout page that will allow the user to select a payment method and complete the payment. -```jsx +```jsx title="javascript" ``` *** @@ -32,7 +32,7 @@ You need to use the Pay Theory Web SDK. This is available by adding the below sc ## 2. Add Pay Theory element to your Html This div is used to mount an iframe that will include a checkout button. You need to add the Pay Theory elements to your HTML. You can place these elements anywhere in your HTML and the SDK will place the button in the correct place. -```jsx +```jsx title="javascript"
``` *** @@ -40,7 +40,7 @@ This div is used to mount an iframe that will include a checkout button. You nee ## 3. Prepare the checkout details You will need to put together the details of the checkout. This includes the amount, payment name, and any other details you want to pass to the checkout. -```jsx +```jsx title="javascript" //Amount passed in is in cents const AMOUNT = 1000 @@ -81,7 +81,7 @@ These are the values that you can pass into the `checkoutDetails` object to cust ## 4. Create the Button Using the button function, you can make the button. Send the style object, the checkout details, and the action-handling routines. To manage the button's actions, you can write functions. Among them are `onReady`, `onClick`, `onSuccess`, `onError`, and `onCancel`. -```jsx +```jsx title="javascript" const handlePayment = () => { // Function that will be called when a payment is successful const ON_SUCCESS = (response) => { @@ -122,7 +122,6 @@ You pass a single object into the function with the following keys. | onSuccess |function |A function that will be called when the payment is successful. It is passed an object with the following values.
  • last_four (String): The last four digits of the card number or account number.
  • amount (Int): The amount of the transaction (service fee is included).
  • service_fee (Int): The service fee of the transaction.
  • receipt_number (String): The Pay Theory receipt number.
  • brand (String): The brand of the card.
  • created_at (String): The date and time the transaction was created.
  • state (String): The status of the transaction.
  • metadata (JSON): The metadata of the transaction.
  • payor_id (String): The Pay Theory id for the payor that was used for the transaction.
  • payment_method_id (String): The Pay Theory id for the payment method token.
| onBarcode |function |A function that will be called when a barcode is successfully created and the user closes the window. It is passed an object with the following values.
  • barcodeUrl (String): The url for the barcode image.
  • mapUrl (String): The url for the map to find retail locations to pay the barcode.
-*** :::note Setting up a button for multiple payments diff --git a/docs/main/online_payments/qr_code.mdx b/docs/main/online_payments/qr_code.mdx index 0c18e63..fdb7677 100644 --- a/docs/main/online_payments/qr_code.mdx +++ b/docs/main/online_payments/qr_code.mdx @@ -31,7 +31,7 @@ In order to use QR Codes you need be set up to accept online payments. ## Prepare the QR Code Use the code below to generate your QR Code. -```jsx +```jsx title="javascript" //Amount passed in is in cents const AMOUNT = 1000 diff --git a/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx b/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx index 695536f..e8dd0d5 100644 --- a/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx +++ b/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx @@ -24,7 +24,7 @@ This guide will walk you through how to make a one time payment by using the pay ## Create one time payment Sensitive information like credit card numbers or bank account numbers are replaced by the payment token. -```graphql +```graphql title="GraphQL" mutation { createOneTimePayment(amount: Int, merchant_uid: String, @@ -69,7 +69,7 @@ mutation { ## Returns The results presented below show that the query was successfully run and that every token was shown on the terminal in JSON format. -``` json +``` json title="JSON" { "data": { "createOneTimePayment": { diff --git a/docs/main/online_payments/tokenizing/quickstart.mdx b/docs/main/online_payments/tokenizing/quickstart.mdx index 8ec8654..2ab9bdd 100644 --- a/docs/main/online_payments/tokenizing/quickstart.mdx +++ b/docs/main/online_payments/tokenizing/quickstart.mdx @@ -32,7 +32,7 @@ In order to tokenize a payment method you need be set up to accept online paymen ## Run tokenization method This function is used to tokenize a card or bank account. For further transactions, this token may be used in place of the real payment information, lowering the risk involved with keeping and transferring sensitive data. -```jsx +```jsx title="javascript" // optionally provide details about the payor const PAYOR_INFO = { "first_name": "Some", diff --git a/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx b/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx index bda34ab..492a5c7 100644 --- a/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx +++ b/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx @@ -25,7 +25,7 @@ This guide will walk you through calling back payment method tokens for a specif Payment Method Tokens are meant to store info that represents a tokenized Bank Account, Credit Card, or Debit Card. This is what the token object looks like -```jsx +```jsx title="javascript" { payment_method_id: String merchant_uid: String @@ -59,7 +59,7 @@ If you are unfamiliar with query writing, you can learn about fundamental query View Query Details ::: -```graphql +```graphql title="GraphQL" const GET_PAYMENT_METHOD_TOKENS = gql` query paymentMethodTokens(direction: FORWARD, limit: 10, query:{ query_list:[{ diff --git a/docs/main/recurring_payments/create_a_payment_plan.mdx b/docs/main/recurring_payments/create_a_payment_plan.mdx index 53effcf..a91dc1b 100644 --- a/docs/main/recurring_payments/create_a_payment_plan.mdx +++ b/docs/main/recurring_payments/create_a_payment_plan.mdx @@ -9,22 +9,13 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Making a Recurring payment Recurring payments are any repeating transactions that are completed on a periodic basis, such as a car loan, or mortgage. This guide will walk you through how to make a recurring payment plan. ## Create a payment plan A recurring payment represents a payment that will trigger on an interval. You can create a recurring payment with a set number of payments to enable a payment plan for a payor. -```graphql +```graphql title="GraphQL" mutation { createRecurringPayment(input: { amount: Int, @@ -83,7 +74,7 @@ The parameters listed below provide flexibility in query result customization bu ## Returns The call will return the newly created recurring payment. -```JSON +```JSON title="JSON" { "data": { "createRecurringPayment": { @@ -100,29 +91,11 @@ The call will return the newly created recurring payment. } ``` +*** + ## Next Steps You can also refer to [create payment subscription](../recurring_payments/create_a_subscription.mdx) and we can also cancel our recurring payments refer to [cancel the recurring payments](../recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx). - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - - - diff --git a/docs/main/recurring_payments/create_a_subscription.mdx b/docs/main/recurring_payments/create_a_subscription.mdx index a859d3e..a653f64 100644 --- a/docs/main/recurring_payments/create_a_subscription.mdx +++ b/docs/main/recurring_payments/create_a_subscription.mdx @@ -9,14 +9,6 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - # Making a payment using subscription A payment subscription involves paying for ongoing use of a service or product. This guide will walk you through how to make a payment using subscription. @@ -24,7 +16,7 @@ A payment subscription involves paying for ongoing use of a service or product. ## Create a payment plan using subscription You can also create a recurring payment with no set payment amounts to enable a subscription for a payor. -```graphql +```graphql title="GraphQL" mutation { createPaymentSubscription(input: { amount: Int, @@ -81,7 +73,7 @@ The parameters listed below provide flexibility in query result customization bu ## Returns The call will return the newly created recurring payment. -```JSON +```JSON title="JSON" { "data": { "createRecurringPayment": { @@ -98,29 +90,10 @@ The call will return the newly created recurring payment. } ``` +*** ## Next Steps You can also refer to [create recurring payment](../recurring_payments/create_a_payment_plan.mdx) and we can also update our recurring payments information refer to [update the recurring payments](../recurring_payments/manage_recurring_payments/update_recurring_payments.mdx). - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - - - diff --git a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx index dda03f9..c1a61d7 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx @@ -9,22 +9,13 @@ import Tabs from '../../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Cancel Recurring Payment Cancelling recurring payments stops an account from being charged or debited in the future for a service or subscription. This guide will show you how to cancel the recurring payments that will halt the further installments. ## Query to cancel recurring payments The procedure known as "Cancel Recurring Payment" ends planned, recurring payments. In order to halt further installments, users usually take this step, frequently. Once a recurring payment is canceled, it cannot be reactivated. -```graphql +```graphql title="GraphQL" mutation { cancelRecurringPayment(recurring_id: string) } @@ -44,7 +35,7 @@ The following parameter must be used in order for the payment plan to be cancell ## Returns The call will return true if the recurring payment was successfully canceled. -```JSON +```JSON title="JSON" { "data": { @@ -52,25 +43,7 @@ The call will return true if the recurring payment was successfully canceled. } } ``` +*** ## Next Steps You always have the option to [update any information](update_recurring_payments.mdx)pertaining to recurring payments as well as [create a new recurring payments](../create_a_payment_plan.mdx). - - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments/manage_recurring_emails.mdx b/docs/main/recurring_payments/manage_recurring_payments/manage_recurring_emails.mdx deleted file mode 100644 index 1374a93..0000000 --- a/docs/main/recurring_payments/manage_recurring_payments/manage_recurring_emails.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -sidebar_position: 7 -sidebar_label: Manage Recurring Payment Emails -title: "Manage Recurring Payment Emails" -draft: true -sidebar_class_name: hidden - ---- - -Guide Coming Soon - -## API Link -* [Manage Recurring Payment Emails](../../api/recurring) \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx index d69193e..9b3a173 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx @@ -9,15 +9,6 @@ import Tabs from '../../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Get Missed Recurring Payment Data Retrieving missed recurring payment data allows tracking of failed transactions or missed payments within a subscription or service. By following this guide you will learn how to obtain the total amount of payments due as well as the number of missed payments. @@ -25,7 +16,7 @@ Retrieving missed recurring payment data allows tracking of failed transactions ## Obtain Missed Recurring Payment Information This is useful if you want to charge a customer for all missed payments at once when updating their payment method. This will query how many payments have been missed and the total amount of those payments. -```graphql +```graphql title="GraphQL" { query missedRecurringPaymentData(recurring_id: String) { fee @@ -51,7 +42,7 @@ The following parameters must be used in order to get the missed recurring payme ## Returns The information from this call will include the amount the consumer needs to make up for missing payments for a recurring payment option. -```JSON +```JSON title="JSON" { "data": { "missedRecurringPaymentData": { @@ -63,25 +54,8 @@ The information from this call will include the amount the consumer needs to mak } ``` +*** ## Next Steps You always have the option to create [retry for failed recurring payments](retry_failed_recurring_payments.mdx) pertaining to recurring payments as well as [cancel the recurring payments](cancel_recurring_payments.mdx). - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx index 07cc24d..40c9d7f 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx @@ -9,14 +9,6 @@ import Tabs from '../../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - # Retry Failed Recurring Payment Retry failed recurring payments automatically resubmits declined transactions for a subscription or service. This should be used if the payment method on file is still valid, and you want to retry the payment. @@ -29,7 +21,7 @@ Payment has failed because of insufficient funds on the card, but the customer h ## Create a retry for failed payments This call will allow you to retry a payment for a recurring payment that is in a Failed state. This should be used when the state is `INSTRUMENT_FAILURE` and the issue with the payment method has been addressed. -```graphql +```graphql title="GraphQL" mutation { createRetryForFailedRecurringPayment(recurring_id: string) } @@ -49,7 +41,7 @@ The following parameter must be used in order to retry the failed recurring paym ## Returns This returns if the attempt made for retry failed payment is successful or not. -```JSON +```JSON title="JSON" { "data": { @@ -57,25 +49,8 @@ This returns if the attempt made for retry failed payment is successful or not. } } ``` +*** ## Next Steps You always have the choice to either [cancel the recurring payments](cancel_recurring_payments.mdx) or check for any [missed recurring payments](missed_recurring_payment_data.mdx) related to recurring payments. - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - \ No newline at end of file diff --git a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx index 51ec142..d41dda1 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx @@ -10,15 +10,6 @@ import Tabs from '../../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Update Recurring Payment Updating recurring payments allows modifications to payment details, intervals, or amounts for ongoing subscriptions or services. This guide refers to making changes to the specifics of an already-existing regular payment plan, including altering the amounts, intervals, or related data. @@ -30,7 +21,7 @@ It updates the payment method on the recurring payment. If you want to update an ## Create a update recurring payments This call will modify automatic payment plans that are in progress without having to cancel and start over from scratch. -```graphql +```graphql title="GraphQL" mutation { updateRecurringPayment(input: { payment_method_id: String, @@ -82,7 +73,7 @@ The parameters listed below provide flexibility in query result customization bu ## Returns The call will return the updated recurring payment object. -```JSON +```JSON title="JSON" { "data": { "updateRecurringPayment": { @@ -97,26 +88,8 @@ The call will return the updated recurring payment object. } ``` +*** ## Next Steps You always have the option to create [new recurring payments](../create_a_payment_plan.mdx) pertaining to recurring payments as well as [cancel the recurring payments](cancel_recurring_payments.mdx). - - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - \ No newline at end of file diff --git a/docs/main/recurring_payments/overview.mdx b/docs/main/recurring_payments/overview.mdx index fdbd03e..5b77089 100644 --- a/docs/main/recurring_payments/overview.mdx +++ b/docs/main/recurring_payments/overview.mdx @@ -10,15 +10,6 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Recurring Payments Recurring payments are payments that get triggered on a specified interval. The following guides will show you how to create a subscription and a payment plan. @@ -41,27 +32,6 @@ A payment subscription involves paying for ongoing use of a service or product. - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - - - - From 8a3c52e1a640f1c091a8f846d8786a1d77d04b09 Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Mon, 12 Feb 2024 09:47:25 -0500 Subject: [PATCH 15/34] copy update --- docs/main/invoicing_and_billing/update_an_invoice.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/main/invoicing_and_billing/update_an_invoice.mdx b/docs/main/invoicing_and_billing/update_an_invoice.mdx index bad4211..21e015f 100644 --- a/docs/main/invoicing_and_billing/update_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/update_an_invoice.mdx @@ -10,7 +10,7 @@ import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; # Update an Invoice -Updating an invoice involves making changes to the billing or payment information included in the invoice record. This following call will update an existing invoice. +Updating an invoice involves making changes to the billing or payment information included in the invoice record. The following call will update an existing invoice. ```graphql title="GraphQL" mutation { From cee96c7d3d03e11ba4c2c575ecf387ae201565ef Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Mon, 12 Feb 2024 10:07:51 -0500 Subject: [PATCH 16/34] fix: fix for narrative guides --- .../create_an_invoice.mdx | 53 +++++++++++-------- .../create_a_payment_plan.mdx | 50 +++++------------ 2 files changed, 44 insertions(+), 59 deletions(-) diff --git a/docs/main/invoicing_and_billing/create_an_invoice.mdx b/docs/main/invoicing_and_billing/create_an_invoice.mdx index 1a1413e..3a87a09 100644 --- a/docs/main/invoicing_and_billing/create_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/create_an_invoice.mdx @@ -9,45 +9,52 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; -# Create an Invoice -Invoices are used to create a payment request that can be sent to a payor. The call below will create an invoice. +# Create an Invoice +Invoices are used to create a payment request that can be sent to a payor. This guide will walk you through how to create an invoice. + + +## Request + +We are going to create an invoice being sent to Justice Howard. The invoice is for $100.00 and is for landscaping services. ```graphql title="GraphQL" mutation { createInvoice(input:{ - invoice_amount: int, - currency:string, - merchant_uid: string, - payor_id: string + invoice_amount: 10000, + invoice_name: "Landscaping Services", + merchant_uid: "", # Insert your merchant_uid + payor: { + full_name: "Justice Howard", + email: "justice_howard@justice_howard.io" + }, + currency: "USD" }){ - due_by - fee_mode invoice_id - invoice_description invoice_name + invoice_amount } } ``` -## Returns -The call will return the newly created invoice. +:::note View Arguments +View the extensive list of arguments for creating an invoice in our API. + +View All Arguments +::: + + +## Return +The call will return the newly created invoice. The `invoice_id` will be used to track the invoice through our system. + ```JSON title="JSON" { "data": { "createInvoice": { - "due_by": string, - "created_date": string, - "currency": string, - "fee_mode": string, - "invoice_description": string, + "invoice_id": "invoice_id", + "invoice_name": "Landscaping Services", + "invoice_amount": 10000 } } } -``` - -:::note View Arguments -View the extensive list of arguments for creating an invoice in our API. - -View All Arguments -::: +``` \ No newline at end of file diff --git a/docs/main/recurring_payments/create_a_payment_plan.mdx b/docs/main/recurring_payments/create_a_payment_plan.mdx index a91dc1b..486f2e8 100644 --- a/docs/main/recurring_payments/create_a_payment_plan.mdx +++ b/docs/main/recurring_payments/create_a_payment_plan.mdx @@ -18,13 +18,16 @@ A recurring payment represents a payment that will trigger on an interval. You c ```graphql title="GraphQL" mutation { createRecurringPayment(input: { - amount: Int, + amount: 10000, payment_count: Int merchant_uid: String, - payment_interval: PAYMENT_INTERVAL, - payment_method_id: String, - recurring_name: String, - payor: Payor, + payment_interval: MONTHLY, + payment_method_id: "", # Put the payment method id here + recurring_name: "Tech Fees", + payor: { + full_name: "Justice Howard", + email: "justice_howard@justice_howard.io" + } }) { amount_per_payment fee_mode @@ -38,37 +41,12 @@ mutation { } ``` -### Arguments -To create a payment plan, you need to send a request. - -|Key |description | -|---------------|---------------------------| -| createRecurringPayment | This object contains all the details needed to create a recurring payment.| - -### Required Arguments -The following parameters must be used in order for the payment plan to be created successfully. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| amount |int |The amount of the recurring payment.| -| merchant_uid |string |The Pay Theory merchant is a unique identifier for the merchant that is creating the recurring payment.| -| payment_count |int |The total number of payments to be made as part of the recurring schedule.| -| payment_interval |Payment_Interval |The interval of the recurring payment. The following intervals are available:
  • WEEKLY
  • BI_WEEKLY
  • MONTHLY
  • QUARTERLY
  • BI_ANNUAL
  • ANNUAL
| -| payment_method_id |string |The `payment_method_id` of the tokenized payment method that will be used for the recurring payment.| -| payor |Payor |The payor object that the recurring payment will be tied to. This will create a new payor in the system| -| recurring_name |string |Custom name for the recurring payment.| - - -### Optional Arguments -The parameters listed below provide flexibility in query result customization but are not required to create a payment plan. Default values are frequently assigned to them. - -|Key |type |description | -|---------------------|-----------------|--------------------------------------------| -| amount_per_payment |int | The amount of the recurring payment.| -| fee_mode |FeeMode |The fee mode for the recurring payment. SERVICE_FEE charges the fees to the payor. MERCHANT_FEE charges the fees to the merchant. Options are
  • SERVICE_FEE
  • MERCHANT_FEE(default)
| -| recurring_id |string | The pay theory unique identifier assigned to the recurring payment.| -| remaining_payments |int |The amount of the recurring payment that is still owed. This will be null on a recurring date if there is no fixed payment amount.| -| status | Recurring status | The status of the recurring payment.
  • `SYSTEM_FAILURE`: The recurring payment failed due to a system error. Will retry automatically till the system issue is resolved.
  • `INSTRUMENT_FAILURE`: The recurring payment failed due to a payment method error. Will not retry until the payment method is updated.
  • `SUCCESS`: The last payment was successful.
| + +:::note View Parameters +View the extensive list of arguments for creating an invoice in our API. + +View All Arguments +::: *** From 86c2211d4100cea1254e816e584e951b33d789be Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Mon, 12 Feb 2024 16:22:19 -0500 Subject: [PATCH 17/34] Update to docs guide copy in recurring and invoicing sections. Also removed tabs from payment button and qr codes --- .../after_payments/query_settlement_data.mdx | 2 +- .../create_an_invoice.mdx | 23 +++---- .../delete_an_invoice.mdx | 21 ++++-- .../record_an_offline_payment.mdx | 32 +++++---- .../resend_an_invoice_email.mdx | 24 ++++--- .../update_an_invoice.mdx | 28 +++++--- docs/main/online_payments/payment_button.mdx | 40 ++--------- docs/main/online_payments/qr_code.mdx | 43 +++--------- .../online_payments/tokenizing/quickstart.mdx | 4 +- .../create_a_payment_plan.mdx | 44 +++++------- .../create_a_subscription.mdx | 68 +++++-------------- .../cancel_recurring_payments.mdx | 10 +-- .../missed_recurring_payment_data.mdx | 9 ++- .../retry_failed_recurring_payments.mdx | 9 +-- .../update_recurring_payments.mdx | 6 +- 15 files changed, 147 insertions(+), 216 deletions(-) diff --git a/docs/main/after_payments/query_settlement_data.mdx b/docs/main/after_payments/query_settlement_data.mdx index e03e186..a0f70df 100644 --- a/docs/main/after_payments/query_settlement_data.mdx +++ b/docs/main/after_payments/query_settlement_data.mdx @@ -43,7 +43,7 @@ Sending a request is required in order to get query settlement data. To obtain t |-------------------|-------------|---------------------------------------| |limit |int |The number of settlements to return.| |direction | string | The direction of the pagination. Make sure the results are returned in the correct order.
  • FORWARD
  • BACKWARD
| -|query |QueryObject | The query to filter the settlements with. Detailed information about the query object can be found [here](query.mdx).| +|query |QueryObject | The query to filter the settlements with. Detailed information about the query object can be found [here](custom_query.mdx).| ### Required Arguments diff --git a/docs/main/invoicing_and_billing/create_an_invoice.mdx b/docs/main/invoicing_and_billing/create_an_invoice.mdx index 3a87a09..d5bf064 100644 --- a/docs/main/invoicing_and_billing/create_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/create_an_invoice.mdx @@ -12,20 +12,18 @@ import Admonition from '@theme/Admonition'; # Create an Invoice Invoices are used to create a payment request that can be sent to a payor. This guide will walk you through how to create an invoice. - ## Request - -We are going to create an invoice being sent to Justice Howard. The invoice is for $100.00 and is for landscaping services. +The following example will send an invoice to Pat Johnson. The invoice is for $100.00 USD and is for tutoring services. ```graphql title="GraphQL" mutation { createInvoice(input:{ - invoice_amount: 10000, - invoice_name: "Landscaping Services", - merchant_uid: "", # Insert your merchant_uid + invoice_amount: 10000, # Amount in pennies + invoice_name: "Tutoring Services", + merchant_uid: "", # Insert merchant_uid payor: { - full_name: "Justice Howard", - email: "justice_howard@justice_howard.io" + full_name: "Pat Johnson", + email: "patjohnson1234@pat_johnson.io" }, currency: "USD" }){ @@ -37,12 +35,13 @@ mutation { ``` -:::note View Arguments -View the extensive list of arguments for creating an invoice in our API. +:::note Additional Parameters +View the extensive list of parameters for creating an invoice in our API. -View All Arguments +View All Parameters ::: +*** ## Return The call will return the newly created invoice. The `invoice_id` will be used to track the invoice through our system. @@ -52,7 +51,7 @@ The call will return the newly created invoice. The `invoice_id` will be used to "data": { "createInvoice": { "invoice_id": "invoice_id", - "invoice_name": "Landscaping Services", + "invoice_name": "Pat Johnson", "invoice_amount": 10000 } } diff --git a/docs/main/invoicing_and_billing/delete_an_invoice.mdx b/docs/main/invoicing_and_billing/delete_an_invoice.mdx index d28cfaf..299764e 100644 --- a/docs/main/invoicing_and_billing/delete_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/delete_an_invoice.mdx @@ -10,13 +10,24 @@ import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; # Delete an Invoice -Deleting an invoice permenantly erases an invoice's transaction history from the database. The call below will delete an invoice. +Deleting an invoice permenantly erases an invoice's transaction history from the database. The guide below will delete an invoice. + +## Request +Insert the appropriate `invoice_id` below to delete an invoice. ```graphql title="GraphQL" mutation { - deleteInvoice(invoice_id: string) -} + deleteInvoice( + invoice_id: "" # Insert invoice_id +)} ``` +:::note Additional Parameters +View the extensive list of parameters for deleting an invoice in our API. + +View All Parameters +::: + +*** ## Return If the invoice is deleted and the call will return true. @@ -29,9 +40,5 @@ If the invoice is deleted and the call will return true. } ``` -:::note View Arguments -View the extensive list of arguments for deleting an invoice in our API. -View All Arguments -::: diff --git a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx index 7fef9dd..b99601c 100644 --- a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx +++ b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx @@ -10,24 +10,34 @@ import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; # Record an Offline Payment - Offline transactions are used to track payments that are made outside Pay Theory towards an Invoice. This call is used to create an offline transaction for an invoice. + Offline transactions are used to track payments that are made outside Pay Theory towards an Invoice. This guide will demonstrate how to create an offline transaction for an invoice. + +## Request +In this example the payor has made a cash payment offline for $100.00. Insert the correlating `invoice_id` into the code below to record an offline payment. ```graphql title="GraphQL" mutation { createOfflineTransaction(input: { - amount:int - invoice_id: string - type: OfflineTransactionType, - transaction_date: string + amount: 10000 # Amount in pennies + invoice_id: "" # Insert invoice_id + type: CASH, # Reference OfflineTransactionType + transaction_date: "2022-09-19" }){ amount type - note } } ``` +:::note Additional Parameters +View the extensive list of parameters for recording an offline payment in our API. + +View All Parameters +::: + +*** + ## Returns The response will contain the offline transaction object that was created. @@ -35,16 +45,10 @@ The response will contain the offline transaction object that was created. { "data": { "createOfflineTransaction": { - "amount": int, - "type": "OfflineTransactionType", - "note": string + "amount": 10000, + "type": CASH, } } } ``` -:::note View Arguments -View the extensive list of arguments for recording an offline payment in our API. - -View All Arguments -::: \ No newline at end of file diff --git a/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx b/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx index d2af57d..0a5a2a4 100644 --- a/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx +++ b/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx @@ -11,15 +11,26 @@ import Admonition from '@theme/Admonition'; # Resend an Invoice Email -The call below will resend an invoice's email. +The guide below will resend an invoice's email. -```graphql title="GraphQL" +## Request +Insert the appropriate invoice ID into the request below to resend the invoice's email. +```graphql title="GraphQL" mutation { - createInvoiceEmail(invoice_id: String) -} + createInvoiceEmail( + invoice_id: "" # Insert invoice_id +)} ``` +:::note Additional Parameters +View the extensive list of parameters for resending an invoice email in our API. + +View All Parameters +::: + +*** + ## Return The response will include a boolean value that will be true if the email was sent successfully. @@ -31,8 +42,3 @@ The response will include a boolean value that will be true if the email was sen } ``` -:::note View Arguments -View the extensive list of arguments for resending an invoice email in our API. - -View All Arguments -::: \ No newline at end of file diff --git a/docs/main/invoicing_and_billing/update_an_invoice.mdx b/docs/main/invoicing_and_billing/update_an_invoice.mdx index 21e015f..66b27a2 100644 --- a/docs/main/invoicing_and_billing/update_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/update_an_invoice.mdx @@ -10,19 +10,30 @@ import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; # Update an Invoice -Updating an invoice involves making changes to the billing or payment information included in the invoice record. The following call will update an existing invoice. +Updating an invoice involves making changes to the billing or payment information included in the invoice record. The following guide will demonstrate how to update an existing invoice. + +## Request +This example calls an invoice, determined by the `invoice_id`, and will update `invoice_description` and `due_by` parameters. ```graphql title="GraphQL" mutation { - updateInvoice(invoice_id: string, invoice_update_input:{ - invoice_description: string, - currency: "USD", - due_by: "2022-09-19" - + updateInvoice( + invoice_id: "", # Insert invoice_id + invoice_update_input:{ + invoice_description: "I updated the invoice's description", + due_by: "2022-09-19" }) } ``` +:::note Additional Parameters +View the extensive list of parameters for updating an invoice in our API. + +View All Parameters +::: + +*** + ## Return If the invoice is updated, the call will return true. @@ -33,8 +44,3 @@ If the invoice is updated, the call will return true. } } ``` -:::note View Arguments -View the extensive list of arguments for updating an invoice in our API. - -View All Arguments -::: diff --git a/docs/main/online_payments/payment_button.mdx b/docs/main/online_payments/payment_button.mdx index 315ef75..d60123a 100644 --- a/docs/main/online_payments/payment_button.mdx +++ b/docs/main/online_payments/payment_button.mdx @@ -7,15 +7,6 @@ title: "" import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - # Payment Button @@ -59,16 +50,16 @@ const CHECKOUT_DETAILS = { recurringId: "pt_rec_XXXXXXXXX", } ``` -These are the values that you can pass into the `checkoutDetails` object to customize the checkout page that opens when the button is clicked. +These are the parameters that you can pass into the `checkoutDetails` object to customize the checkout page that opens when the button is clicked. -### Required values: +### Required parameters: |Key |type |description | --------------------|-------------------|-------------------------------------------------------------------------------------------| | amount |int |The amount of the payment in cents. | | paymentName |string |The name of the payment that will be displayed on the checkout page. Will also be passed in to the reference field of the transaction.| -### Optional values: +### Optional parameters: |Key |type |description | --------------------------|-------------------|-------------------------------------------------------------------------------------------| @@ -102,16 +93,16 @@ paytheory.button({ }; ``` -These are the values that you can pass into the `button` function to customize the payment session. +These are the parameters that you can pass into the `button` function to customize the payment session. You pass a single object into the function with the following keys. -### Required values +### Required parameters |Key |type |description | --------------------------|-------------------|-------------------------------------------------------------------------------------------| | apiKey |string |The API key for your Pay Theory account. You can find this in your Pay Theory Portal.| | checkoutDetails |object |The details for the checkout page that opens when the button is clicked. Details are mentioned [above](#prepare-the-checkout-details).| -### Optional values +### Optional parameters |Key |type |description | --------------------------|-------------------|-------------------------------------------------------------------------------------------| @@ -128,22 +119,3 @@ You pass a single object into the function with the following keys. The button session will only enable a single payment. If you want to enable multiple payments, you will need to clear the button from the DOM and create a new button. ::: - - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - \ No newline at end of file diff --git a/docs/main/online_payments/qr_code.mdx b/docs/main/online_payments/qr_code.mdx index fdb7677..b0d10c1 100644 --- a/docs/main/online_payments/qr_code.mdx +++ b/docs/main/online_payments/qr_code.mdx @@ -1,6 +1,6 @@ --- sidebar_position: 5 -sidebar_label: 'QR Codes' +sidebar_label: 'QR Code' title: "" --- @@ -9,16 +9,7 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; - - - -# QR Codes +# QR Code This guide will show you how to generate QR codes that will take users to your checkout. This function initializes a payment session based on the checkoutDetails you pass in. This QR Code will open a hosted checkout page that will allow the user to select a payment method and complete the payment. @@ -64,16 +55,16 @@ paytheory.qrCode(OPTIONS) ## Customizing your QR code -The following values can be passed into the qrCode function to customize the payment session. +The following parameters can be passed into the qrCode function to customize the payment session. You will pass a single object into the function with the following keys. -### Required Values: +### Required parameters: |Key |type |description | --------------------------|-------------------|-------------------------------------------------------------------------------------------| | apiKey |string |The API key for your Pay Theory account. You can find this in your Pay Theory Portal.| | checkoutDetails |object |The details for the checkout page that opens when the qrCode is scanned. Details Below.| -### Optional Values +### Optional parameters |Key |type |description | --------------------------|-------------------|-------------------------------------------------------------------------------------------| @@ -86,16 +77,16 @@ You will pass a single object into the function with the following keys. ## Customizing checkout details -The following values can be passed into the checkoutDetails object to customize the checkout page that opens when the qrCode is scanned. +The following parameters can be passed into the checkoutDetails object to customize the checkout page that opens when the qrCode is scanned. -### Required values: +### Required parameters: |Key |type |description | --------------------|-------------------|-------------------------------------------------------------------------------------------| | amount |int |The amount of the payment in cents. | | paymentName |string |The name of the payment that will be displayed on the checkout page. Will also be passed in to the reference field of the transaction.| -### Optional values: +### Optional parameters: |Key |type |description | --------------------------|-------------------|-------------------------------------------------------------------------------------------| @@ -110,21 +101,3 @@ The following values can be passed into the checkoutDetails object to customize You may also make reference to various payment methods like [ACH](ach_payments.mdx) and [Cash](cash_payments.mdx) capability. - - - -# Documentation Coming Soon -Our Apple SDK is fully functional. If you would like to implement our Apple SDK select the link below for more information. -View Apple SDK Reference - - - - - -# Documentation Coming Soon -Our Android SDK is fully functional. If you would like to implement our Android SDK select the link below for more information. -View Android SDK Reference - - - - diff --git a/docs/main/online_payments/tokenizing/quickstart.mdx b/docs/main/online_payments/tokenizing/quickstart.mdx index 2ab9bdd..1fd20a8 100644 --- a/docs/main/online_payments/tokenizing/quickstart.mdx +++ b/docs/main/online_payments/tokenizing/quickstart.mdx @@ -45,8 +45,8 @@ const TOKENIZE_PAYMENT_METHOD_PARAMETERS = { paytheory.tokenizePaymentMethod(TOKENIZE_PAYMENT_METHOD_PARAMETERS) ``` -### Optional values that can be passed into your payment method token -These are the values that you can pass into the tokenizePaymentMethod function to tokenize a card or bank account. +### Optional parameters that can be passed into your payment method token +These are the parameters that you can pass into the tokenizePaymentMethod function to tokenize a card or bank account. |Key |type |description | --------------------|-------------------|----------------------------------------------------------| diff --git a/docs/main/recurring_payments/create_a_payment_plan.mdx b/docs/main/recurring_payments/create_a_payment_plan.mdx index 486f2e8..73eb6bd 100644 --- a/docs/main/recurring_payments/create_a_payment_plan.mdx +++ b/docs/main/recurring_payments/create_a_payment_plan.mdx @@ -9,43 +9,39 @@ import Tabs from '../../../components/Tabs'; import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; -# Making a Recurring payment +# Create a Payment Plan Recurring payments are any repeating transactions that are completed on a periodic basis, such as a car loan, or mortgage. This guide will walk you through how to make a recurring payment plan. -## Create a payment plan -A recurring payment represents a payment that will trigger on an interval. You can create a recurring payment with a set number of payments to enable a payment plan for a payor. +## Request +In the following example Pat Johnson purchassed a lawn mower for $1000.00. However he was unable to make the entire payment so he opted for a payment plan. In this example, his total payment of $1000.00 will be split up into 10 payments of $100.00. The payments will be collected from Pat Johnson's tokenized payment method every month, and will continue until the all 10 payments are complete. ```graphql title="GraphQL" mutation { createRecurringPayment(input: { - amount: 10000, - payment_count: Int - merchant_uid: String, - payment_interval: MONTHLY, - payment_method_id: "", # Put the payment method id here - recurring_name: "Tech Fees", + amount: 10000, # Amount in pennies + payment_count: 10, + merchant_uid: "", # Insert merchant_uid + payment_interval: MONTHLY, + payment_method_id: "", # Insert tokenized payment method + recurring_name: "Lawn Mower", payor: { - full_name: "Justice Howard", - email: "justice_howard@justice_howard.io" + full_name: "Pat Johnson", + email: "patjohnson@pat_johnson.io" } }) { amount_per_payment - fee_mode - fee_per_payment - next_payment_date payment_interval recurring_id remaining_payments - statuts } } ``` -:::note View Parameters -View the extensive list of arguments for creating an invoice in our API. +:::note Additional Parameters +View the extensive list of parameters for recurring payments in our API. -View All Arguments +View All Parameters ::: *** @@ -56,14 +52,10 @@ The call will return the newly created recurring payment. { "data": { "createRecurringPayment": { - "amount_per_payment": Int, - "fee_mode": "MERCHANT_FEE", - "fee_per_payment": Int, - "payment_interval": "WEEKLY", - "recurring_description": null, - "recurring_id": String, - "remaining_payments": Int, - "status": "SUCCESS", + "amount_per_payment": 10000, + "payment_interval": "MONTHLY", + "recurring_id": "pt_rec_XXXXXXXXX", + "remaining_payments": 9 } } } diff --git a/docs/main/recurring_payments/create_a_subscription.mdx b/docs/main/recurring_payments/create_a_subscription.mdx index a653f64..69c7f45 100644 --- a/docs/main/recurring_payments/create_a_subscription.mdx +++ b/docs/main/recurring_payments/create_a_subscription.mdx @@ -13,61 +13,34 @@ import Admonition from '@theme/Admonition'; # Making a payment using subscription A payment subscription involves paying for ongoing use of a service or product. This guide will walk you through how to make a payment using subscription. -## Create a payment plan using subscription -You can also create a recurring payment with no set payment amounts to enable a subscription for a payor. +## Request +In this example, Pat Johnson has purchased an ongoing subscription to Lawncare Digest. Pat will be charged $5.00 every month from his tokendized method on file, until he cancels his subscription. ```graphql title="GraphQL" mutation { createPaymentSubscription(input: { - amount: Int, - merchant_uid: String, - payment_interval: PAYMENT_INTERVAL, - payment_method_id: String, - recurring_name: String, - payor: Payor, + amount: 500, # Amount in pennies + merchant_uid: "", # Insert merchant_uid + payment_interval: MONTHLY, + payment_method_id: "", # Insert tokenized payment method + recurring_name: "Lawncare Digest", + payor: { + full_name: "Pat Johnson", + email: "patjohnson@pat_johnson.io" + } }) { amount_per_payment - fee_mode - fee_per_payment - next_payment_date payment_interval recurring_id - remaining_payments - statuts } } ``` -### Arguments -To create a payment subscription plan, you need to send a request. +:::note Additional Parameters +View the extensive list of parameters for recurring payments in our API. -|Key |description | -|---------------|---------------------------| -| createPaymentSubscription | This object contains all the details needed to create a payment subscription.| - -### Required Arguments -The following parameters must be used in order for the subscription plan to be created successfully. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| amount |int |The amount of the recurring payment.| -| merchant_uid |string |The Pay Theory merchant is a unique identifier for the merchant that is creating the recurring payment.| -| payment_interval |Payment_Interval |The interval of the recurring payment. The following intervals are available:
  • WEEKLY
  • BI_WEEKLY
  • MONTHLY
  • QUARTERLY
  • BI_ANNUAL
  • ANNUAL
| -| payment_method_id |string |The `payment_method_id` of the tokenized payment method that will be used for the recurring payment.| -| payor |Payor |The payor object that the recurring payment will be tied to. This will create a new payor in the system| -| recurring_name |string |Custom name for the recurring payment.| - - -### Optional Arguments -The parameters listed below provide flexibility in query result customization but are not required to create a subscription plan. Default values are frequently assigned to them. - -|Key |type |description | -|---------------------|-----------------|--------------------------------------------| -| amount_per_payment |int | The amount of the recurring payment.| -| fee_mode |FeeMode |The fee mode for the recurring payment. SERVICE_FEE charges the fees to the payor. MERCHANT_FEE charges the fees to the merchant. Options are
  • SERVICE_FEE
  • MERCHANT_FEE(default)
| -| recurring_id |string | The pay theory unique identifier assigned to the recurring payment.| -| remaining_payments |int |The amount of the recurring payment that is still owed. This will be null on a recurring date if there is no fixed payment amount.| -| status | Recurring status | The status of the recurring payment.
  • `SYSTEM_FAILURE`: The recurring payment failed due to a system error. Will retry automatically till the system issue is resolved.
  • `INSTRUMENT_FAILURE`: The recurring payment failed due to a payment method error. Will not retry until the payment method is updated.
  • `SUCCESS`: The last payment was successful.
| +View All Parameters +::: *** @@ -77,14 +50,9 @@ The call will return the newly created recurring payment. { "data": { "createRecurringPayment": { - "amount_per_payment": Int, - "fee_mode": "MERCHANT_FEE", - "fee_per_payment": Int, - "payment_interval": "WEEKLY", - "recurring_description": null, - "recurring_id": String, - "remaining_payments": Int, - "status": "SUCCESS", + "amount_per_payment": 500, + "payment_interval": "MONTHLY", + "recurring_id": "pt_rec_XXXXXXXXX", } } } diff --git a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx index c1a61d7..3695731 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx @@ -12,17 +12,17 @@ import Admonition from '@theme/Admonition'; # Cancel Recurring Payment Cancelling recurring payments stops an account from being charged or debited in the future for a service or subscription. This guide will show you how to cancel the recurring payments that will halt the further installments. -## Query to cancel recurring payments +## Request The procedure known as "Cancel Recurring Payment" ends planned, recurring payments. In order to halt further installments, users usually take this step, frequently. Once a recurring payment is canceled, it cannot be reactivated. ```graphql title="GraphQL" mutation { - cancelRecurringPayment(recurring_id: string) -} - + cancelRecurringPayment( + recurring_id: "" # Insert recurring_id +)} ``` -### Required Arguments +### Required Parameters The following parameter must be used in order for the payment plan to be cancelled successfully. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. |Key |type | description | diff --git a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx index 9b3a173..95eed22 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx @@ -13,12 +13,15 @@ import Admonition from '@theme/Admonition'; Retrieving missed recurring payment data allows tracking of failed transactions or missed payments within a subscription or service. By following this guide you will learn how to obtain the total amount of payments due as well as the number of missed payments. -## Obtain Missed Recurring Payment Information +## Request This is useful if you want to charge a customer for all missed payments at once when updating their payment method. This will query how many payments have been missed and the total amount of those payments. ```graphql title="GraphQL" { - query missedRecurringPaymentData(recurring_id: String) { + query missedRecurringPaymentData( + recurring_id: "" # Insert recurring_id + ) + { fee number_of_payments_missed total_amount_owed @@ -26,7 +29,7 @@ This is useful if you want to charge a customer for all missed payments at once } ``` -### Required Arguments +### Required Parameters The following parameters must be used in order to get the missed recurring payment data information. |Key |type | description | diff --git a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx index 40c9d7f..140424e 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx @@ -18,17 +18,18 @@ Payment has failed because of insufficient funds on the card, but the customer h ::: -## Create a retry for failed payments +## Request This call will allow you to retry a payment for a recurring payment that is in a Failed state. This should be used when the state is `INSTRUMENT_FAILURE` and the issue with the payment method has been addressed. ```graphql title="GraphQL" mutation { - createRetryForFailedRecurringPayment(recurring_id: string) -} + createRetryForFailedRecurringPayment( + recurring_id: "" # Insert recurring_id +)} ``` -### Required Arguments +### Required Parameters The following parameter must be used in order to retry the failed recurring payment data. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. |Key |type | description | diff --git a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx index d41dda1..ca670f8 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx @@ -18,14 +18,14 @@ It updates the payment method on the recurring payment. If you want to update an ::: -## Create a update recurring payments +## Request This call will modify automatic payment plans that are in progress without having to cancel and start over from scratch. ```graphql title="GraphQL" mutation { updateRecurringPayment(input: { payment_method_id: String, - recurring_id: String, + recurring_id: "", # Insert recurring_id }) { fee_mode @@ -40,7 +40,7 @@ mutation { } ``` -### Arguments +### Parameters To update a recurring payment, you need to send a request. |Key | description | From 9f4f929acca441fbb500c0738eb3b82fe9bed87a Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Mon, 12 Feb 2024 16:24:41 -0500 Subject: [PATCH 18/34] Updated Retruns to Return --- docs/main/invoicing_and_billing/record_an_offline_payment.mdx | 2 +- docs/main/recurring_payments/create_a_payment_plan.mdx | 2 +- docs/main/recurring_payments/create_a_subscription.mdx | 2 +- .../manage_recurring_payments/cancel_recurring_payments.mdx | 2 +- .../manage_recurring_payments/missed_recurring_payment_data.mdx | 2 +- .../retry_failed_recurring_payments.mdx | 2 +- .../manage_recurring_payments/update_recurring_payments.mdx | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx index b99601c..902c4fc 100644 --- a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx +++ b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx @@ -38,7 +38,7 @@ View the extensive list of parameters for recording an offline payment in our AP *** -## Returns +## Return The response will contain the offline transaction object that was created. ```JSON title="JSON" diff --git a/docs/main/recurring_payments/create_a_payment_plan.mdx b/docs/main/recurring_payments/create_a_payment_plan.mdx index 73eb6bd..df997b0 100644 --- a/docs/main/recurring_payments/create_a_payment_plan.mdx +++ b/docs/main/recurring_payments/create_a_payment_plan.mdx @@ -46,7 +46,7 @@ View the extensive list of parameters for recurring payments in our API. *** -## Returns +## Return The call will return the newly created recurring payment. ```JSON title="JSON" { diff --git a/docs/main/recurring_payments/create_a_subscription.mdx b/docs/main/recurring_payments/create_a_subscription.mdx index 69c7f45..832cc48 100644 --- a/docs/main/recurring_payments/create_a_subscription.mdx +++ b/docs/main/recurring_payments/create_a_subscription.mdx @@ -44,7 +44,7 @@ View the extensive list of parameters for recurring payments in our API. *** -## Returns +## Return The call will return the newly created recurring payment. ```JSON title="JSON" { diff --git a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx index 3695731..97504f2 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx @@ -32,7 +32,7 @@ The following parameter must be used in order for the payment plan to be cancell *** -## Returns +## Return The call will return true if the recurring payment was successfully canceled. ```JSON title="JSON" diff --git a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx index 95eed22..a33e190 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx @@ -42,7 +42,7 @@ The following parameters must be used in order to get the missed recurring payme *** -## Returns +## Return The information from this call will include the amount the consumer needs to make up for missing payments for a recurring payment option. ```JSON title="JSON" diff --git a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx index 140424e..10b0d01 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx @@ -39,7 +39,7 @@ The following parameter must be used in order to retry the failed recurring paym *** -## Returns +## Return This returns if the attempt made for retry failed payment is successful or not. ```JSON title="JSON" diff --git a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx index ca670f8..5fe93ce 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx @@ -70,7 +70,7 @@ The parameters listed below provide flexibility in query result customization bu *** -## Returns +## Return The call will return the updated recurring payment object. ```JSON title="JSON" From b2df571e582f84b81ff5d569c76a0a503dd865db Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Mon, 12 Feb 2024 17:23:01 -0500 Subject: [PATCH 19/34] chore: updated API docs to use tables for easier readability --- docs/api/authorization.md | 236 +++++---------- docs/api/dispute.md | 126 +++----- docs/api/invoice.md | 432 +++++++++------------------ docs/api/merchant.md | 183 ++++-------- docs/api/metadata.md | 59 +--- docs/api/payment_links.md | 366 ++++++++--------------- docs/api/payment_method_token.md | 265 ++++++----------- docs/api/payor.md | 154 ++++------ docs/api/query.md | 111 +++---- docs/api/recurring.md | 496 +++++++++---------------------- docs/api/settlement.md | 94 ++---- docs/api/transaction.md | 430 ++++++++++----------------- docs/api/users.md | 94 +++--- 13 files changed, 1038 insertions(+), 2008 deletions(-) diff --git a/docs/api/authorization.md b/docs/api/authorization.md index 535370e..5117b89 100644 --- a/docs/api/authorization.md +++ b/docs/api/authorization.md @@ -9,7 +9,7 @@ title: "" An authorization is used to reserve funds on a card for a future transaction. It is not a charge, but it does reserve the funds on the card for a period of time. The authorization will expire after a period of time if it is not captured. *Authorizations are currently only available for certain processors. Please contact Pay Theory for more information.* - +*** ## The Authorization Object ```graphql @@ -37,71 +37,30 @@ An authorization is used to reserve funds on a card for a future transaction. I } ``` -**`account_code`: String** -Custom defined value passed in as the account code for the authorization. - -**`amount`: Int!** -The amount of the authorization in cents. - -**`authorization_date`: AWSDateTime!** -The date and time the authorization was created. - -**`authorization_id`: String!** -The Pay Theory unique identifier assigned to the authorization. - -**`captured_amount`: Int** -The amount of the authorization that has been captured. - -**`currency`: String!** -The currency of the authorization. Currently only `USD` is supported. - -**`expiration_date`: AWSDateTime** -The date and time the authorization will expire. - -**`failure_reasons`: [String]** -Array of failure reasons for the authorization. If the authorization is successful, this will be null. - -**`fee_mode`: FeeMode!** -The fee mode for the authorization. It can be one of the following: -* `SERVICE_FEE` -* `MERCHANT_FEE` - -**`fees`: Int!** -The amount of fees for the authorization in cents. - -**`invoice`: Invoice** -The invoice object for the invoice that the authorization belongs to. More information on the invoice object can be found [here](invoice.md). - -**`merchant_uid`: String!** -The Pay Theory unique identifier assigned to the merchant that the authorization belongs to. - -**`metadata`: AWSJSON** -Any additional data that was stored with the authorization. - -**`payment_method`: PaymentMethodToken!** -The payment method token object for the payment method that the authorization belongs to. More information on the payment method token object can be found [here](payment_method_token.md). - -**`reference`: String** -Custom defined value passed in as the reference for the authorization. - -**`sale_id`: String** -The Pay Theory unique identifier assigned to the sale that the authorization belongs to. Sales can be used to tie together multiple auths and captures. - -**`status`: AuthorizationStatus!** -The status of the authorization. It can be one of the following: -* `CANCELLED` -* `FAILED` -* `SUCCEEDED` - -**`timezone`: String** -The timezone of the authorization. - -**`transaction_id`: String** -The Pay Theory unique identifier assigned to the transaction that is created when the authorization is captured. - -**`updated_row_at`: AWSDateTime** -The date and time the authorization was last updated. - +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|account_code |String |Custom defined value passed in as the account code for the authorization.| +|amount |Int! |The amount of the authorization in cents.| +|authorization_date |AWSDateTime! |The date and time the authorization was created.| +|authorization_id |String! |The Pay Theory unique identifier assigned to the authorization.| +|captured_amount |Int |The amount of the authorization that has been captured.| +|currency |String! |The currency of the authorization. Currently only `USD` is supported.| +|expiration_date |AWSDateTime |The date and time the authorization will expire.| +|failure_reasons |[String] |Array of failure reasons for the authorization. If the authorization is successful, this will be null.| +|fee_mode |FeeMode! |The fee mode for the authorization. It can be one of the following: `SERVICE_FEE`, `MERCHANT_FEE`| +|fees |Int! |The amount of fees for the authorization in cents.| +|invoice |Invoice |The invoice object for the invoice that the authorization belongs to. More information on the invoice object can be found [here](invoice.md).| +|merchant_uid |String! |The Pay Theory unique identifier assigned to the merchant that the authorization belongs to.| +|metadata |AWSJSON |Any additional data that was stored with the authorization.| +|payment_method |PaymentMethodToken!|The payment method token object for the payment method that the authorization belongs to. More information on the payment method token object can be found [here](payment_method_token.md).| +|reference |String |Custom defined value passed in as the reference for the authorization.| +|sale_id |String |The Pay Theory unique identifier assigned to the sale that the authorization belongs to. Sales can be used to tie together multiple auths and captures.| +|status |AuthorizationStatus!|The status of the authorization. It can be one of the following: `CANCELLED`, `FAILED`, `SUCCEEDED`| +|timezone |String |The timezone of the authorization.| +|transaction_id |String |The Pay Theory unique identifier assigned to the transaction that is created when the authorization is captured.| +|updated_row_at |AWSDateTime |The date and time the authorization was last updated.| + +*** ## Query Authorizations ```graphql @@ -142,32 +101,23 @@ The date and time the authorization was last updated. } ``` -**Arguments** - -**`limit`: Int** -The number of authorizations to return. +**Parameters** -**`direction`: String** -The direction of the pagination. Makes sure the results are returned in the correct order. -* `FORWARD` -* `BACKWARD` +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|limit |Int |The number of authorizations to return.| +|direction |String |The direction of the pagination. Makes sure the results are returned in the correct order.| +|offset |String |The value of the offset item for which the list is being sorted. If the direction is `FORWARD`, the offset item is the last item in the previous list. If the direction is `BACKWARD`, the offset is the first item in the previous list.| +|offset_id |String |The `authorization_id` of the offset item. If the direction is `FORWARD`, the offset item is the last item in the list. If the direction is `BACKWARD`, the offset is the first item in the list.| +|query |QueryObject |The query to filter the authorizations with based on Pay Theory defined data. Detailed information about the query object can be found [here](query).| -**`offset`: String** -The value of the offset item for which the list is being sorted. -If the direction is `FORWARD`, the offset item is the last item in the previous list. -If the direction is `BACKWARD`, the offset is the first item in the previous list. -**`offset_id`: String** -The `authorization_id` of the offset item. If the direction is `FORWARD`, the offset item is the last item in the list. If the direction is `BACKWARD`, the offset is the first item in the list. +**Nested Queries** +Authorizations can also be filtered by passing a query_list to the metadata, payment method, or payor tied to the payment method. -**`query`: QueryObject** -The query to filter the authorizations with based on Pay Theory defined data. Detailed information about the query object can be found [here](query). - -**Nested Arguments** -#### Metadata, PaymentMethod, PaymentMethod/Payor -**`query_list`: QueryPair[]** -The query list to filter the Metadata, Payment Method, or Payor tied to the Payment Method. This will ensure that only Authorizations that have Metadata, Payment Methods, or Payors that match these queries. Detailed information about the query list can be found [here](query). +This will only return Authorizations that have Metadata, Payment Methods, or Payors that match these queries. Detailed information about the query list can be found [here](query). +*** ## Create Authorization ```graphql @@ -190,58 +140,29 @@ mutation { } ``` -**Arguments** - -**`account_code`: String** -Custom defined value passed in as the account code for the authorization. - -**`amount`: Int!** -The amount of the authorization in cents. - -**`fee`: Int** -The amount of the service fee in cents. - -**`fee_mode`: FeeMode!** -The fee mode for the authorization. It can be one of the following: -* `SERVICE_FEE` -* `MERCHANT_FEE` - -**`health_expense_type`: HealthExpenseType** -The health expense type for the authorization. It can be one of the following: -* `CLINICAL` -* `COPAY` -* `DENTAL` -* `HEALTHCARE` -* `RX` -* `TRANSIT` -* `VISION` - -**`invoice_id`: String** -The Pay Theory unique identifier assigned to the invoice that the authorization belongs to. - -**`merchant_uid`: String!** -The Pay Theory unique identifier assigned to the merchant that the authorization belongs to. - -**`metadata`: AWSJSON** -Any additional data that should be stored with the authorization. - -**`payment_method`: PaymentMethodInput** -The payment method input object for the payment method that will be used for the authorization. More information on the payment method input object can be found [here](payment_method_token.md#payment-method-input-object). -*You must be PCI L1 compliant to use this. For more details contact support@paytheory.com* - -**`payment_method_id`: String** -The Pay Theory unique identifier assigned to the payment method that will be used for the authorization. +**Parameters** -**`reference`: String** -Custom defined value passed in as the reference for the authorization. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|account_code |String |Custom defined value passed in as the account code for the authorization.| +|amount |Int! |The amount of the authorization in cents.| +|fee |Int |The amount of the service fee in cents.| +|fee_mode |FeeMode! |The fee mode for the authorization. It can be one of the following: `SERVICE_FEE`, `MERCHANT_FEE`| +|health_expense_type|HealthExpenseType|The health expense type for the authorization. It can be one of the following: `CLINICAL`, `COPAY`, `DENTAL`, `HEALTHCARE`, `RX`, `TRANSIT`, `VISION`| +|invoice_id |String |The Pay Theory unique identifier assigned to the invoice that the authorization belongs to.| +|merchant_uid |String! |The Pay Theory unique identifier assigned to the merchant that the authorization belongs to.| +|metadata |AWSJSON |Any additional data that should be stored with the authorization.| +|payment_method |PaymentMethodInput|The payment method input object for the payment method that will be used for the authorization. More information on the payment method input object can be found [here](payment_method_token.md#payment-method-input-object).| +|payment_method_id |String |The Pay Theory unique identifier assigned to the payment method that will be used for the authorization.| +|reference |String |Custom defined value passed in as the reference for the authorization.| +|sale_id |String |The Pay Theory unique identifier assigned to the sale that the authorization belongs to. Sales can be used to tie together multiple auths and captures.| -**`sale_id`: String** -The Pay Theory unique identifier assigned to the sale that the authorization belongs to. Sales can be used to tie together multiple auths and captures. **Returns** The authorization object. Refer to the [Authorization Object](#the-authorization-object) for more info. +*** ## Capture Authorization ```graphql @@ -260,41 +181,24 @@ mutation { ``` -**Arguments** +**Parameters** -**`allow_exceeded_amount`: Boolean** -Whether to allow the capture to exceed the amount of the authorization. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|allow_exceeded_amount|Boolean |Whether to allow the capture to exceed the amount of the authorization.

If this is set to `true` Pay Theory will release the hold on the current auth and create a new auth for the amount of the capture.

If this is set to `false` or left blank, the capture will fail if the amount is greater than the amount of the authorization.| +|allow_reauth |Boolean |Whether to allow the capture to be reauthorized in the case that it is expired.

If this is set to `true` Pay Theory will reauthorize the capture if it is expired.

If this is set to `false` or left blank, the capture will fail if it is expired.| +|amount |Int! |The amount of the capture in cents.| +|authorization_id |String! |The Pay Theory unique identifier assigned to the authorization that you are looking to capture.| +|merchant_uid |String! |The Pay Theory unique identifier assigned to the merchant that the authorization belongs to.| +|receipt_description|String |A custom description that will be displayed on the receipt.| +|send_receipt |Boolean |Can be set to `true` to send a receipt to the payor.| -If this is set to true Pay Theory will release the hold on the current auth and create a new auth for the amount of the capture. - -If this is set to false or left blank, the capture will fail if the amount is greater than the amount of the authorization. - -**`allow_reauth`: Boolean** -Whether to allow the capture to be reauthorized in the case that it is expired. - -If this is set to true Pay Theory will reauthorize the capture if it is expired. - -If this is set to false or left blank, the capture will fail if it is expired. - -**`amount`: Int!** -The amount of the capture in cents. - -**`authorization_id`: String!** -The Pay Theory unique identifier assigned to the authorization that you are looking to capture. - -**`merchant_uid`: String!** -The Pay Theory unique identifier assigned to the merchant that the authorization belongs to. - -**`receipt_description`: String** -A custom description that will be displayed on the receipt. - -**`send_receipt`: Boolean** -Can be set to true to send a receipt to the payor. **Returns** The transaction object. Refer to the [Transaction Object](transaction.md) for more info. +*** ## Void Authorization This will void an authorization that has not been captured. If the authorization has been captured, this call will fail. @@ -307,14 +211,12 @@ mutation { } ``` -**Arguments** +**Parameters** -**`authorization_id`: String!** -The Pay Theory unique identifier assigned to the authorization that you are looking to void. - -**`void_amount`: Int!** -The amount of the void in cents. -*Partial voids are not supported by all processors and cannot be processed on an Amex authorization. Please contact Pay Theory for more information.* +|Key |type | description | +|-------------------|-------------|----------------------------------------------------------------------------------------------| +|authorization_id |String! | The Pay Theory unique identifier assigned to the authorization that you are looking to void. | +|void_amount |Int! | The amount of the void in cents.

*Partial voids are not supported by all processors and cannot be processed on an Amex authorization. Please contact Pay Theory for more information.* | **Returns** This call returns a boolean indicating if the void was successful. diff --git a/docs/api/dispute.md b/docs/api/dispute.md index b794034..d0a492b 100644 --- a/docs/api/dispute.md +++ b/docs/api/dispute.md @@ -10,6 +10,7 @@ Disputes are charges that have been contested by a cardholder to their card issu They could be an `INQUIRY` which is just a request for information, or an actual chargeback in the status `PENDING` which is a request for a charge to be reversed. +*** ## The Dispute Object ```graphql @@ -31,57 +32,41 @@ They could be an `INQUIRY` which is just a request for information, or an actual } ``` -**merchant_uid**: ID -The Pay Theory unique identifier assigned to the merchant that the dispute belongs to. - -**transaction**: Transaction -The transaction object for the transaction that is in dispute. More information on the transaction object can be found [here](transaction). - -**dispute_id**: String -The Pay Theory unique dispute identifier. - -**status**: DisputeStatus -The status of the dispute. It can be one of the following: -- INQUIRY -- LOST -- PENDING -- WON - -**reason**: DisputeReason -The reason code for the dispute as passed by the card issuer. It can be one of the following: -- CLERICAL -- FRAUD -- INQUIRY -- QUALITY -- TECHNICAL - -**amount**: Int -The amount of the transaction in dispute. - -**dispute_date**: String -The date the dispute was created. - -**evidence_last_send_date**: String -The last date evidence was sent to the processor. If no evidence was sent, this will be null. - -**updated_date**: String -The date the dispute was last updated. - -**expiration_date**: String -The final date to submit evidence to contest a dispute. - -**reason_message**: String -A more detailed reason provided by the card issuer for the dispute. - -**settlement_withdrawal_batch**: String -The settlement batch number where funds were withdrawn from the merchants account for the dispute. - -**settlement_deposit_batch**: String -The settlement batch number where funds were deposited into the merchants account if a dispute is `WON`. - -**updated_row_at**: String -The date the dispute was last updated in the database. - +|Key | type | description | +|-------------------|----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------| +|merchant_uid | ID | The Pay Theory unique identifier assigned to the merchant that the dispute belongs to. | +|transaction | Transaction | The transaction object for the transaction that is in dispute. More information on the transaction object can be found [here](transaction). | +|dispute_id | String | The Pay Theory unique dispute identifier. | +|status | [DisputeStatus](#dispute-status) | The status of the dispute. | +|reason | [DisputeReason](#dispute-reason) | The reason code for the dispute as passed by the card issuer. | +|amount | Int | The amount of the transaction in dispute. | +|dispute_date | String | The date the dispute was created. | +|evidence_last_send_date| String | The last date evidence was sent to the processor. If no evidence was sent, this will be null. | +|updated_date | String | The date the dispute was last updated. | +|expiration_date | String | The final date to submit evidence to contest a dispute. | +|reason_message | String | A more detailed reason provided by the card issuer for the dispute. | +|settlement_withdrawal_batch| String | The settlement batch number where funds were withdrawn from the merchants account for the dispute. | +|settlement_deposit_batch| String | The settlement batch number where funds were deposited into the merchants account if a dispute is `WON`. | +|updated_row_at | String | The date the dispute was last updated in the database. | + +*** +## Dispute Status + +- `INQUIRY` - The dispute is in the inquiry stage. The cardholder has requested more information about the charge. +- `LOST` - The dispute has been lost. The cardholder has won the dispute and the funds have been withdrawn from the merchants account. +- `PENDING` - The dispute is in the pending stage. The cardholder has requested a chargeback. +- `WON` - The dispute has been won. The merchant has won the dispute and the funds have been deposited into the merchants account. + +*** +## Dispute Reason + +- `CLERICAL` +- `FRAUD` +- `INQUIRY` +- `QUALITY` +- `TECHNICAL` + +*** ## Query Disputes ```graphql @@ -108,28 +93,18 @@ query DisputeQuery($direction: MoveDirection, $limit: Int, $offset: String, $off } ``` -### Arguments - -**`limit`: Int** -The number of disputes to return. +**Parameters** -**`direction`: String** -The direction of the pagination. Makes sure the results are returned in the correct order. -* `FORWARD` -* `BACKWARD` +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|direction |MoveDirection|The direction of the pagination. Makes sure the results are returned in the correct order.| +|limit |Int |The number of disputes to return.| +|offset |String |The value of the offset item for which the list is being sorted.| +|offset_id |String |The `dispute_id` of the offset item.| +|query |QueryObject |The query to filter the disputes with based on Pay Theory defined data.| -**`offset`: String** -The value of the offset item for which the list is being sorted. -If the direction is `FORWARD`, the offset item is the last item in the previous list. -If the direction is `BACKWARD`, the offset is the first item in the previous list. -**`offset_id`: String** -The `dispute_id` of the offset item. If the direction is `FORWARD`, the offset item is the last item in the list. If the direction is `BACKWARD`, the offset is the first item in the list. - -**`query`: QueryObject** -The query to filter the disputes with based on Pay Theory defined data. Detailed information about the query object can be found [here](query). - -### Returns +**Returns** ```json { "data": { @@ -147,10 +122,7 @@ The query to filter the disputes with based on Pay Theory defined data. Detaile } } ``` - - -**`items`: [Dispute]** -The list of disputes that are returned from the query. - -**`total_row_count`: Int** -The total number of disputes that match the query. Used to help with pagination. \ No newline at end of file +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|items |[Dispute] |The list of disputes that are returned from the query.| +|total_row_count |Int |The total number of disputes that match the query. Used to help with pagination.| \ No newline at end of file diff --git a/docs/api/invoice.md b/docs/api/invoice.md index d9719db..4231501 100644 --- a/docs/api/invoice.md +++ b/docs/api/invoice.md @@ -8,6 +8,7 @@ title: "" Invoices are used to create a payment request that can be sent to a payor. +*** ## The Invoice Object ```graphql @@ -34,69 +35,29 @@ Invoices are used to create a payment request that can be sent to a payor. } ``` -**`account_code`: String** -A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout. - -**`created_date`: String** -The date the invoice was created. - -**`currency`: String** -The currency of the payment that will be used to pay the invoice. - -**`due_by`: String** -The date that the payor is expected to pay the invoice by. - -**`fee_mode`: FeeMode** -The fee mode that will be used on that transaction when a payment is made through Pay Theory's hosted checkout. It can be one of the following: -* `MERCHANT_FEE` -* `SERVICE_FEE` - -**`invoice_amount`: Int** -The total amount of the invoice. - -**`invoice_date`: String** -The initial date for the Invoice. - -**`invoice_description`: String** -A brief description of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice. - -**`invoice_id`: String** -The Pay Theory unique identifier for the invoice. - -**`invoice_name`: String** -The name of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice. - -**`merchant_invoice_number`: String** -A custom value that can be used to tie the Pay Theory Invoice to a merchant's internal invoice number. - -**`merchant_uid`: String** -The Pay Theory unique identifier for the merchant that the invoice belongs to. - -**`metadata: AWSJSON`** -A JSON object that can be used to store custom data about the invoice. - -**`offline_transactions`: [[OfflineTransaction]](#the-offline-transaction-object)** -A list of offline transactions that have been applied to the invoice. This is used to track payments that are made outside Pay Theory toward an Invoice. - -**`payor`: [Payor](payor)** -The payor object for the payor that the invoice belongs to. More information on the payor object can be found [here](payor). - -**`reference`: String** -A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout. - -**`settings`: [InvoiceSettings](#invoice-settings-object)** -The settings object to configure settings for the Pay Theory hosted checkout page. - -**`status`: InvoiceStatus** -The status of the invoice. It can be one of the following: -* `NOT_PAID` -* `PAID` -* `PARTIALLY_PAID` *For the time being this will not be used as we do not yet support partial payments for Invoices.* - -**`total_paid_amount`: Int** -The total amount that has been paid toward the invoice. - - +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|account_code |String |A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout.| +|created_date |String |The date the invoice was created.| +|currency |String |The currency of the payment that will be used to pay the invoice.| +|due_by |String |The date that the payor is expected to pay the invoice by.| +|fee_mode |FeeMode |The fee mode that will be used on that transaction when a payment is made through Pay Theory's hosted checkout. It can be one of the following: `MERCHANT_FEE`, `SERVICE_FEE`.| +|invoice_amount |Int |The total amount of the invoice.| +|invoice_date |String |The initial date for the Invoice.| +|invoice_description|String |A brief description of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice.| +|invoice_id |String |The Pay Theory unique identifier for the invoice.| +|invoice_name |String |The name of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice.| +|merchant_invoice_number|String |A custom value that can be used to tie the Pay Theory Invoice to a merchant's internal invoice number.| +|merchant_uid |String |The Pay Theory unique identifier for the merchant that the invoice belongs to.| +|metadata |AWSJSON |A JSON object that can be used to store custom data about the invoice.| +|offline_transactions|[[OfflineTransaction]](#the-offline-transaction-object)|A list of offline transactions that have been applied to the invoice. This is used to track payments that are made outside Pay Theory toward an Invoice.| +|payor |[Payor](payor)|The payor object for the payor that the invoice belongs to. More information on the payor object can be found [here](payor).| +|reference |String |A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout.| +|settings |[InvoiceSettings](#invoice-settings-object)|The settings object to configure settings for the Pay Theory hosted checkout page.| +|status |InvoiceStatus|The status of the invoice. It can be one of the following: `NOT_PAID`, `PAID`, `PARTIALLY_PAID` *For the time being this will not be used as we do not yet support partial payments for Invoices.*| +|total_paid_amount |Int |The total amount that has been paid toward the invoice.| + +*** ## Invoice Settings Object ```graphql @@ -107,23 +68,14 @@ The total amount that has been paid toward the invoice. security_pin: String } ``` - -**`accepted_payment_methods`: AcceptedPaymentMethods** -The payment methods that will be accepted on the Pay Theory hosted checkout page. It is an object that contains the following: -* `ach`: **Boolean** -* `card`: **Boolean** -* `cash`: **Boolean** - -**`is_secure`: Boolean** -When set to true, the payor will be required to enter a security pin to pay the invoice. - -**`require_payor_address`: Boolean** -When set to true, the payor will be required to enter their address to pay the invoice. - -**`security_pin`: String** -The security pin that the payor will be required to enter to pay the invoice. This is only used if `is_secure` is set to true. - - +|Key |type | description | +|-------------------|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|accepted_payment_methods|AcceptedPaymentMethods| The payment methods that will be accepted on the Pay Theory hosted checkout page.

An object containing keys of `ach`, `card`, and `cash` with a boolean value indicating if they are accepted. | +|is_secure |Boolean | When set to true, the payor will be required to enter a security pin to pay the invoice. | +|require_payor_address|Boolean | When set to true, the payor will be required to enter their address to pay the invoice. | +|security_pin |String | The security pin that the payor will be required to enter to pay the invoice. This is only used if `is_secure` is set to true. | + +*** ## Query Invoices ```graphql @@ -182,31 +134,20 @@ The security pin that the payor will be required to enter to pay the invoice. Th } ``` -**Arguments** - -**`limit`: Int** -The number of invoices to return. - -**`direction`: String** -The direction of the pagination. Makes sure the results are returned in the correct order. -* `FORWARD` -* `BACKWARD` - -**`offset`: String** -The value of the offset item for which the list is being sorted. -If the direction is `FORWARD`, the offset item is the last item in the previous list. -If the direction is `BACKWARD`, the offset is the first item in the previous list. +**Parameters** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|direction |MoveDirection|The direction of the pagination. Makes sure the results are returned in the correct order.| +|limit |Int |The number of invoices to return.| +|offset |String |The value of the offset item for which the list is being sorted.| +|offset_id |String |The `invoice_id` of the offset item.| +|query |QueryObject |The query to filter the invoices with based on Pay Theory defined data.| -**`offset_id`: String** -The `invoice_id` of the offset item. If the direction is `FORWARD`, the offset item is the last item in the list. If the direction is `BACKWARD`, the offset is the first item in the list. -**`query`: QueryObject** -The query to filter the invoices with based on Pay Theory defined data. Detailed information about the query object can be found [here](query). +**Nested Queries** +Invoices can also be filtered by passing a `query_list` to the metadata or payor. -**Nested Arguments** -#### Metadata, Payor -**`query_list`: QueryPair[]** -The query list to filter the Metadata or Payor tied to the Invoice. This will ensure that only Invoices that have Metadata or Payors that match these queries. Detailed information about the query list can be found [here](query). +This will only return Invoices that have Metadata or Payors that match these queries. Detailed information about the query list can be found [here](query). **Returns** @@ -228,6 +169,12 @@ The query list to filter the Metadata or Payor tied to the Invoice. This will en } ``` +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|items |[Invoice](#the-invoice-object)[]|A list of invoices that match the query.| +|total_row_count |Int |The total number of invoices that match the query.| + +*** ## Create an Invoice ```graphql @@ -243,10 +190,12 @@ mutation { } ``` -**Arguments** +**Parameters** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|intput |CreateInvoiceInput|The input object that contains all of the information needed to create an invoice.| -**`input`: CreateInvoiceInput** -The input object that contains all of the information needed to create an invoice. The object contains the following fields: +**CreateInvoiceInput** ```graphql { @@ -269,57 +218,30 @@ The input object that contains all of the information needed to create an invoic } ``` -**`account_code`: String** -A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout. - -**`currency`: String** -The currency of the payment that will be used to pay the invoice. - -**`due_by`: String** -The date that the payor is expected to pay the invoice by. - -**`fee_mode`: FeeMode** -The fee mode that will be used on that transaction when a payment is made through Pay Theory's hosted checkout. It can be one of the following: -* `MERCHANT_FEE` -* `SERVICE_FEE` - -**`invoice_amount`: Int** -The total amount of the invoice. - -**`invoice_date`: String** -The initial date for the Invoice. - -**`invoice_description`: String** -A brief description of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice. - -**`invoice_name`: String** -The name of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice. - -**`merchant_invoice_number`: String** -A custom value that can be used to tie the Pay Theory Invoice to a merchant's internal invoice number. - -**`merchant_uid`: String** -The Pay Theory unique identifier for the merchant that the invoice belongs to. - -**`metadata: AWSJSON`** -A JSON object that can be used to store custom data about the invoice. - -**`payor_id`: String** -The Pay Theory unique identifier for the payor that the invoice belongs to. - -**`payor`: [PayorInput](payor)** -The payor input object for the payor that the invoice belongs to. More information on the payor input object can be found [here](payor). - -**`reference`: String** -A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout. - -**`send_email`: Boolean** -When set to true, an email will be sent to the payor with a link to the hosted checkout page. - -**`settings`: InvoiceSettingsInput** - -The settings input object to configure settings for the Pay Theory hosted checkout page. +|Key | type | description | +|-------------------|-------------------------------------------------|---------------------------------------| +|account_code | String |A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout.| +|currency | String |The currency of the payment that will be used to pay the invoice.| +|due_by | String |The date that the payor is expected to pay the invoice by.| +|fee_mode | FeeMode |The fee mode that will be used on that transaction when a payment is made through Pay Theory's hosted checkout. It can be one of the following: `MERCHANT_FEE`, `SERVICE_FEE`.| +|invoice_amount | Int |The total amount of the invoice.| +|invoice_date | String |The initial date for the Invoice.| +|invoice_description| String |A brief description of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice.| +|invoice_name | String |The name of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice.| +|merchant_invoice_number| String |A custom value that can be used to tie the Pay Theory Invoice to a merchant's internal invoice number.| +|merchant_uid | String |The Pay Theory unique identifier for the merchant that the invoice belongs to.| +|metadata | AWSJSON |A JSON object that can be used to store custom data about the invoice.| +|payor_id | String |The Pay Theory unique identifier for the payor that the invoice belongs to.| +|payor | [PayorInput](payor) |The payor input object for the payor that the invoice belongs to. More information on the payor input object can be found [here](payor).| +|reference | String |A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout.| +|send_email | Boolean |When set to true, an email will be sent to the payor with a link to the hosted checkout page.| +|settings | [InvoiceSettingsInput](#invoice-settings-input) |The settings input object to configure settings for the Pay Theory hosted checkout page.| + +**Return** +The response will contain the invoice object that was created. More information on the [invoice object](#the-invoice-object). +*** +## Invoice Settings Input ```graphql { accepted_payment_methods: AcceptedPaymentMethodsInput @@ -327,24 +249,13 @@ The settings input object to configure settings for the Pay Theory hosted checko require_payor_address: Boolean } ``` +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|accepted_payment_methods|AcceptedPaymentMethodsInput|The payment methods that will be accepted on the Pay Theory hosted checkout page.

An object containing keys of `ach`, `card`, and `cash` with a boolean value indicating if they are accepted. | +|is_secure |Boolean |When set to true, the payor will be required to enter a security pin to pay the invoice.| +|require_payor_address|Boolean |When set to true, the payor will be required to enter their address to pay the invoice.| -**`accepted_payment_methods`: AcceptedPaymentMethodsInput** -The payment methods that will be accepted on the Pay Theory hosted checkout page. It is an object that contains the following: -* `ach`: **Boolean** -* `card`: **Boolean** -* `cash`: **Boolean** - -**`is_secure`: Boolean** -When set to true, the payor will be required to enter a security pin to pay the invoice. - -**`require_payor_address`: Boolean** -When set to true, the payor will be required to enter their address to pay the invoice. - - -**Returns** -The response will contain the invoice object that was created. More information on the [invoice object](#the-invoice-object). - - +*** ## Update an Invoice ```graphql @@ -360,14 +271,14 @@ mutation { } ``` -**Arguments** - -**`invoice_id`: String** -The Pay Theory unique identifier for the invoice to update. +**Parameters** -**`invoice_update_input`: UpdateInvoiceInput** -The input object that contains all of the information needed to update an invoice. The object contains the following fields: +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|invoice_id |String |The Pay Theory unique identifier for the invoice to update.| +|invoice_update_input|UpdateInvoiceInput|The input object that contains all of the information needed to update an invoice.| +**UpdateInvoiceInput** ```graphql { account_code: String @@ -384,70 +295,25 @@ The input object that contains all of the information needed to update an invoic settings: InvoiceSettingsInput } ``` +|Key | type | description | +|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|account_code | String | A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout. | +|currency | String | The currency of the payment that will be used to pay the invoice. | +|due_by | String | The date that the payor is expected to pay the invoice by. | +|fee_mode | FeeMode | The fee mode that will be used on that transaction when a payment is made through Pay Theory's hosted checkout. It can be one of the following: `MERCHANT_FEE`, `SERVICE_FEE`. | +|invoice_amount | Int | The total amount of the invoice. | +|invoice_date | String | The initial date for the invoice. | +|invoice_description| String | A brief description of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice. | +|invoice_name | String | The name of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice. | +|merchant_invoice_number| String | A custom value that can be used to tie the Pay Theory Invoice to a merchant's internal invoice number. | +|reference | String | A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout. | +|send_email | Boolean | When set to true, an email will be sent to the payor with details about the updated invoice. | +|settings | [InvoiceSettingsInput](#invoice-settings-input) | The settings input object to configure settings for the Pay Theory hosted checkout page. | -**`account_code`: String** -A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout. - -**`currency`: String** -The currency of the payment that will be used to pay the invoice. - -**`due_by`: String** -The date that the payor is expected to pay the invoice by. - -**`fee_mode`: FeeMode** -The fee mode that will be used on that transaction when a payment is made through Pay Theory's hosted checkout. It can be one of the following: -* `MERCHANT_FEE` -* `SERVICE_FEE` - -**`invoice_amount`: Int** -The total amount of the invoice. - -**`invoice_date`: String** -The initial date for the Invoice. - -**`invoice_description`: String** -A brief description of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice. - -**`invoice_name`: String** -The name of the invoice. This will show up on the hosted checkout page and any email communications about the Invoice. - -**`merchant_invoice_number`: String** -A custom value that can be used to tie the Pay Theory Invoice to a merchant's internal invoice number. - -**`reference`: String** -A custom value that will be passed on to the transaction when a payment is made through Pay Theory's hosted checkout. - -**`send_email`: Boolean** -When set to true, an email will be sent to the payor with details about the updated invoice. - -**`settings`: InvoiceSettingsInput** -The settings input object to configure settings for the Pay Theory hosted checkout page. - -```graphql -{ - accepted_payment_methods: AcceptedPaymentMethodsInput - is_secure: Boolean - require_payor_address: Boolean -} -``` - -**`accepted_payment_methods`: AcceptedPaymentMethodsInput** -The payment methods that will be accepted on the Pay Theory hosted checkout page. It is an object that contains the following: -* `ach`: **Boolean** -* `card`: **Boolean** -* `cash`: **Boolean** - -**`is_secure`: Boolean** -When set to true, the payor will be required to enter a security pin to pay the invoice. - -**`require_payor_address`: Boolean** -When set to true, the payor will be required to enter their address to pay the invoice. - - -**Returns** +**Returns** The response will contain the invoice object that was updated. More information on the [invoice object](#the-invoice-object). - +*** ## Delete an Invoice ```graphql @@ -456,14 +322,15 @@ mutation { } ``` -**Arguments** - -**`invoice_id`: String** -The Pay Theory unique identifier for the invoice to delete. +**Parameters** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|invoice_id |String |The Pay Theory unique identifier for the invoice to delete.| -**Returns** +**Returns** The response will include a boolean value that will be true if the invoice was deleted successfully. +*** ## Create an Invoice Email This call is used to resend Invoice emails for a specific invoice. @@ -474,15 +341,16 @@ mutation { } ``` -**Arguments** - -**`invoice_id`: String** -The Pay Theory unique identifier for the invoice to send an email for. +**Parameters** -**Returns** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|invoice_id |String |The Pay Theory unique identifier for the invoice to send an email for.| +**Returns** The response will include a boolean value that will be true if the email was sent successfully. +*** ## The Offline Transaction Object ```graphql @@ -495,29 +363,16 @@ The response will include a boolean value that will be true if the email was sen type: OfflineTransactionType } ``` - -**`amount`: Int** -The amount of the offline transaction. - -**`instance_id`: String** -The Pay Theory unique identifier for the offline transaction. - -**`invoice_id`: String** -The Pay Theory unique identifier for the invoice that the offline transaction is being applied to. - -**`note`: String** -A note that can be added to the offline transaction. This is a custom value that can be used to store information about the offline transaction. - -**`transaction_date`: String** -The date that the offline transaction was made. - -**`type`: OfflineTransactionType** -The type of offline transaction. It can be one of the following: -* `ACH` -* `CARD` -* `CASH` -* `OTHER` - +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|amount |Int |The amount of the offline transaction.| +|instance_id |String |The Pay Theory unique identifier for the offline transaction.| +|invoice_id |String |The Pay Theory unique identifier for the invoice that the offline transaction is being applied to.| +|note |String |A note that can be added to the offline transaction. This is a custom value that can be used to store information about the offline transaction.| +|transaction_date |String |The date that the offline transaction was made.| +|type |OfflineTransactionType|The type of offline transaction. It can be one of the following: `ACH`, `CARD`, `CASH`, `OTHER`.| + +*** ## Create an Offline Transaction This call is used to create an offline transaction for an invoice. Offline transactions are used to track payments that are made outside Pay Theory toward an Invoice. @@ -535,11 +390,13 @@ mutation { } ``` -**Arguments** +**Parameters** -**`input`: CreateOfflineTransactionInput** -The input object that contains all of the information needed to create an offline transaction. The object contains the following fields: +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|input |CreateOfflineTransactionInput|The input object that contains all of the information needed to create an offline transaction.| +**CreateOfflineTransactionInput** ```graphql { amount: Int! @@ -550,25 +407,14 @@ The input object that contains all of the information needed to create an offlin } ``` -**`amount`: Int** -The amount of the offline transaction. -*Currently, this must be the full amount of the invoice as we do not allow for partial payments on invoices.* - -**`invoice_id`: String** -The Pay Theory unique identifier for the invoice that the offline transaction is being applied to. - -**`note`: String** -A note that can be added to the offline transaction. This is a custom value that can be used to store information about the offline transaction. - -**`transaction_date`: String** -The date that the offline transaction was made. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|amount |Int |The amount of the offline transaction.| +|invoice_id |String |The Pay Theory unique identifier for the invoice that the offline transaction is being applied to.| +|note |String |A note that can be added to the offline transaction. This is a custom value that can be used to store information about the offline transaction.| +|transaction_date |String |The date that the offline transaction was made.| +|type |OfflineTransactionType|The type of offline transaction. It can be one of the following: `ACH`, `CARD`, `CASH`, `OTHER`.| -**`type`: OfflineTransactionType** -The type of offline transaction. It can be one of the following: -* `ACH` -* `CARD` -* `CASH` -* `OTHER` **Returns** The response will contain the offline transaction object that was created. More information on the [offline transaction object](#offline-transaction-object). diff --git a/docs/api/merchant.md b/docs/api/merchant.md index 7e63907..15ad0d6 100644 --- a/docs/api/merchant.md +++ b/docs/api/merchant.md @@ -8,6 +8,7 @@ title: "" Merchants are the entities that are using Pay Theory to accept payments. +*** ## The Merchant Object ```js { @@ -24,36 +25,20 @@ Merchants are the entities that are using Pay Theory to accept payments. } ``` -**`merchant_uid`: String** -The Pay Theory unique identifier assigned to the merchant. - -**`merchant_name`: String** -The name of the merchant. - -**`api_key`: String** -The API key of the merchant. This is used to authenticate use of the PayTheory Web and Native SDKs. - -**`submitted_onboarding`: Boolean** -Whether the merchant has submitted their onboarding information. - -**`card_active`: Boolean** -If the merchant has successfully completed onboarding and has a card processor active. - -**`ach_active`: Boolean** -If the merchant has successfully completed onboarding and has an ACH processor active. - -**`cash_active`: Boolean** -If the merchant has successfully completed onboarding and has a cash processor active. - -**`fee_model`: FeeModel** -The fee model that the merchant is using. This is used to calculate the fees that are charged to the payor. - -**`is_system`: Boolean** -Returns `true` if the merchant has children merchants. - -**`parent_merchant_uid`: String** -The `merchant_uid` of the parent merchant. This is only set if the merchant is a sub merchant of a system merchant. - +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|merchant_uid |ID |The Pay Theory unique identifier assigned to the merchant.| +|merchant_name |String |The name of the merchant.| +|api_key |String |The API key of the merchant. This is used to authenticate use of the PayTheory Web and Native SDKs.| +|submitted_onboarding|Boolean |Whether the merchant has submitted their onboarding information.| +|card_active |Boolean |If the merchant has successfully completed onboarding and has a card processor active.| +|ach_active |Boolean |If the merchant has successfully completed onboarding and has an ACH processor active.| +|cash_active |Boolean |If the merchant has successfully completed onboarding and has a cash processor active.| +|fee_model |FeeModel |The fee model that the merchant is using. This is used to calculate the fees that are charged to the payor.| +|is_system |Boolean |Returns `true` if the merchant has children merchants.| +|parent_merchant_uid|String |The `merchant_uid` of the parent merchant. This is only set if the merchant is a sub merchant of a system merchant.| + +*** ## Query Merchant ```js { @@ -92,13 +77,11 @@ The `merchant_uid` of the parent merchant. This is only set if the merchant is ``` -**Arguments** - -**`merchant_name`: String** -The name of the merchant to query. - -**`merchant_uid`: String** -The `merchant_uid` of the merchant to query. +**Parameters** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|merchant_name |String |The name of the merchant to query.| +|merchant_uid |String |The `merchant_uid` of the merchant to query.| **Returns** @@ -113,9 +96,11 @@ The `merchant_uid` of the merchant to query. } ``` -**`merchant`: Merchant** -This call returns a single merchant object with the specified `merchant_uid` or `merchant_name`. +|Key | type | description | +|-------------------|----------------------------------|---------------------------------------| +|merchant | [Merchant](#the-merchant-object) |The merchant object that is returned from the query.| +*** ## The List Merchant Object This is a limited merchant object that is returned when you want to query a list of merchants. @@ -132,35 +117,19 @@ This is a limited merchant object that is returned when you want to query a list updated_row_at: AWSDateTime } ``` - -**`merchant_uid`: String** -The Pay Theory unique identifier assigned to the merchant. - -**`merchant_name`: String** -The name of the merchant. - -**`is_system`: Boolean** -If the merchant is a system merchant. System merchants are merchants that also have sub merchants. - -**`parent_merchant_uid`: String** -The `merchant_uid` of the parent merchant. This is only set if the merchant is a sub merchant of a system merchant. - -**`submitted_onboarding`: Boolean** -Whether the merchant has submitted their onboarding information. - -**`card_active`: Boolean** -If the merchant has successfully completed onboarding and has a card processor active. - -**`ach_active`: Boolean** -If the merchant has successfully completed onboarding and has an ACH processor active. - -**`cash_active`: Boolean** -If the merchant has successfully completed onboarding and has a cash processor active. - -**`updated_row_at`: String** -The date the merchant was last updated. - - +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|merchant_uid |ID |The Pay Theory unique identifier assigned to the merchant.| +|merchant_name |String |The name of the merchant.| +|is_system |Boolean |If the merchant is a system merchant. System merchants are merchants that also have sub merchants.| +|parent_merchant_uid|String |The `merchant_uid` of the parent merchant. This is only set if the merchant is a sub merchant of a system merchant.| +|submitted_onboarding|Boolean |Whether the merchant has submitted their onboarding information.| +|card_active |Boolean |If the merchant has successfully completed onboarding and has a card processor active.| +|ach_active |Boolean |If the merchant has successfully completed onboarding and has an ACH processor active.| +|cash_active |Boolean |If the merchant has successfully completed onboarding and has a cash processor active.| +|updated_row_at |String |The date the merchant was last updated.| + +*** ## Query Merchants ```js { @@ -180,26 +149,15 @@ The date the merchant was last updated. } ``` -**Arguments** - -**`limit`: Int** -The number of merchants to return. - -**`direction`: String** -The direction of the pagination. Makes sure the results are returned in the correct order. -* `FORWARD` -* `BACKWARD` - -**`offset`: String** -The value of the offset item for which the list is being sorted. -If the direction is `FORWARD`, the offset item is the last item in the previous list. -If the direction is `BACKWARD`, the offset is the first item in the previous list. - -**`offset_id`: String** -The `merchant_uid` of the offset item. If the direction is `FORWARD`, the offset item is the last item in the list. If the direction is `BACKWARD`, the offset is the first item in the list. +**Parameters** -**`query`: QueryObject** -The query to filter the merchants with based on Pay Theory defined data. Detailed information about the query object can be found [here](query). +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|direction |MoveDirection|The direction of the pagination. Makes sure the results are returned in the correct order.| +|limit |Int |The number of merchants to return.| +|offset |String |The value of the offset item for which the list is being sorted.| +|offset_id |String |The `merchant_uid` of the offset item.| +|query |QueryObject |The query to filter the merchants with based on Pay Theory defined data.| **Returns** @@ -222,12 +180,12 @@ The query to filter the merchants with based on Pay Theory defined data. Detail } ``` -**`items`: [ListMerchant]** -The list of merchants that are returned from the query. Objects will include all keys that are passed in with the query. - -**`total_row_count`: Int** -The total number of merchants that match the query. Used to help with pagination. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|items |[ListMerchant]|The list of merchants that are returned from the query.| +|total_row_count |Int |The total number of merchants that match the query. Used to help with pagination.| +*** ## Create Merchant ```js mutation { @@ -250,30 +208,21 @@ mutation { } ``` -**Arguments** - -**`merchant_name`: String** -The name of the merchant to create. - -**`parent_merchant_uid`: String** -The `merchant_uid` of the parent merchant. This is only set if the merchant belongs to another merchant account. - -**`user`: User** -The user that will be created for the merchant. This user will be given access to the onboarding form on Merchant creation. +**Parameters** -**User Arguments** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|merchant_name |String |The name of the merchant to create.| +|parent_merchant_uid|String |The `merchant_uid` of the parent merchant. This is only set if the merchant belongs to another merchant account.| +|user |User |The user that will be created for the merchant. This user will be given access to the onboarding form on Merchant creation.| -**`email`: AWSEmail** -The email address of the user. Must be a valid email address or the mutation will fail. - -**`first_name`: String** -The first name of the user. - -**`last_name`: String** -The last name of the user. - -**`phone`: AWSPhone** -The phone number of the user. Must be a valid phone number or null or the mutation will fail. +**User Parameters** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|email |AWSEmail |The email address of the user. Must be a valid email address or the mutation will fail.| +|first_name |String |The first name of the user.| +|last_name |String |The last name of the user.| +|phone |AWSPhone |The phone number of the user. Must be a valid phone number or null or the mutation will fail.| **Returns** @@ -287,6 +236,6 @@ The phone number of the user. Must be a valid phone number or null or the mutati } } ``` - -**`createMerchant`: ListMerchant** -This will return the newly created merchant object. \ No newline at end of file +|Key |type | description | +|-------------------|------------|---------------------------------------| +|createMerchant |ListMerchant|The newly created merchant object.| \ No newline at end of file diff --git a/docs/api/metadata.md b/docs/api/metadata.md index 0c48180..a3602d5 100644 --- a/docs/api/metadata.md +++ b/docs/api/metadata.md @@ -10,6 +10,7 @@ Metadata is used to pass customer data to track items in Pay Theory Systems. These calls allow you to update or delete metadata for an item you created with metadata. +*** ## Update Metadata ```js @@ -18,33 +19,20 @@ mutation { } ``` -**Arguments** +**Parameters** -**`id`: String** -The id of the item you want to update metadata for. - -**`merchant_uid`: String** -The Pay Theory merchant_uid of the item you want to update metadata for. - -**`metadata`: JSON** -The metadata you want to update the item with. Any keys passed in will overwrite the existing metadata. - -**`metadata_associate`: MetadataAssociate** -The type of item you want to update metadata for. Options are: - -* `AUTHORIZATION` -* `INVOICE` -* `PAYMENT_METHOD_TOKEN` -* `PAYMENT_SESSION` -* `PAYOR` -* `RECURRING` -* `TRANSACTION` -* `SALE` +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|id |String |The id of the item you want to update metadata for.| +|merchant_uid |String |The Pay Theory merchant_uid of the item you want to update metadata for.| +|metadata |JSON |The metadata you want to update the item with. Any keys passed in will overwrite the existing metadata.| +|metadata_associate |MetadataAssociate|The type of item you want to update metadata for. Options are: `AUTHORIZATION`, `INVOICE`, `PAYMENT_METHOD_TOKEN`, `PAYMENT_SESSION`, `PAYOR`, `RECURRING`, `TRANSACTION`, `SALE`| **Returns** Returns true if it was successful or an error if it was not. +*** ## Delete Metadata ```js @@ -53,28 +41,13 @@ mutation { } ``` -**Arguments** - -**`id`: String** -The id of the item you want to delete metadata for. - -**`merchant_uid`: String** -The Pay Theory merchant_uid of the item you want to delete metadata for. - -**`metadata_associate`: MetadataAssociate** -The type of item you want to delete metadata for. Options are: - -* `AUTHORIZATION` -* `INVOICE` -* `PAYMENT_METHOD_TOKEN` -* `PAYMENT_SESSION` -* `PAYOR` -* `RECURRING` -* `TRANSACTION` -* `SALE` - -**`metadata_keys`: [String]!** -The keys of the metadata you want to delete. +**Parameters** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|id |String |The id of the item you want to delete metadata for.| +|merchant_uid |String |The Pay Theory merchant_uid of the item you want to delete metadata for.| +|metadata_associate |MetadataAssociate|The type of item you want to delete metadata for. Options are: `AUTHORIZATION`, `INVOICE`, `PAYMENT_METHOD_TOKEN`, `PAYMENT_SESSION`, `PAYOR`, `RECURRING`, `TRANSACTION`, `SALE`| +|metadata_keys |[String]! |The keys of the metadata you want to delete.| **Returns** diff --git a/docs/api/payment_links.md b/docs/api/payment_links.md index 86ba9bf..9e251e6 100644 --- a/docs/api/payment_links.md +++ b/docs/api/payment_links.md @@ -8,80 +8,57 @@ title: "" Payment links are a used to create a checkout page without having to write any code. You can create a payment link and send it to your customers to pay for your products or services. +*** ## The Payment Link Object -```js +```graphql { - merchant_uid: String + accepted_payment_methods: AcceptedPaymentMethodsEnum + account_code: String + amount: Int + amount_is_variable: Boolean + call_to_action: CallToActionType + created_date: AWSDateTime + currency: String + custom_success_message: String + fee_mode: FeeMode + is_active: Boolean link_id: String - link_url: String link_name: String + link_url: String + max_amount: Int + merchant_uid: String + min_amount: Int payment_name: String payment_description: String - amount: Int - currency: String - fee_mode: String - amount_is_variable: Boolean - min_amount: Int - max_amount: Int - require_phone: Boolean - call_to_action: String - accepted_payment_methods: String - account_code: String - custom_success_message: String redirect_url: String - is_active: Boolean - created_date: String + require_phone: Boolean } ``` - -**`merchant_uid`: String** -The PayTheory unique identifier assigned to the merchant that the transaction belongs to. - -**`link_id`: String** -The unique id of the payment link. - -**`link_url`: String** -The url of the payment link. - -**`link_name`: String** -The name you give to the payment link for internal tracking purposes. - -**`payment_name`: String** -The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction. - -**`payment_description`: String** -The description of the payment that will be displayed to the customer. - -**`amount`: Int** -The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount. - -**`currency`: String** -The type of currency for the payment. - -**`fee_mode`: String** -The fee mode of the payments that will be made with the payment link. -* `MERCHANT_FEE` -* `SERVICE_FEE` - -**`amount_is_variable`: Boolean** -If set to `true` the payor will be able to enter the amount they want to pay. - -**`min_amount`: Int** -The minimum amount the payor can pay if `amount_is_variable` is set to `true`. - -**`max_amount`: Int** -The maximum amount the payor can pay if `amount_is_variable` is set to `true`. - -**`require_phone`: Boolean** -If set to `true` the payor will be required to enter their phone number before making the payment. - -**`call_to_action`: String** -The text that will be displayed on the button on the checkout page. -* `PAY` -* `DONATE` -* `BOOK` - -**`accepted_payment_methods`: String** +|Key | type | description | +|-------------------|-----------------------------------------------------------|---------------------------------------| +|accepted_payment_methods| [AcceptedPaymentMethodsEnum](#acceptedpaymentmethodsenum) |The payment methods that will be available to a payor when making a payment.| +|account_code | String |Account Code that will be passed in to every transaction made with this payment link.| +|amount | Int |The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount.| +|amount_is_variable | Boolean |If set to `true` the payor will be able to enter the amount they want to pay.| +|call_to_action | [CallToActionType](#calltoactiontype) |The call to action that will be displayed on the button at the time of checkout.| +|created_date | AWSDateTime |The date and time the payment link was created.| +|currency | String |The type of currency for the payment.| +|custom_success_message| String |The message that will be displayed to the payor after a successful payment.| +|fee_mode | FeeMode |The fee mode of the payments that will be made with the payment link.| +|is_active | Boolean |If set to `true` the payment link will be active and available to payors. If set to `false` the payment link will not be available to payors.| +|link_id | String |The unique id of the payment link.| +|link_name | String |The name you give to the payment link for internal tracking purposes.| +|link_url | String |The url of the payment link.| +|max_amount | Int |The maximum amount the payor can pay if `amount_is_variable` is set to `true`.| +|merchant_uid | String |The Pay Theory unique identifier assigned to the merchant that the transaction belongs to.| +|min_amount | Int |The minimum amount the payor can pay if `amount_is_variable` is set to `true`.| +|payment_name | String |The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction.| +|payment_description| String |The description of the payment that will be displayed to the customer.| +|redirect_url | String |The url that the payor will be redirected to after a successful payment.| +|require_phone | Boolean |If set to `true` the payor will be required to enter their phone number before making the payment.| + +*** +## AcceptedPaymentMethodsEnum The payment methods that will be available to a payor when making a payment. * `ALL` * `NOT_CASH` @@ -91,21 +68,14 @@ The payment methods that will be available to a payor when making a payment. * `ONLY_CARD` * `ONLY_ACH` -**`account_code`: String** -Account Code that will be passed in to every transaction made with this payment link. - -**`custom_success_message`: String** -The message that will be displayed to the payor after a successful payment. - -**`redirect_url`: String** -The url that the payor will be redirected to after a successful payment. - -**`is_active`: Boolean** -If set to `true` the payment link will be active and available to payors. If set to `false` the payment link will not be available to payors. - -**`created_date`: String** -The date and time the payment link was created. +*** +## CallToActionType +The call to action that will be displayed on the button at the time of checkout. +* `PAY` +* `DONATE` +* `BOOK` +*** ## Query Payment Links ```js { @@ -136,26 +106,15 @@ The date and time the payment link was created. } } ``` -**Arguments** - -**`limit`: Int** -The number of payment links to return. - -**`direction`: String** -The direction of the pagination. Makes sure the results are returned in the correct order. -* `FORWARD` -* `BACKWARD` - -**`offset`: String** -The value of the offset item for which the list is being sorted. -If the direction is `FORWARD`, the offset item is the last item in the previous list. -If the direction is `BACKWARD`, the offset is the first item in the previous list. +**Parameters** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|limit |Int |The number of payment links to return.| +|direction |MoveDirection|The direction of the pagination. Makes sure the results are returned in the correct order.| +|offset |String |The value of the offset item for which the list is being sorted.| +|offset_id |String |The `link_id` of the offset item.| +|query |QueryObject |The query to filter the payment links with based on Pay Theory defined data. Detailed information about the query object can be found [here](query)| -**`offset_id`: String** -The `link_id` of the offset item. If the direction is `FORWARD`, the offset item is the last item in the list. If the direction is `BACKWARD`, the offset is the first item in the list. - -**`query`: QueryObject** -The query to filter the payment links with based on Pay Theory defined data. Detailed information about the query object can be found [here](query). **Returns** @@ -179,23 +138,22 @@ The query to filter the payment links with based on Pay Theory defined data. De } } ``` +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|items |[PaymentLink] |The list of payment links that are returned from the query.| +|total_row_count |Int |The total number of payment links that match the query. Used to help with pagination.| -**`items`: [Payor]** -The list of payment links that are returned from the query. Objects will include all keys that are passed in with the query. - -**`total_row_count`: Int** -The total number of payment links that match the query. Used to help with pagination. - +*** ## Create a Payment Link ```js mutation { createPaymentLink(input: { - accepted_payment_methods: AcceptedPaymentMethods, + accepted_payment_methods: AcceptedPaymentMethodsEnum, account_code: String, amount: Int, amount_is_variable: Boolean, - call_to_action: CallToAction, + call_to_action: CallToActionType, currency: String, custom_success_message: String, fee_mode: FeeMode, @@ -232,75 +190,32 @@ mutation { } ``` -**Arguments** - -**`input`: PaymentLinkInput** -This object contains all the details needed to create a payment link. - -**Required Arguments** - -**`merchant_uid`: String** -The merchant uid of the merchant that will be creating the payment link. - -**`link_name`: String** -The name you give to the payment link for internal tracking purposes. +**Parameters** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|input |PaymentLinkInput|This object contains all the details needed to create a payment link.| + +**PaymentLinkInput** +|Key | type | description | +|-------------------|-----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| +|accepted_payment_methods| [AcceptedPaymentMethodsEnum](#acceptedpaymentmethodsenum) | The payment methods that will be available to a payor when making a payment. | +|account_code | String | Account Code that will be passed in to every transaction made with this payment link. | +|amount | Int! | The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount. | +|amount_is_variable | Boolean | If set to `true` the payor will be able to enter the amount they want to pay. | +|call_to_action | [CallToActionType](#calltoactiontype) | The call to action that will be displayed on the button at the time of checkout. | +|currency | String | The currency of the payment. | +|custom_success_message| String | The message that will be displayed to the payor after they have successfully paid. | +|fee_mode | FeeMode | The fee mode of the payments that will be made with the payment link. | +|link_name | String! | The name you give to the payment link for internal tracking purposes. | +|max_amount | Int | The maximum amount the payor can pay if `amount_is_variable` is set to `true`. | +|merchant_uid | String! | The merchant uid of the merchant that will be creating the payment link. | +|min_amount | Int | The minimum amount the payor can pay if `amount_is_variable` is set to `true`. | +|payment_description| String | The description of the payment that will be displayed to the customer. | +|payment_name | String! | The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction. | +|redirect_url | String | The url that the payor will be redirected to after they have successfully paid. | +|require_phone | Boolean | If set to `true` the payor will be required to enter their phone number before making the payment. | -**`payment_name`: String** -The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction. -**`amount`: Int** -The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount. -This is only required if `amount_is_variable` is set to `false` - -**Optional Arguments** - -**`payment_description`: String** -The description of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction. - -**`currency`: String** -The currency of the payment. - -**`fee_mode`: FeeMode** -The fee mode of the payments that will be made with the payment link. -* `MERCHANT_FEE` -* `SERVICE_FEE` - -**`amount_is_variable`: Boolean** -If set to `true` the payor will be able to enter the amount they want to pay. If set to `false` the payor will be asked to pay the amount specified in `amount`. - -**`min_amount`: Int** -The minimum amount that the payor will be able to pay if `amount_is_variable` is set to `true`. - -**`max_amount`: Int** -The maximum amount that the payor will be able to pay if `amount_is_variable` is set to `true`. - -**`require_phone`: Boolean** -If set to `true` the payor will be required to enter their phone number before they can pay. - -**`call_to_action`: CallToAction** -The call to action that will be displayed on the button at the time of checkout. -* `PAY` -* `DONATE` -* `BOOK` - -**`accepted_payment_methods`: AcceptedPaymentMethods** -The payment methods that will be available to a payor when making a payment. -* `ALL` -* `NOT_CASH` -* `NOT_CARD` -* `NOT_ACH` -* `ONLY_CASH` -* `ONLY_CARD` -* `ONLY_ACH` - -**`account_code`: String** -Account Code that will be passed in to every transaction made with this payment link. - -**`custom_success_message`: String** -The message that will be displayed to the payor after they have successfully paid. Cannot be used with `redirect_url`. - -**`redirect_url`: String** -The url that the payor will be redirected to after they have successfully paid. Cannot be used with `custom_success_message`. **Returns** @@ -314,17 +229,17 @@ The url that the payor will be redirected to after they have successfully paid. } ``` - +*** ## Update a Payment Link ```js mutation { updatePaymentLink(input: { - accepted_payment_methods: AcceptedPaymentMethods, + accepted_payment_methods: AcceptedPaymentMethodsEnum, account_code: String, amount: Int, amount_is_variable: Boolean, - call_to_action: CallToAction, + call_to_action: CallToActionType, currency: String, custom_success_message: String, fee_mode: FeeMode, @@ -362,78 +277,33 @@ mutation { } ``` -**Arguments** - -**`input`: UpdatePaymentLinkInput** -This object contains all the details needed to create a payment link. - -**Required Arguments** - -**`merchant_uid`: String** -The merchant uid of the merchant that will be creating the payment link. - -**`link_id`: String** -The id of the payment link that will be updated. - -**Optional Arguments** - -**`link_name`: String** -The name you give to the payment link for internal tracking purposes. - -**`payment_name`: String** -The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction. - -**`amount`: Int** -The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount. -This is required if `amount_is_variable` is set to `false` - -**`payment_description`: String** -The description of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction. - -**`currency`: String** -The currency of the payment. - -**`fee_mode`: FeeMode** -The fee mode of the payments that will be made with the payment link. -* `MERCHANT_FEE` -* `SERVICE_FEE` - -**`amount_is_variable`: Boolean** -If set to `true` the payor will be able to enter the amount they want to pay. If set to `false` the payor will be asked to pay the amount specified in `amount`. - -**`min_amount`: Int** -The minimum amount that the payor will be able to pay if `amount_is_variable` is set to `true`. - -**`max_amount`: Int** -The maximum amount that the payor will be able to pay if `amount_is_variable` is set to `true`. - -**`require_phone`: Boolean** -If set to `true` the payor will be required to enter their phone number before they can pay. - -**`call_to_action`: CallToAction** -The call to action that will be displayed on the button at the time of checkout. -* `PAY` -* `DONATE` -* `BOOK` - -**`accepted_payment_methods`: AcceptedPaymentMethods** -The payment methods that will be available to a payor when making a payment. -* `ALL` -* `NOT_CASH` -* `NOT_CARD` -* `NOT_ACH` -* `ONLY_CASH` -* `ONLY_CARD` -* `ONLY_ACH` - -**`account_code`: String** -Account Code that will be passed in to every transaction made with this payment link. - -**`custom_success_message`: String** -The message that will be displayed to the payor after they have successfully paid. Cannot be used with `redirect_url`. - -**`redirect_url`: String** -The url that the payor will be redirected to after they have successfully paid. Cannot be used with `custom_success_message`. +**Parameters** + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|input |UpdatePaymentLinkInput|This object contains all the details needed to update a payment link.| + +**UpdatePaymentLinkInput** + +|Key | type | description | +|-------------------|-----------------------------------------------------------|---------------------------------------| +|accepted_payment_methods| [AcceptedPaymentMethodsEnum](#acceptedpaymentmethodsenum) |The payment methods that will be available to a payor when making a payment.| +|account_code | String |Account Code that will be passed in to every transaction made with this payment link.| +|amount | Int |The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount.| +|amount_is_variable | Boolean |If set to `true` the payor will be able to enter the amount they want to pay.| +|call_to_action | [CallToActionType](#calltoactiontype) |The call to action that will be displayed on the button at the time of checkout.| +|currency | String |The currency of the payment.| +|custom_success_message| String |The message that will be displayed to the payor after they have successfully paid.| +|fee_mode | FeeMode |The fee mode of the payments that will be made with the payment link.| +|link_id | String! |The id of the payment link that will be updated.| +|link_name | String |The name you give to the payment link for internal tracking purposes.| +|max_amount | Int |The maximum amount the payor can pay if `amount_is_variable` is set to `true`.| +|merchant_uid | String! |The merchant uid of the merchant that will be creating the payment link.| +|min_amount | Int |The minimum amount the payor can pay if `amount_is_variable` is set to `true`.| +|payment_description| String |The description of the payment that will be displayed to the customer.| +|payment_name | String |The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction.| +|redirect_url | String |The url that the payor will be redirected to after they have successfully paid.| +|require_phone | Boolean |If set to `true` the payor will be required to enter their phone number before making the payment.| **Returns** diff --git a/docs/api/payment_method_token.md b/docs/api/payment_method_token.md index 5c6a368..8be8dbd 100644 --- a/docs/api/payment_method_token.md +++ b/docs/api/payment_method_token.md @@ -8,6 +8,7 @@ title: "" Payment Method Tokens are meant to store info that represents a tokenized Bank Account, Credit Card, or Debit Card. +*** ## The Payment Method Token Object ```graphql { @@ -30,68 +31,27 @@ Payment Method Tokens are meant to store info that represents a tokenized Bank A wallet_type: WalletType } ``` - -**`address_line1`: String** -The first line of the billing address. - -**`address_line2`: String** -The second line of the billing address. - -**`card_brand`: String** -The brand of the card. Null if the payment_type is not a card. - -**`city`: String** -The city of the billing address. - -**`country`: String** -The country of the billing address. - -**`exp_date`: String** -The expiration date of the card. Null if the payment_type is not a card. Format: `MMYY` - -**`full_name`: String** -The name on card or bank account. - -**`is_active`: Boolean** -Whether or not the payment method token is active. - -**`last_four`: String** -The last four digits of the card or bank account number. - -**`merchant_uid`: String** -The Pay Theory unique identifier assigned to the merchant that the payment_method_token belongs to. - -**`metadata`: AWSJSON** -Any additional data that was stored with the payment method token. - -**`payment_method_id`: String** -The unique payment method id. - -**`payment_type`: PaymentType** -The type of payment method. It can be one of the following: -* `CARD` -* `ACH` - -**`payor`: Payor** -The payor object. Refer to the [Payor](payor#the-payor-object) docs for more info. - -**`postal_code`: String** -The postal code of the billing address. - -**`region`: String** -The region of the billing address. - -**`wallet_type`: WalletType** -The type of wallet that the payment method token is stored in. It can be one of the following: -* `APPLE_PAY` -* `CLICK_TO_PAY` -* `GOOGLE_PAY` -* `SAMSUNG_PAY` -* `VISA_STAGED` - -*Some wallet types are not available for use at this time.* - - +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|address_line1 |String |The first line of the billing address.| +|address_line2 |String |The second line of the billing address.| +|card_brand |String |The brand of the card. Null if the payment_type is not a card.| +|city |String |The city of the billing address.| +|country |String |The country of the billing address.| +|exp_date |String |The expiration date of the card. Null if the payment_type is not a card. Format: `MMYY`| +|full_name |String |The name on card or bank account.| +|is_active |Boolean |Whether or not the payment method token is active.| +|last_four |String |The last four digits of the card or bank account number.| +|merchant_uid |String |The Pay Theory unique identifier assigned to the merchant that the payment_method_token belongs to.| +|metadata |AWSJSON |Any additional data that was stored with the payment method token. | +|payment_method_id |String |The unique payment method id.| +|payment_type |PaymentType |The type of payment method. It can be one of the following: `CARD`, `ACH`| +|payor |Payor |The payor object. Refer to the [Payor](payor#the-payor-object) docs for more info.| +|postal_code |String |The postal code of the billing address.| +|region |String |The region of the billing address.| +|wallet_type |WalletType |The type of wallet that the payment method token is stored in. It can be one of the following: `APPLE_PAY`, `CLICK_TO_PAY`, `GOOGLE_PAY`, `SAMSUNG_PAY`, `VISA_STAGED`| + +*** ## Query Payment Method Tokens ```graphql { @@ -122,32 +82,20 @@ The type of wallet that the payment method token is stored in. It can be one of } ``` -**Arguments** +**Parameters** -**`limit`: Int** -The number of payment_method_tokens to return. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|direction |MoveDirection|The direction of the pagination. Makes sure the results are returned in the correct order.| +|limit |Int |The number of payment_method_tokens to return.| +|offset |String |The value of the offset item for which the list is being sorted.| +|offset_id |String |The `payment_method_id` of the offset item.| +|query |QueryObject |The query to filter the payment_method_tokens with based on Pay Theory defined data. Detailed information about the query object can be found [here](query).| -**`direction`: String** -The direction of the pagination. Makes sure the results are returned in the correct order. -* `FORWARD` -* `BACKWARD` - -**`offset`: String** -The value of the offset item for which the list is being sorted. -If the direction is `FORWARD`, the offset item is the last item in the previous list. -If the direction is `BACKWARD`, the offset is the first item in the previous list. - -**`offset_id`: String** -The `payment_method_id` of the offset item. If the direction is `FORWARD`, the offset item is the last item in the list. If the direction is `BACKWARD`, the offset is the first item in the list. - -**`query`: QueryObject** -The query to filter the payment_method_tokens with based on Pay Theory defined data. Detailed information about the query object can be found [here](query). - -**Nested Arguments** -#### Metadata, Payor -**`query_list`: QueryPair[]** -The query list to filter the Metadata and/or Payor tied to the Payment Method. This will ensure that only Payment Methods that have Metadata and/or Payors that match these queries. Detailed information about the query list can be found [here](query). +**Nested Queries** +Payment Method Tokens can also be filtered by passing a query_list to the metadata or payor. +This will only return Payment Method Tokens that have Metadata or Payors that match these queries. Detailed information about the query list can be found [here](query). **Returns** @@ -169,13 +117,12 @@ The query list to filter the Metadata and/or Payor tied to the Payment Method. T } } ``` +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|items |[PaymentMethodToken]|The list of payment_method_tokens that are returned from the query.| +|total_row_count |Int |The total number of payment_method_tokens that match the query. Used to help with pagination.| -**`items`: [PaymentMethodToken]** -The list of payment_method_tokens that are returned from the query. Objects will include all keys that are passed in with the query. - -**`total_row_count`: Int** -The total number of payment_method_tokens that match the query. Used to help with pagination. - +*** ## Create Payment Method This mutation will create a payment method token for a payor. The payment method token can be used to create a payment method for a merchant. *You must be PCI L1 compliant to use this mutation.* @@ -189,18 +136,17 @@ mutation { } ``` -**Arguments** +**Parameters** -**`payment_method`: PaymentMethodInput** -The payment method input object. Refer to the [PaymentMethodInput](#payment-method-input-object) docs for more info. - -**`merchant_uid`: String** -The Pay Theory unique identifier assigned to the merchant that the payment_method_token belongs to. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|payment_method |PaymentMethodInput|The payment method input object. Refer to the [PaymentMethodInput](#payment-method-input-object) docs for more info.| +|merchant_uid |String |The Pay Theory unique identifier assigned to the merchant that the payment_method_token belongs to.| **Returns** The payment method token object. Refer to the [Payment Method Token](#the-payment-method-token-object) for more info. - +*** ## Payment Method Input Object This is the input object used when passing in payment method into any mutation that requires it. *You must be PCI L1 compliant to use this. For more details contact support@paytheory.com* @@ -215,7 +161,16 @@ This is the input object used when passing in payment method into any mutation t } ``` -**`ach`: AchInput** +|Key | type | description | +|-------------------|---------------------------------|---------------------------------------| +|ach | [AchInput](#ach-input-object) |The ach input object.| +|card | [CardInput](#card-input-object) |The card input object.| +|metadata | AWSJSON |Any additional data that you want to store with the payment method token. This data will be returned with the payment method token when queried.| +|payor | PayorInput |The payor input object. Refer to the [PayorInput](payor#the-payor-input-object) docs for more info.| +|payor_id | String |The unique payor id for the payor this payment method token belongs to.| + +*** +## ACH Input Object The ach input object. It contains the following fields: ```graphql @@ -233,42 +188,26 @@ The ach input object. It contains the following fields: } ``` -* **`address_line1`: String** -The first line of the billing address. - -* **`address_line2`: String** -The second line of the billing address. - -* **`account_number`: String!** -The account number of the bank account. - -* **`account_type`: AchAccountType!** -The type of bank account. It can be one of the following: - * `BUSINESS_CHECKING` - * `BUSINESS_SAVINGS` - * `PERSONAL_CHECKING` - * `PERSONAL_SAVINGS` - -* **`city`: String** -The city of the billing address. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|address_line1 |String |The first line of the billing address.| +|address_line2 |String |The second line of the billing address.| +|account_number |String! |The account number of the bank account.| +|account_type |AchAccountType|The type of bank account. It can be one of the following: `BUSINESS_CHECKING`, `BUSINESS_SAVINGS`, `PERSONAL_CHECKING`, `PERSONAL_SAVINGS`| +|city |String |The city of the billing address.| +|country |String |The country of the billing address.| +|name_on_account |String! |The name on the bank account.| +|postal_code |String |The postal code of the billing address.| +|region |String |The region of the billing address.| +|routing_number |String! |The routing number of the bank account.| -* **`country`: String** -The country of the billing address. -* **`name_on_account`: String!** -The name on the bank account. +*** +## Card Input Object -* **`postal_code`: String** -The postal code of the billing address. - -* **`region`: String** -The region of the billing address. +The card input object. It contains the following fields: -* **`routing_number`: String!** -The routing number of the bank account. -**`card`: CardInput** -The card input object. It contains the following fields: ```graphql { @@ -284,46 +223,30 @@ The card input object. It contains the following fields: security_code: String! } ``` - -* **`address_line1`: String** -The first line of the billing address. - -* **`address_line2`: String** -The second line of the billing address. - -* **`card_number`: String!** -The card number. - -* **`city`: String** -The city of the billing address. - -* **`country`: String** -The country of the billing address. - -* **`exp_date`: CardExpirationInput!** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|address_line1 |String |The first line of the billing address.| +|address_line2 |String |The second line of the billing address.| +|card_number |String! |The card number.| +|city |String |The city of the billing address.| +|country |String |The country of the billing address.| +|exp_date |CardExpirationInput!|The card expiration input object. Refer to the [CardExpirationInput](#card-expiration-input) docs for more info.| +|full_name |String |The name on the card.| +|postal_code |String! |The postal code of the billing address.| +|region |String |The region of the billing address.| +|security_code |String! |The security code of the card.| + +*** +## Card Expiration Input The card expiration input object. It contains the following fields: - * **`month`: String!** -The month of the card expiration date. Format: `MM` - * **`year`: String!** -The year of the card expiration date. Format: `YY` - -* **`full_name`: String** -The name on the card. - -* **`postal_code`: String!** -The postal code of the billing address. - -* **`region`: String** -The region of the billing address. - -* **`security_code`: String!** -The security code of the card. -**`metadata`: AWSJSON** -Any additional data that you want to store with the payment method token. This data will be returned with the payment method token when queried. - -**`payor`: PayorInput** -The payor input object. Refer to the [PayorInput](payor#the-payor-input-object) docs for more info. - -**`payor_id`: String** -The unique payor id for the payor this payment method token belongs to. \ No newline at end of file +```graphql +{ + month: String! + year: String! +} +``` +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|month |String! |The month of the expiration date. Format: `MM`| +|year |String! |The year of the expiration date. Format: `YY`| diff --git a/docs/api/payor.md b/docs/api/payor.md index 19e5c60..5dacf1f 100644 --- a/docs/api/payor.md +++ b/docs/api/payor.md @@ -8,6 +8,7 @@ title: "" Payors are used to track payor info that can be tied to other data objects in Pay Theory. +*** ## The Payor Object ```graphql { @@ -25,48 +26,26 @@ Payors are used to track payor info that can be tied to other data objects in Pa region: String } ``` - -**`address_line1`: String** -The first line of the address of the payor. - -**`address_line2`: String** -The second line of the address of the payor. - -**`city`: String** -The city of the payor. - -**`country`: String** -The country of the payor. - -**`email`: String** -The email address of the payor. - -**`full_name`: String** -The full name of the payor. - -**`merchant_uid`: String** -The Pay Theory unique identifier assigned to the merchant that the payor belongs to. - -**`metadata`: AWSJSON** -The metadata to attach to the payor. This is a JSON object that can contain any data that you want to attach to the payor. - -**`payor_id`: String** -The unique payor id. - -**`phone`: String** -The phone number of the payor. - -**`postal_code`: String** -The postal code of the payor. - -**`region`: String** -The region of the payor. - - +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|address_line1 |String |The first line of the address of the payor.| +|address_line2 |String |The second line of the address of the payor.| +|city |String |The city of the payor.| +|country |String |The country of the payor.| +|email |String |The email address of the payor.| +|full_name |String |The full name of the payor.| +|merchant_uid |String |The Pay Theory unique identifier assigned to the merchant that the payor belongs to.| +|metadata |AWSJSON |The metadata to attach to the payor. This is a JSON object that can contain any data that you want to attach to the payor.| +|payor_id |String |The unique payor id.| +|phone |String |The phone number of the payor.| +|postal_code |String |The postal code of the payor.| +|region |String |The region of the payor.| + +*** ## Query Payors ```graphql { - payors(direction: FORWARD, limit: 10, offset: "", offset_id: "", query: QueryObject) { + payors(direction: MoveDirection, limit: Int, offset: String, offset_id: String, query: QueryObject) { items { address_line1 address_line2 @@ -86,31 +65,20 @@ The region of the payor. } ``` -**Arguments** - -**`limit`: Int** -The number of payors to return. +**Parameters** -**`direction`: String** -The direction of the pagination. Makes sure the results are returned in the correct order. -* `FORWARD` -* `BACKWARD` +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|direction |MoveDirection|The direction of the pagination. Makes sure the results are returned in the correct order.| +|limit |Int |The number of payors to return.| +|offset |String |The value of the offset item for which the list is being sorted.| +|offset_id |String |The `payor_id` of the offset item.| +|query |QueryObject |The query to filter the payors with based on Pay Theory defined data. Detailed information about the query object can be found [here](query).| -**`offset`: String** -The value of the offset item for which the list is being sorted. -If the direction is `FORWARD`, the offset item is the last item in the previous list. -If the direction is `BACKWARD`, the offset is the first item in the previous list. +**Nested Queries** +Payors can also be filtered by passing a query_list to the metadata. -**`offset_id`: String** -The `payor_id` of the offset item. If the direction is `FORWARD`, the offset item is the last item in the list. If the direction is `BACKWARD`, the offset is the first item in the list. - -**`query`: QueryObject** -The query to filter the payors with based on Pay Theory defined data. Detailed information about the query object can be found [here](query). - -**Nested Arguments** -#### Metadata -**`query_list`: QueryPair[]** -The query list to filter the Metadata tied to the Payor. This will ensure that only Payors that have Metadata that match these queries. Detailed information about the query list can be found [here](query). +This will only return Payors that have Metadata that match these queries. Detailed information about the query list can be found [here](query). **Returns** @@ -134,12 +102,12 @@ The query list to filter the Metadata tied to the Payor. This will ensure that o } ``` -**`items`: [Payor]** -The list of payors that are returned from the query. Objects will include all keys that are passed in with the query. - -**`total_row_count`: Int** -The total number of payors that match the query. Used to help with pagination. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|items |[Payor] |The list of payors that are returned from the query.| +|total_row_count |Int |The total number of payors that match the query. Used to help with pagination.| +*** ## Create Payor ```graphql mutation { @@ -159,15 +127,16 @@ mutation { } ``` -**Arguments** +**Parameters** -**`input`: PayorInput** -The input object that contains the payor information to create a new payor. Detailed information about the input object can be found [here](#the-payor-input-object). +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|input |PayorInput |The input object that contains the payor information to create a new payor. Detailed information about the input object can be found [here](#the-payor-input-object).| **Returns** This mutation returns the payor object that was created. - +*** ## The Payor Input Object ```graphql { @@ -185,35 +154,16 @@ This mutation returns the payor object that was created. } ``` -**`address_line1`: String** -The first line of the address of the payor. - -**`address_line2`: String** -The second line of the address of the payor. - -**`city`: String** -The city of the payor. - -**`country`: String** -The country of the payor. - -**`email`: String** -The email address of the payor. - -**`full_name`: String** -The full name of the payor. - -**`merchant_uid`: String** -The Pay Theory unique identifier assigned to the merchant that the payor belongs to. - -**`metadata`: AWSJSON** -The metadata to attach to the payor. This is a JSON object that can contain any data that you want to attach to the payor. - -**`phone`: String** -The phone number of the payor. - -**`postal_code`: String** -The postal code of the payor. - -**`region`: String** -The region of the payor. +| Key | type | description | +|---------------|---------|-----------------------------------------------------------------------------------------------------------------------------| +| address_line1 | String | The first line of the address of the payor. | +| address_line2 | String | The second line of the address of the payor. | +| city | String | The city of the payor. | +| country | String | The country of the payor. | +| email | String | The email address of the payor. | +| full_name | String | The full name of the payor. | +| merchant_uid | String | The Pay Theory unique identifier assigned to the merchant that the payor belongs to. | +| metadata | AWSJSON | The metadata to attach to the payor. This is a JSON object that can contain any data that you want to attach to the payor. | +| phone | String | The phone number of the payor. | +| postal_code | String | The postal code of the payor. | +| region | String | The region of the payor. | \ No newline at end of file diff --git a/docs/api/query.md b/docs/api/query.md index c22ec7d..68652f6 100644 --- a/docs/api/query.md +++ b/docs/api/query.md @@ -10,55 +10,46 @@ Here we will detail how you can build your own queries to pass into the Pay Theo First let's look at a basic query object, then we can break down its parts. +*** ## The Query Object ```graphql { - query_list: [ - { - key: "full_name", - value: "John Doe", - operator: EQUAL, - conjunctive_operator: NONE_NEXT - } - ], - sort_list: { - direction: ASC, - key: "transfer_date" - } + query_list: [QueryPair] + sort_list: [SortPair] } ``` -**`query_list`: [QueryPair]** -A list of query pairs used to build out a query. - -**`sort_list`: [SortPair]** -A list of sort pairs to define how the data should be sorted. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|query_list |[QueryPair] |A list of query pairs used to build out a query.| +|sort_list |[SortPair] |A list of sort pairs to define how the data should be sorted.| +*** ## Query Pair A query pair is the object to build out a query. There are some required fields and some optional fields. -###### ~ = required - -**`key`: String** -The key to the value you want to query against. - -**`operator`: Operator** -The operator to use to compare the value to the data you are calling. More detail below. - -**`value`: String** -The value to compare the data to. If using the `LIKE` or `NOT_LIKE` operator, this value can contain [wildcard characters](https://www.w3schools.com/sql/sql_wildcards.asp). - -**`in_values`: [String]** -A list of values to compare the data to. This should be used instead of `value` if using the operators `IN` or `NOT_IN`. - -**~`conjunctive_operator`: ConjunctiveOperator** -The conjunctive operator to use to connect the query pair with the next query pair. More detail below. +```graphql +{ + conjunctive_operator: ConjunctiveOperator + in_values: [String] + key: String + operator: Operator + query_group: [QueryPair] + value: String +} +``` -**`query_group`: [QueryPairs]** -A list of query pairs to use to build out a nested query. -A more detailed example is below under the examples section. +| Key | type | description | +|----------------------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| key | String! | The key to the value you want to query against. | +| operator | Operator | The operator to use to compare the value to the data you are calling. More detail below. | +| value | String | The value to compare the data to. If using the `LIKE` or `NOT_LIKE` operator, this value can contain [wildcard characters](https://www.w3schools.com/sql/sql_wildcards.asp). | +| in_values | [String] | A list of values to compare the data to. This should be used instead of `value` if using the operators `IN` or `NOT_IN`. | +| conjunctive_operator | ConjunctiveOperator | The conjunctive operator to use to connect the query pair with the next query pair. More detail below. | +| query_group | [QueryPairs] | A list of query pairs to use to build out a nested query. A more detailed example is below under the examples section. | -### Operators +*** +## Operators These operators are case-sensitive. The following are the available operators: @@ -92,7 +83,8 @@ The data is less than the value. `LESS_EQUAL` The data is less than or equal to the value. -### Conjunctive Operators +*** +## Conjunctive Operators These operators are case-sensitive. Conjunctive operators in the same array must match for a query to work. To mix operators use nested queries with query pairs containing a `query_list`. The following are the available conjunctive operators: @@ -106,24 +98,37 @@ To mix operators use nested queries with query pairs containing a `query_list`. `NONE_NEXT` The final query pair in the list should use this operator since it has nothing to connect to. - +*** ## Sort Pair A sort pair is the object used to tell a query how the data should be sorted. -**~`direction`: String** +```graphql +{ + direction: SortDirection + key: String +} +``` + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|direction |SortDirection|The direction to sort the data. These are case-sensitive.| +|key |String |The key to sort the data by.| + +*** +## Sort Direction + The direction to sort the data. These are case-sensitive. -* `ASC` - * Begins with the least or smallest and ends with the greatest or largest -* `DESC` - * Begins with the greatest or largest and ends with the least or smallest -**~`key`: String** -The key to sort the data by. +`ASC` +Begins with the least or smallest and ends with the greatest or largest +`DESC` +Begins with the greatest or largest and ends with the least or smallest +*** ## Examples -## Settlements With Gross Amount over $10 +### Settlements With Gross Amount over $10 If you wanted to build a query that looked for any settlements that had a gross_amount over $10 and was sorted by gross_amount in ascending order, you would do the following: @@ -153,7 +158,8 @@ If you wanted to build a query that looked for any settlements that had a gross_ } ``` -## Transactions With Status `SETTLED` and the reference starts with `test` +*** +### Transactions With Status `SETTLED` and the reference starts with `test` If you wanted to build a query that looked for any transactions that had a status of `SETTLED` and the `reference` starts with test, you would do the following: @@ -183,7 +189,8 @@ If you wanted to build a query that looked for any transactions that had a statu } ``` -## Transactions with a nested query +*** +### Transactions with a nested query To build nested queries you can use multiple query pairs with at least one containing a `query_group`. ```graphql { @@ -226,7 +233,8 @@ This query would return any transactions where the `status` is SETTLED and the ` This allows for more advanced queries and for you to group `AND_NEXT` and `OR_NEXT` in a single query. -## Querying Sub Objects +*** +### Querying Sub Objects Due to the fact payment method is a nested data object payment method queries be made by passing a separate array of query pairs for the metadata. ```graphql @@ -264,7 +272,8 @@ Due to the fact payment method is a nested data object payment method queries be ``` This would return 10 transactions where the `gross_amount` is greater than 1000 and the payment has a payment method in which `last_four` is equal to 1234. It would be sorted by gross_amount in ascending order. -## Querying On Metadata +*** +### Querying On Metadata Metadata queries work similarly but do not support nested queries using `query_group`. diff --git a/docs/api/recurring.md b/docs/api/recurring.md index 8a8aa55..0c90291 100644 --- a/docs/api/recurring.md +++ b/docs/api/recurring.md @@ -12,76 +12,66 @@ You can create a recurring payment with a set number of payments to enable a pay You can also create a recurring payment with no set payment amounts to enable a subscription for a payor. +*** ## The Recurring Payment Object -```js +```graphql { - recurring_id: String - merchant_uid: String - payor: Payor - payment_method: PaymentMethodToken + account_code: String amount_per_payment: Int - fee_per_payment: Int - total_amount_per_payment: Int + created_date: AWSDateTime currency: String - prev_payment_date: Date - next_payment_date: Date - payment_interval: RecurringInterval fee_mode: FeeMode - remaining_payments: Int - status: RecurringStatus + fee_per_payment: Int is_active: Boolean is_processing: Boolean - recurring_name: String + recurring_id: String + merchant_uid: String + metadata: AWSJSON + mute_all_emails: Boolean + next_payment_date: AWSDate + payment_interval: RecurringInterval + payment_method: PaymentMethodToken + payor: Payor + prev_payment_date: AWSDate recurring_description: String - account_code: String + recurring_name: String reference: String - created_date: DateTime - mute_all_emails: Boolean - metadata: JSON + remaining_payments: Int + status: RecurringStatus + total_amount_per_payment: Int } ``` -**`recurring_id`: String** -The Pay Theory unique identifier assigned to the recurring payment. - -**`merchant_uid`: String** -The Pay Theory unique identifier assigned to the merchant that the recurring payment belongs to. - -**`payor`: Payor** -The payor that the recurring payment belongs to. Refer to the [Payor](payor) for more info. - -**`payment_method`: PaymentMethodToken** -The payment method used to make the recurring payment. Refer to the [Payment Method Token](payment_method_token) for more info. - -**`fee_mode`: FeeMode** -The fee mode for the recurring payment. - -- `MERCHANT_FEE`: Merchant pays fees -- `SERVICE_FEE`: Payor pays fees - -**`amount_per_payment`: Int** -The amount of the recurring payment. - -**`fee_per_payment`: Int** -The fee for the recurring payment. +|Key | type | description | +|-------------------|------------------------------------------|---------------------------------------| +|account_code | String |Custom account code for the recurring payment that will be tied to each payment.| +|amount_per_payment| Int |The amount of the recurring payment.| +|created_date | DateTime |The date the recurring payment was created.| +|currency | String |The type of currency for the recurring payment.| +|fee_mode | FeeMode |The fee mode for the recurring payment.| +|fee_per_payment | Int |The fee for the recurring payment.| +|is_active | Boolean |Whether the recurring payment is active or been disabled.| +|is_processing | Boolean |Whether the recurring payment is currently processing.| +|merchant_uid | String |The Pay Theory unique identifier assigned to the merchant that the recurring payment belongs to.| +|metadata | JSON |Custom metadata for the recurring payment that will be tied to each payment.| +|mute_all_emails | Boolean |Manage whether the payor will receive emails for the recurring payment from Pay Theory.| +|next_payment_date | DateTime |The date of the next payment to be made for the recurring payment.| +|payment_interval | [RecurringInterval](#recurring-interval) |The interval of the recurring payment.| +|payment_method | PaymentMethodToken |The payment method used to make the recurring payment.| +|payor | Payor |The payor that the recurring payment belongs to.| +|prev_payment_date | DateTime |The date of the last payment made for the recurring payment.| +|recurring_description| String |Custom description for the recurring payment.| +|recurring_id | String |The Pay Theory unique identifier assigned to the recurring payment.| +|recurring_name | String |Custom name for the recurring payment.| +|reference | String |Custom reference for the recurring payment that will be tied to each payment.| +|remaining_payments | Int |The number of payments remaining for the recurring payment.| +|status | [RecurringStatus](#recurring-status) |The status of the recurring payment.| +|total_amount_per_payment| Int |The amount the payor will be charged for the recurring payment.| + +*** +## Recurring Interval -**`total_amount_per_payment`: Int** -The amount the payor will be charged for the recurring payment. - -- Same as `amount_per_payment` if your fee mode is `MERCHANT_FEE` -- Adjusted total of `amount_per_payment` + `fee_per_payment` if your fee mode is `SERVICE_FEE` - -**`currency`: String** -The type of currency for the recurring payment. - -**`prev_payment_date`: Date** -The date of the last payment made for the recurring payment. - -**`next_payment_date`: Date** -The date of the next payment to be made for the recurring payment. - -**`payment_interval`: RecurringInterval** The interval of the recurring payment. The following intervals are available: - `WEEKLY` @@ -91,46 +81,22 @@ The interval of the recurring payment. The following intervals are available: - `BI_ANNUAL` - `ANNUAL` -**`remaining_payments`: Int** -The number of payments remaining for the recurring payment. For a recurring date with no set amount of payments, this will be `null`. - -**`status`: RecurringStatus** -The status of the recurring payment. - -- `SYSTEM_FAILURE`: The recurring payment failed due to a system error. Will retry automatically till system issue resolved. -- `INSTRUMENT_FAILURE`: The recurring payment failed due to a payment method error. Will not retry until payment method is updated. -- `SUCCESS`: The last payment was successful. - -**`is_active`: Boolean** -Whether the recurring payment is active or been disabled. +*** +## Recurring Status -**`is_processing`: Boolean** -Whether the recurring payment is currently processing. +The status of the recurring payment. The following statuses are available: -**`recurring_name`: String** -Custom name for the recurring payment. - -**`recurring_description`: String** -Custom description for the recurring payment. - -**`account_code`: String** -Custom account code for the recurring payment that will be tied to each payment. - -**`reference`: String** -Custom reference for the recurring payment that will be tied to each payment. - -**`created_date`: DateTime** -The date the recurring payment was created. - -**`mute_all_emails`: Boolean** -Manage whether the payor will receive emails for the recurring payment from Pay Theory. - -**`metadata`: JSON** -Custom metadata for the recurring payment that will be tied to each payment. +- `SYSTEM_FAILURE` + - The recurring payment failed due to a system error. Will retry automatically till system issue resolved. +- `INSTRUMENT_FAILURE` + - The recurring payment failed due to a payment method error. Will not retry until payment method is updated. +- `SUCCESS` + - The last payment was successful. +*** ## Get Recurring Payments -```js +```graphql { recurringPayments(direction: MoveDirection, limit: Int, offset: String, offset_id: String, query: QueryObject) { items { @@ -166,70 +132,37 @@ Custom metadata for the recurring payment that will be tied to each payment. } ``` -**Arguments** - -**`limit`: Int** -The number of recurring payments to return. +**Parameters** -**`direction`: String** -The direction of the pagination. Makes sure the results are returned in the correct order. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|direction |MoveDirection|The direction of the pagination. Makes sure the results are returned in the correct order.| +|limit |Int |The number of recurring payments to return.| +|offset |String |The value of the offset item for which the list is being sorted.| +|offset_id |String |The `recurring_id` of the offset item.| +|query |QueryObject |The query to filter the recurring payments with based on Pay Theory defined data. Detailed information about the query object can be found [here](query).| -- `FORWARD` -- `BACKWARD` -**`offset`: String** -The value of the offset item for which the list is being sorted. -If the direction is `FORWARD`, the offset item is the last item in the previous list. -If the direction is `BACKWARD`, the offset is the first item in the previous list. +**Nested Queries** +Recurring Payments can also be filtered by passing a query_list to the metadata, payment method, or payor. -**`offset_id`: String** -The `recurring_id` of the offset item. If the direction is `FORWARD`, the offset item is the last item in the list. If the direction is `BACKWARD`, the offset is the first item in the list. +This will only return Recurring Payments that have Metadata, Payment Methods, or Payors that match these queries. Detailed information about the query list can be found [here](query). -**`query`: QueryObject** -The query to filter the recurring payments with based on Pay Theory defined data. Detailed information about the query object can be found [here](query). - -**Nested Arguments** - -**Metadata, PaymentMethod, PaymentMethod/Payor, Payor** - -**`query_list`: QueryPair[]** -The query list to filter the Metadata, Payor, Payment Method, or Payor tied to the Payment Method. -This will ensure that only Recurring Payments that have Metadata, Payors, Payment Methods, or Payment Method Payors that match these queries. -Detailed information about the query list can be found [here](query). **Returns** -```js -{ - "data": { - "recurringPayments": { - "items": [ - { - "recurring_id": "pt_rec_1", - }, - { - "recurring_id": "pt_rec_2" - }, - ... - ], - "total_row_count": 256 - } - } -} -``` - -**`items`: [Settlement]** -The list of recurring payments that are returned from the query. - -**`total_row_count`: Int** -The total number of recurring payments that match the query. Used to help with pagination. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|items |[RecurringPayment] |The list of recurring payments that are returned from the query.| +|total_row_count |Int |The total number of recurring payments that match the query. Used to help with pagination.| +*** ## Create Recurring Payment -```js +```graphql mutation { createRecurringPayment(input: { - account_code: String, + account_code: String, amount: Int, currency: String, fee_mode: FEE_MODE, @@ -247,229 +180,106 @@ mutation { mute_all_emails: Boolean }) { account_code - amount_per_payment - created_date - currency - fee_mode - fee_per_payment - is_active - is_processing - merchant_uid - metadata - next_payment_date - payment_interval - payment_method { - ...payment_method_object - } - payor { - ...payor_object - } - prev_payment_date - recurring_description - recurring_id - recurring_name - reference - remaining_payments - status - total_amount_per_payment + ...reccuring_payment_object } } ``` -**Arguments** - -**`input`: CreateRecurringPaymentInput** -This object contains all the details needed to create a recurring payment. - -**Required Arguments** - -**`merchant_uid`: String** -The Pay Theory merchant unique identifier for the merchant that is creating the recurring payment. +**Parameters** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|input |RecurringPaymentInput|The input object that contains the details to create a new recurring payment.| + +**RecurringPaymentInput** + +| Key | type | description | +|-----------------------|-------------------------------------------|----------------------------------------------------------------------------------------------------------| +| account_code | String | Custom account code for the recurring payment that will be tied to each payment. | +| amount | Int! | The amount of the recurring payment. | +| currency | String | The type of currency for the recurring payment. | +| fee_mode | FeeMode | The fee mode for the recurring payment. | +| first_payment_date | Date | The date of the first payment. If not provided, the first payment will be made immediately. | +| merchant_uid | String! | The `merchant_uid` of the merchant that the recurring payment belongs to. | +| metadata | JSON | Custom metadata for the recurring payment that will be tied to each payment. | +| payment_count | Int | The number of payments to be made. If not provided, the recurring payment will continue until cancelled. | +| payment_interval | [RecurringInterval!](#recurring-interval) | The interval of the recurring payment. | +| payment_method_id | String! | The `payment_method_id` of the tokenized payment method that will be used for the recurring payment. | +| payor_id | String | The `payor_id` of the payor that the recurring payment will be tied to. | +| payor | Payor | The payor object that the recurring payment will be tied to. | +| recurring_description | String | Custom description for the recurring payment that will be tied to each payment. | +| recurring_name | String! | Custom name for the recurring payment. | +| reference | String | Custom reference for the recurring payment that will be tied to each payment. | +| mute_all_emails | Boolean | Manage whether the payor will receive emails for the recurring payment from Pay Theory. | -**`amount`: Int** -The amount of the recurring payment. - -**`payment_interval`: PAYMENT_INTERVAL** -The interval of the recurring payment. The following intervals are available: -- `WEEKLY` -- `BI_WEEKLY` -- `MONTHLY` -- `QUARTERLY` -- `BI_ANNUAL` -- `ANNUAL` - -**`payment_method_id`: String** -The `payment_method_id` of the tokenized payment method that will be used for the recurring payment. - -**`recurrring_name`: String** -Custom name for the recurring payment. This is used to identify the recurring payment in customer emails and the Pay Theory dashboard. - -You need one of the following two variables: - -**`payor_id`: String** -The `payor_id` of the payor that the recurring payment will be tied to. - -**`payor`: Payor** -The payor object that the recurring payment will be tied to. -This will create a new payor in the system. Refer to the [Payor](payor) for more info. - -**Optional Arguments** - -**`account_code`: String** -Custom account code for the recurring payment that will be tied to each payment. - -**`currency`: String** -The currency of the recurring payment. If not provided, the currency will default to 'USD'. - -**`fee_mode`: FEE_MODE** -The fee mode of the recurring payment. The following fee modes are available: - -- `MERCHANT_FEE` (default) -- `SERVICE_FEE` - -**`first_payment_date`: Date** -The date of the first payment. If not provided, the first payment will be made immediately. - -**`metadata`: JSON** -Custom metadata for the recurring payment that will be tied to each payment. - -**`mute_all_emails`: Boolean** -If set to `true`, no emails will be sent to the payor for this recurring payment. Default is `false`. - -**`payment_count`: Int** -The number of payments to be made. If not provided, the recurring payment will continue until cancelled. - -**`recurring_description`: String** -Custom description for the recurring payment that will be tied to each payment. - -**`reference`: String** -Custom reference code for the recurring payment that will be tied to each payment. **Returns** The call will return the newly created recurring payment. -```js -{ - "data": { - "createRecurringPayment": { - ...recurring_payment_object - } - } -} -``` - +*** ## Update Recurring Payment -```js +```graphql mutation { - updateRecurringPayment(input: { + updateRecurringPayment( + input: { payment_method_id: String, - recurring_id: String, - pay_all_missed_payments: Boolean + recurring_id: String, + pay_all_missed_payments: Boolean mute_all_emails: Boolean }) { - account_code - amount_per_payment - created_date - currency - fee_mode - fee_per_payment - is_active - is_processing - merchant_uid - metadata - mute_all_emails - next_payment_date - payment_interval - payment_method { - ...payment_method_object - } - payor { - ...payor_object - } - prev_payment_date - recurring_description - recurring_id - recurring_name - reference - remaining_payments - status - total_amount_per_payment + ... recurring_payment_object } } ``` -**Arguments** - -**`input`: CreateRecurringPaymentInput** -This object contains all the details needed to create a recurring payment. - -**Required Arguments** +**Parameters** -**`recurring_id`: String** -The `recurring_id` of the recurring payment to be updated. +|Key | type | description | +|------------------|------------------------------|-----------------------------------------------------------------------------| +|input | UpdateeRecurringPaymentInput | The input object that contains the details to update the recurring payment. | -**`payment_method_id`: String** -The `payment_method_id` of the tokenized payment method that will be used for the recurring payment. -If recurring payment is in a Failed state it will try to run a payment with the new payment method and get it back in to a Successful state. -**Optional Arguments** +**UpdateRecurringPaymentInput** -**`pay_all_missed_payments`: Boolean** -If the recurring payment has a set number of payments (Payment Plan) and is in a Failed state, this will make a one time charge to account for all missed payments to get it back in to a Successful state. - -If the recurring payment does not have a set number of payments (Subscription) you are unable to use this option and only a single payment will be charged. - -**`mute_all_emails`: Boolean** -If set to `true`, no emails will be sent to the payor for this recurring payment. +| Key | type | description | +|-------------------------|---------|---------------------------------------| +| payment_method_id | String |The `payment_method_id` of the tokenized payment method that will be used for the recurring payment.| +| recurring_id | String! |The `recurring_id` of the recurring payment to be updated.| +| pay_all_missed_payments | Boolean |If the recurring payment has a set number of payments (Payment Plan) and is in a Failed state, this will make a one time charge to account for all missed payments to get it back in to a Successful state.| +| mute_all_emails | Boolean |If set to `true`, no emails will be sent to the payor for this recurring payment.| **Returns** The call will return the updated recurring payment object. -```js -{ - "data": { - "updateRecurringPayment": { - ...recurring_payment_object - } - } -} -``` - +*** ## Cancel Recurring Payment *Once a recurring payment is cancelled, it cannot be reactivated.* -```js +```graphql mutation { cancelRecurringPayment(recurring_id: String) } ``` -**Arguments** +**Parameters** -**`recurring_id`: String** -The `recurring_id` of the recurring payment to be cancelled. +|Key |type | description | +|-------------------|-------------|---------------------------------------------------------------| +|recurring_id |String | The `recurring_id` of the recurring payment to be cancelled. | **Returns** The call will return `true` if the recurring payment was successfully cancelled. -```js -{ - "data": { - "cancelRecurringPayment": true - } -} -``` - +*** ## Get Missed Recurring Payment Data This call will return details you need to display the proper amount to the customer to catch up on missed payments for a recurring payment. -```js +```graphql { missedRecurringPaymentData(recurring_id: String) { fee @@ -479,59 +289,39 @@ This call will return details you need to display the proper amount to the custo } ``` -**Arguments** +**Parameters** -**`recurring_id`: String** -The `recurring_id` of the recurring payment to be cancelled. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|recurring_id |String |The `recurring_id` of the recurring payment to get missed payment data for.| **Returns** -```js -{ - "data": { - "missedRecurringPaymentData": { - "fee": 0, - "number_of_payments_missed": 5, - "total_amount_owed": 5000 - } - } -} -``` - -**`fee`: Int** -If the recurring payment has fee_mode set to `SERVICE_FEE`, this will be the total amount of fees that will be charged to the customer to payoff the missed payments. - -If the recurring payment has fee_mode set to `MERCHANT_FEE`, this will be 0. - -**`number_of_payments_missed`: Int** -The number of payments that have been missed. - -**`total_amount_owed`: Int** -The total amount that the customer will owe to payoff the missed payments. - +| Key |type | description | +|---------------------------|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| fee |Int | If the recurring payment has fee_mode set to `SERVICE_FEE`, this will be the total amount of fees that will be charged to the customer to payoff the missed payments.

If the recurring payment has fee_mode set to `MERCHANT_FEE`, this will be 0. | +| number_of_payments_missed |Int | The number of payments that have been missed. | +| total_amount_owed |Int | The total amount that the customer will owe to payoff the missed payments. | +*** ## Create Retry for Failed Recurring Payment This call will allow you to retry a payment for a recurring payment that is in a Failed state. This should be used when the state is `INSTRUMENT_FAILURE` and the issue with the payment method has been addressed. *EX: Payment failed for insufficient funds on the card, but the customer has since made a payment on the balance to resolve the issue.* -```js +```graphql mutation { createRetryForFailedRecurringPayment(recurring_id: "") } ``` -**Arguments** +**Parameters** -**`recurring_id`: String** -The `recurring_id` of the recurring payment to be retried. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|recurring_id |String |The `recurring_id` of the recurring payment to be retried.| **Returns** -```js -{ - "data": { - "createRetryForFailedRecurringPayment": true - } -``` +The call will return `true` if the retry was successfully created. diff --git a/docs/api/settlement.md b/docs/api/settlement.md index 72606b8..703a2a9 100644 --- a/docs/api/settlement.md +++ b/docs/api/settlement.md @@ -28,49 +28,24 @@ Settlements are a batch of payments, disputes, and refunds that are grouped toge updated_row_at: AWSDateTime } ``` -**`currency`: String** -The currency of the settlement. -**`gross_amount`: Int** -The total amount of the settlement before any fees and adjustments. +|Key |type | description | +|-------------------|-------------|-------------------------------------------------------------------------------------------| +|currency |String | The currency of the settlement. | +|gross_amount |Int | The total amount of the settlement before any fees and adjustments. | +|merchant_uid |String | The Pay Theory unique identifier assigned to the merchant that the settlement belongs to. | +|net_amount |Int | The total amount of the settlement after any fees and adjustments. | +|settlement_batch |Int | The unique settlement batch number. | +|settlement_date |String | The date the settlement was created in an ISO 8601 String format. | +|status |String | The status of the settlement. Will be either `PENDING` or `SUCCEEDED`. | +|transaction_debit_count|Int | The number of transactions of type DEBIT that were included in the settlement. | +|transaction_dispute_count|Int | The number of transactions of type DISPUTE that were included in the settlement. | +|transaction_reversal_count|Int | The number of transactions of type REVERSAL that were included in the settlement. | +|transfer_date |String | The date the settlement was transferred to the merchant in an ISO 8601 String format. | +|total_adjustments |Int | The total amount of adjustments that were applied to the settlement. | +|total_fees |Int | The total amount of fees that were applied to the settlement. | +|updated_row_at |String | The date the settlement was last updated in an ISO 8601 String format. | -**`merchant_uid`: String** -The Pay Theory unique identifier assigned to the merchant that the settlement belongs to. - -**`net_amount`: Int** -The total amount of the settlement after any fees and adjustments. - -**`settlement_batch`: Int** -The unique settlement batch number. - -**`settlement_date`: String** -The date the settlement was created in an ISO 8601 String format. - -**`status`: String** -The status of the settlement. -* `PENDING` -* `SUCCEEDED` - -**`transaction_debit_count`: Int** -The number of transactions of type DEBIT that were included in the settlement. - -**`transaction_dispute_count`: Int** -The number of transactions of type DISPUTE that were included in the settlement. - -**`transaction_reversal_count`: Int** -The number of transactions of type REVERSAL that were included in the settlement. - -**`transfer_date`: String** -The date the settlement was transferred to the merchant in an ISO 8601 String format. - -**`total_adjustments`: Int** -The total amount of adjustments that were applied to the settlement. - -**`total_fees`: Int** -The total amount of fees that were applied to the settlement. - -**`updated_row_at`: String** -The date the settlement was last updated in an ISO 8601 String format. ## Query Settlements ```js @@ -95,26 +70,15 @@ The date the settlement was last updated in an ISO 8601 String format. } ``` -**Arguments** - -**`limit`: Int** -The number of settlements to return. - -**`direction`: String** -The direction of the pagination. Makes sure the results are returned in the correct order. -* `FORWARD` -* `BACKWARD` +**Parameters** -**`offset`: String** -The value of the offset item for which the list is being sorted. -If the direction is `FORWARD`, the offset item is the last item in the previous list. -If the direction is `BACKWARD`, the offset is the first item in the previous list. - -**`offset_id`: String** -The `settlement_batch` of the offset item. If the direction is `FORWARD`, the offset item is the last item in the list. If the direction is `BACKWARD`, the offset is the first item in the list. - -**`query`: QueryObject** -The query to filter the settlements with. Detailed information about the query object can be found [here](query). +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|limit |Int |The number of settlements to return.| +|direction |MoveDirection|The direction of the pagination. Makes sure the results are returned in the correct order.| +|offset |String |The value of the offset item for which the list is being sorted.| +|offset_id |String |The `settlement_batch` of the offset item.| +|query |QueryObject |The query to filter the settlements with based on Pay Theory defined data.| **Returns** @@ -136,9 +100,7 @@ The query to filter the settlements with. Detailed information about the query } } ``` - -**`items`: [Settlement]** -The list of settlements that are returned from the query. - -**`total_row_count`: Int** -The total number of settlements that match the query. Used to help with pagination. \ No newline at end of file +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|items |[Settlement] |The list of settlements that are returned from the query.| +|total_row_count |Int |The total number of settlements that match the query. Used to help with pagination.| \ No newline at end of file diff --git a/docs/api/transaction.md b/docs/api/transaction.md index e129ed0..47617e0 100644 --- a/docs/api/transaction.md +++ b/docs/api/transaction.md @@ -8,6 +8,7 @@ title: "" Transactions are a data object that can represent a payment, failed or successful, or a refund. +*** ## The Transaction Object ```js @@ -42,117 +43,104 @@ Transactions are a data object that can represent a payment, failed or successfu } ``` -**`account_code`: String** -Custom defined value passed in as the account code for the transaction. - -**`ach_return_details`: AchReturnDetails** -The details of the ACH return if any. -* `return_code`: String - * The return code of the ACH return. -* `return_details`: String - * A string that describes the return code. -* `transfer_type`: String - * The type of transfer that was made. Options are: - * `CREDIT` - * `DEBIT` - -**`currency`: String** -The type of currency for the transaction. - -**`dispute_status`: DisputeStatus** -The status of the dispute if any. Options are: -* `PENDING` -* `INQUIRY` -* `WON` -* `LOST` - -**`failure_reasons`: [String]** -List of strings, if any, detailing the reason a transaction failed. - -**`fee_mode`: FeeMode** -The fee mode on the transaction. `SERVICE_FEE` charges the fees to the payor. `MERCHANT_FEE` charges the fees to the merchant. Options are: -* `SERVICE_FEE` -* `MERCHANT_FEE` - -**`fees`: Int** -The amount of the fees charged for the transaction. - -**`gross_amount`: Int** -The total amount of the transaction. - -**`is_settled`: Boolean** -Whether the transaction has been settled. - -**`merchant_uid`: String** -The Pay Theory unique identifier for the merchant the transaction is for. - -**`metadata`: AWSJSON** -Custom defined JSON object to be stored with the transaction. - -**`net_amount`: Int** -The total amount of the transaction after fees. - -**`parent_id`: String** -The Pay Theory unique identifier for the parent transaction if any. Should be present for any transactions of type `ACH_RETURN` or `REVERSAL`. - -**`payment_method`: PaymentMethodToken** -The payment method used to make the transaction. Refer to the [Payment Method Token](payment_method_token) for more info. - -**`recurring`: RecurringPayment** -The recurring payment that the transaction belongs to if any. Refer to the [Recurring Payment](recurring) for more info. - -**`reference`: String** -Custom defined value passed in as the reference for the transaction. - -**`refund_reason`: RefundReason** -The reason for the refund if any. -* `reason_code`: RefundReasonCode - * `DUPLICATE` - * `FRAUDULENT` - * `REQUESTED_BY_CUSTOMER` - * `OTHER` -* `reason_details`: String - * Optional additional details passed at the time of the refund - -**`refund_voidable`: Boolean** -Whether the refund can be voided. - -**`refunded_amount`: Int** -The amount of the transaction that has been refunded if any. - -**`settlement_batch`: Int** -The unique settlement batch number the transaction belongs to if settled. - -**`status`: TransactionStatus** -The status of the transaction. Options are: -* `PENDING` -* `SUCCEEDED` -* `FAILED` -* `SETTLED` -* `REFUNDED` -* `PARTIALLY_REFUNDED` -* `VOIDED` -* `RETURNED` - -**`timezone`: String** -The timezone the transaction was made in. - -**`transaction_date`: AWSDateTime** -The date the transaction was made returned as an ISO 8601 string. - -**`transaction_id`: String** -The Pay Theory unique identifier for the transaction. - -**`transaction_type`: TransactionType** -The type of transfer that was made. Options are: -* `ACH_RETURN` -* `DEBIT` -* `FAILURE` -* `REVERSAL` - -**`updated_row_at`: AWSDateTime** -The date and time the transaction was last updated in an ISO 8601 string. +|Key | type | description | +|-------------------|----------------------------------------------------------------------------|---------------------------------------| +|account_code | String |Customer defined account code for the transaction.| +|ach_return_details | AchReturnDetails |The details of the ACH return if any.| +|currency | String |The type of currency for the transaction.| +|dispute_status | [DisputeStatus](dispute#dispute-status) |The status of the dispute if any.| +|failure_reasons | [String] |List of strings, if any, detailing the reason a transaction failed.| +|fee_mode | FeeMode |The fee mode on the transaction.| +|fees | Int |The amount of the fees charged for the transaction.| +|invoice | [Invoice](invoice#the-invoice-object) |The invoice object for the transaction if any.| +|is_settled | Boolean |Whether the transaction has been settled.| +|gross_amount | Int |The total amount of the transaction.| +|merchant_uid | String |The Pay Theory unique identifier for the merchant the transaction is for.| +|metadata | AWSJSON |Custom defined JSON object to be stored with the transaction.| +|net_amount | Int |The total amount of the transaction after fees.| +|parent_id | String |The Pay Theory unique identifier for the parent transaction if any.| +|payment_method | [PaymentMethodToken](payment_method_token#the-payment-method-token-object) |The payment method used to make the transaction.| +|recurring | [RecurringPayment](recurring#the-recurring-payment-object) |The recurring payment that the transaction belongs to if any.| +|reference | String |Customer defined reference for the transaction.| +|refund_reason | RefundReason |The reason for the refund if any.| +|refund_voidable | Boolean |Whether the refund can be voided.| +|refunded_amount | Int |The amount of the transaction that has been refunded if any.| +|settlement_batch | Int |The unique settlement batch number the transaction belongs to if settled.| +|status | [TransactionStatus](#transaction-status) |The status of the transaction.| +|timezone | String |The timezone the transaction was made in.| +|transaction_date | AWSDateTime |The date the transaction was made.| +|transaction_id | String |The Pay Theory unique identifier for the transaction.| +|transaction_type | [TransactionType](#transaction-type) |The type of transfer that was made.| +|updated_row_at | AWSDateTime |The date and time the transaction was last updated.| + +*** +## Ach Return Details +```graphql +{ + return_code: String + return_details: String + transfer_type: AchReturnTransferType +} +``` + +|Key | type | description | +|-------------------|--------------------------------|--------------------------------------------------------------------------------------| +|return_code | String |The return code for the ACH return. | +|return_details | String |The details of the ACH return. | +|transfer_type | [AchReturnTransferType](#ach-return-transfer-type) |The type of transfer that the ACH return is for.| + +*** +## Ach Return Transfer Type + +- `DEBIT` - The ACH return is going to debit the merchant funds. +- `CREDIT` - The ACH return is going to credit the merchant funds. + +*** +## Refund Reason + +```graphql +{ + reason_code: RefundReasonCode + reason_details: String +} +``` + +|Key | type | description | +|-------------------|--------------------------------|--------------------------------------------------------------------------------------| +|reason_code | [RefundReasonCode](#refund-reason-code) |The reason code for the refund.| +|reason_details | String |The details of the refund reason.| + +*** +## Refund Reason Code + +- `DUPLICATE` +- `FRAUDULENT` +- `OTHER` +- `REQUESTED_BY_CUSTOMER` + + +*** +## Transaction Status + +- `PENDING` - The transaction is pending capture. For a sale this automatically changes to `SUCCEEDED` typically within the hour. For an auth that has been set to capture, this will change to `SUCCEEDED` when the settlement batch is created. +- `SUCCEEDED` - The transaction has been captured. +- `FAILED` - The transaction failed to authorize. +- `SETTLED` - The transaction has been settled. +- `REFUNDED` - The transaction has been refunded. +- `PARTIALLY_REFUNDED` - The transaction has been refunded for a portion of the amount. +- `VOIDED` - The transaction has been voided which means it was never captured and will not be settled. +- `RETURNED` - The transaction is an ACH transaction that has had an `ACH_RETURN` created for it. + +*** +## Transaction Type + +- `ACH_RETURN` - The transaction is an ACH return for an ACH Debit or Reversal. Check `parent_id` to find origin. +- `DEBIT` - The transaction is a debit to a payors payment method. +- `FAILURE` - The transaction is a failed debit to a payors payment method. +- `REVERSAL` - The transaction is a reversal on a debit to a payors payment method. Check `parent_id` to find origin. + +*** ## Query Transactions ```graphql { @@ -200,29 +188,18 @@ The date and time the transaction was last updated in an ISO 8601 string. **Arguments** -**`limit`: Int** -The number of transactions to return. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|direction |MoveDirection|The direction of the pagination. Makes sure the results are returned in the correct order.| +|limit |Int |The number of transactions to return.| +|offset |String |The value of the offset item for which the list is being sorted.| +|offset_id |String |The `transaction_id` of the offset item.| +|query |QueryObject |The query to filter the transactions with based on Pay Theory defined data. Detailed information about the query object can be found [here](query).| -**`direction`: String** -The direction of the pagination. Makes sure the results are returned in the correct order. -* `FORWARD` -* `BACKWARD` +**Nested Queries** +Transactions can also be filtered by passing a query_list to the metadata, payment method, or payor tied to the payment method. -**`offset`: String** -The value of the offset item for which the list is being sorted. -If the direction is `FORWARD`, the offset item is the last item in the previous list. -If the direction is `BACKWARD`, the offset is the first item in the previous list. - -**`offset_id`: String** -The `transaction_id` of the offset item. If the direction is `FORWARD`, the offset item is the last item in the list. If the direction is `BACKWARD`, the offset is the first item in the list. - -**`query`: QueryObject** -The query to filter the transactions with based on Pay Theory defined data. Detailed information about the query object can be found [here](query). - -**Nested Arguments** -#### Metadata, PaymentMethod, PaymentMethod/Payor -**`query_list`: QueryPair[]** -The query list to filter the Metadata, Payment Method, or Payor tied to the Payment Method. This will ensure that only Transactions that have Metadata, Payment Methods, or Payors that match these queries. Detailed information about the query list can be found [here](query). +This will only return Transactions that have Metadata, Payment Methods, or Payors that match these queries. Detailed information about the query list can be found [here](query). **Returns** @@ -246,13 +223,12 @@ The query list to filter the Metadata, Payment Method, or Payor tied to the Paym } ``` -**`items`: [Settlement]** -The list of transactions that are returned from the query. - -**`total_row_count`: Int** -The total number of transactions that match the query. Used to help with pagination. - +|Key | type | description | +|-------------------|---------------|--------------------------------------------------------------------------------------| +|items | [Transaction] | The list of transactions that are returned from the query. | +|total_row_count | Int | The total number of transactions that match the query. Used to help with pagination. | +*** ## Create One Time Payment ```graphql @@ -267,7 +243,6 @@ mutation { fee_mode: FeeMode, invoice_id: String, metadata: JSON, - payment_parameters_name: String, receipt_description: String, recurring_id: String, reference: String, @@ -286,57 +261,23 @@ mutation { **Arguments** -**Required Arguments** - -**`amount`: Int** -The amount of the transaction. If the FeeMode is `SERVICE_FEE`, this is the amount of the transaction before fees. - -**`merchant_uid`: String** -The Pay Theory unique identifier for the merchant the transaction is for. - -**`payment_method_id`: String** -The Pay Theory unique identifier for the payment method the transaction will be charged to. - -**`payment_method`: PaymentMethodInput** -The payment method to be used for the transaction. This is required if you are not passing in a `payment_method_id`. Refer to the [Payment Method Input](./payment_method_token.md#payment-method-input-object) for more info. -*You must be PCI L1 compliant to use this. For more details contact support@paytheory.com* - -If your fee mode is `SERVICE_FEE`, you must also pass in the `fee` and `fee_mode` arguments. -**`fee`: Int** -The amount of the fee that will be charged to the payor for the transaction if the FeeMode is `SERVICE_FEE`. - -**`fee_mode`: FeeMode** -The fee mode on the transaction. `SERVICE_FEE` charges the fees to the payor. `MERCHANT_FEE` charges the fees to the merchant. Options are: - -* `SERVICE_FEE` -* `MERCHANT_FEE` (default) - -**Optional Arguments** +| Key | type | description | +|---------------------|------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| amount | Int! | The amount of the transaction. If the FeeMode is `SERVICE_FEE`, this is the amount of the transaction before fees. | +| merchant_uid | String! | The Pay Theory unique identifier for the merchant the transaction is for. | +| payment_method_id | String | The Pay Theory unique identifier for the payment method the transaction will be charged to. | +| payment_method | [PaymentMethodInput](payment_method_token.md#payment-method-input-object) | The payment method to be used for the transaction. This is required if you are not passing in a `payment_method_id`. | +| account_code | String | Customer defined account code for the transaction. | +| currency | String | The type of currency for the transaction. Defaults to `USD`. | +| fee | Int | The amount of the fee that will be charged to the payor for the transaction if the FeeMode is `SERVICE_FEE`. | +| fee_mode | FeeMode | The fee mode on the transaction. `SERVICE_FEE` charges the fees to the payor. `MERCHANT_FEE` charges the fees to the merchant. Options are: | +| invoice_id | String | The Pay Theory unique identifier for the invoice the transaction is for. | +| metadata | JSON | Custom defined JSON object to be stored with the transaction. | +| receipt_description | String | The description of the transaction that will be displayed on the receipt. | +| recurring_id | String | The Pay Theory unique identifier for the recurring payment the transaction is for. | +| reference | String | Customer defined reference for the transaction. | +| send_receipt | Boolean | If the receipt should be sent to the payor. Defaults to `false`. It is sent to the email address on file with the payment method. | -**`account_code`: String** -Customer defined account code for the transaction. - -**`currency`: String** -The type of currency for the transaction. Defaults to `USD`. - -**`invoice_id`: String** -The Pay Theory unique identifier for the invoice the transaction is for. - -**`metadata`: JSON** -Custom defined JSON object to be stored with the transaction. - -**`receipt_description`: String** -The description of the transaction that will be displayed on the receipt. - -**`recurring_id`: String** -The Pay Theory unique identifier for the recurring payment the transaction is for. -If you pass in a recurring id, the transactions amount must be an interval of the recurring payments amount per payment. - -**`reference`: String** -Customer defined reference for the transaction. - -**`send_receipt`: Boolean** -If the receipt should be sent to the payor. Defaults to `false`. It is sent to the email address on file with the payment method. **Returns** @@ -357,34 +298,18 @@ If the receipt should be sent to the payor. Defaults to `false`. It is sent to t } ``` -**`status`: TransactionStatus** -The status of the transaction. Options are: -* `PENDING` -* `SUCCEEDED` -* `FAILED` - -**`amount`: Int** -The amount of the transaction. This is the amount after fees if the FeeMode is `SERVICE_FEE`. - -**`card_brand`: String** -The brand of the card used for the transaction. - -**`last_four`: String** -The last four digits of the card or bank account used for the transaction. - -**`service_fee`: Int** -The amount of the service fee charged for the transaction. This will be 0 if the FeeMode is `MERCHANT_FEE`. - -**`currency`: String** -The type of currency for the transaction. - -**`transaction_id`: String** -The Pay Theory unique identifier for the transaction. - -**`created_at`: DateTime** -The date and time the transaction was created. - - +|Key | type | description | +|-------------------|------------------------------------------|----------------------------------------------------------------------------| +|status | [TransactionStatus](#transaction-status) | The status of the transaction. | +|amount | Int | The amount of the transaction. | +|card_brand | String | The brand of the card used for the transaction. | +|last_four | String | The last four digits of the card or bank account used for the transaction. | +|service_fee | Int | The amount of the service fee charged for the transaction. | +|currency | String | The type of currency for the transaction. | +|transaction_id | String | The Pay Theory unique identifier for the transaction. | +|created_at | DateTime | The date and time the transaction was created. | + +*** ## Create Refund This call will create a refund for a transaction. @@ -400,35 +325,19 @@ mutation { **Arguments** -**Required Arguments** - -**`amount`: Int** -The amount of the refund. This must be less than or equal to the amount of the transaction. - -**`refund_reason`: RefundReason** -The reason for the refund. This is required for all refunds and is made up of the following. - -- **`reason_code`: RefundReasonCode** - - The reason code for the refund. Options are: - - `DUPLICATE` - - `FRAUDULENT` - - `REQUESTED_BY_CUSTOMER` - - `OTHER` -- **`reason_details`: String** (optional) - - Additional details about the reason for the refund. - -**`transaction_id`: String** -The Pay Theory unique identifier for the transaction to refund. - -**Optional Arguments** +|Key | type | description | +|-------------------|--------------------------------|---------------------------------------| +|amount | Int |The amount of the refund. This must be less than or equal to the amount of the transaction.| +|refund_reason | [RefundReason](#refund-reason) |The reason for the refund. This is required for all refunds and is made up of the following.| +|transaction_id | String |The Pay Theory unique identifier for the transaction to refund.| +|refund_email | String |The email address to send the refund receipt to. If not provided an email will not be sent out.| -**`refund_email`: String** -The email address to send the refund receipt to. If not provided an email will not be sent out. **Returns** The call will return a boolean `true` if the refund was created successfully or errors if it fails. +*** ## Calculate Service Fee Amount This call will allow you to calculate what the fee amount should be if using `SERVICE_FEE` for a transaction. @@ -452,13 +361,11 @@ This call will allow you to calculate what the fee amount should be if using `SE **Arguments** -**Required Arguments** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|amount |Int |The amount of the transaction.| +|merchant_uid |String |The Pay Theory unique identifier for the merchant the transaction is for.| -**`amount`: Int** -The amount of the transaction. - -**`merchant_uid`: String** -The Pay Theory unique identifier for the merchant the transaction amount being calculated is for. **Returns** @@ -483,18 +390,13 @@ The Pay Theory unique identifier for the merchant the transaction amount being c You are returned two objects, one for ACH and one for Card. Each object contains the following fields: -**`fee`: Int** -The amount that the service fee should be based on the amount passed in. - -**`total`: Int** -The total amount of the transaction before the service fee. -This is what you would want to pass in the `amount` argument for the `createOneTimePayment` call. - -**`adjusted_total`: Int** -The total amount of the transaction after the service fee. -This is what you would want to show the payor the total amount of the transaction will be. - +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|fee |Int |The amount that the service fee should be based on the amount passed in.| +|total |Int |The total amount of the transaction before the service fee. This is what you would want to pass in the `amount` argument for the `createOneTimePayment` call.| +|adjusted_total |Int |The total amount of the transaction after the service fee. This is what you would want to show the payor the total amount of the transaction will be.| +*** ## Send Transaction Receipt This call will send a receipt for a transaction to the email address on file with the payor or an email passed in. @@ -509,15 +411,13 @@ mutation MyMutation($email: AWSEmail, $receipt_description: String, $transaction **Arguments** -**Required Arguments** - -**`transaction_id`: String** -The Pay Theory unique identifier for the transaction to send the receipt for. +| Key | type | description | +|----------------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------| +| transaction_id | String! | The Pay Theory unique identifier for the transaction to send the receipt for. | +| email | AWSEmail | The email address to send the receipt to. If not provided the email address on file with the payor will be used. | +| receipt_description | String | The description of the transaction that will be displayed on the receipt. If not provided it will just say "Payment to `merchant_name`". | -**Optional Arguments** +**Returns** -**`email`: AWSEmail** -The email address to send the receipt to. If not provided the email address on file with the payor will be used. +The call will return a boolean `true` if the receipt was sent successfully or errors if it fails. -**`receipt_description`: String** -The description of the transaction that will be displayed on the receipt. If not provided it will just say "Payment to `merchant_name`". \ No newline at end of file diff --git a/docs/api/users.md b/docs/api/users.md index afbdba7..ef24678 100644 --- a/docs/api/users.md +++ b/docs/api/users.md @@ -9,7 +9,7 @@ title: "" Users are accounts that have access to PayTheory Portals. Users can be created with access to the Merchant, System, or Partner Portal. ## The User Object -```js +```graphql { username: String email: String @@ -19,26 +19,18 @@ Users are accounts that have access to PayTheory Portals. Users can be created w } ``` -**`username`: String** -The cognito username id of the user. - -**`email`: String** -The email address of the user. - -**`user_status`: String** -The status of the user. Likely to be one of the following: -* `CONFIRMED`: User has logged in and set up their password. -* `FORCE_CHANGE_PASSWORD`: User has yet to login with their temporary password. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|username |String |The cognito username id of the user.| +|email |String |The email address of the user.| +|user_status |String |The status of the user. Likely to be one of the following: `CONFIRMED`, `FORCE_CHANGE_PASSWORD`| +|full_name |String |The full name of the user.| +|phone |String |The phone number of the user.| -**`full_name`: String** -The full name of the user. - -**`phone`: String** -The phone number of the user. ## Query Users -```js +```graphql { users(user_pool: UserPool, merchant_uid: String) { username @@ -50,16 +42,13 @@ The phone number of the user. } ``` -**Arguments** +**Parameters** -**`user_pool`: UserPool** -The user pool to query. One of the following: -* `MERCHANT`: Query users in the Merchant Portal. -* `SYSTEM`: Query users in the System Portal. -* `PARTNER`: Query users in the Partner Portal. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|user_pool |UserPool |The user pool to query. One of the following: `MERCHANT`, `SYSTEM`, `PARTNER`.| +|merchant_uid |String |The merchant uid to query users for. Only used when querying users in the Merchant and System Portal.| -**`merchant_uid`: String** -The merchant uid to query users for. Only used when querying users in the Merchant and System Portal. **Returns** @@ -86,8 +75,9 @@ The merchant uid to query users for. Only used when querying users in the Mercha } ``` -**`users`: [User]** -The list of users that are returned from the query. Objects will include all keys that are passed in with the query. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|users |[User] |The list of users that are returned from the query.| ## Create User ```js @@ -108,31 +98,26 @@ mutation { } ``` -**Arguments** +**Parameters** -**`input`: UserInput** -An object containing the following keys: +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|intput |UserInput |An object containing the following| -**`email`: AWSEmail** -The email address of the user. Must be a valid email address or the mutation will fail. Can only have one user per email per user pool. +**UserInput** -**`first_name`: String** -The first name of the user. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|email |AWSEmail |The email address of the user. Must be a valid email address or the mutation will fail. Can only have one user per email per user pool.| +|first_name |String |The first name of the user.| +|last_name |String |The last name of the user.| +|merchant_uid |String |The `merchant_uid` of the merchant to create the user for. Only used when creating a user for the Merchant or System Portal.| +|phone |AWSPhone |The phone number of the user. Must be a valid phone number or null or the mutation will fail.| +|user_pool |UserPool |The user pool to create the user in. One of the following: `MERCHANT`, `SYSTEM`, `PARTNER`.| -**`last_name`: String** -The last name of the user. - -**`merchant_uid`: String** -The `merchant_uid` of the merchant to create the user for. Only used when creating a user for the Merchant or System Portal. - -**`phone`: AWSPhone** -The phone number of the user. Must be a valid phone number or null or the mutation will fail. +**Returns** -**`user_pool`: UserPool** -The user pool to create the user in. One of the following: -* `MERCHANT`: Create a user in the Merchant Portal. -* `SYSTEM`: Create a user in the System Portal. -* `PARTNER`: Create a user in the Partner Portal. +It will return the user object that was created. ## Delete User ```js @@ -141,14 +126,13 @@ mutation { } ``` -**Arguments** +**Parameters** -**`username`: String** -The cognito username id of the user to delete. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|username |String |The cognito username id of the user to delete.| +|user_pool |UserPool |The user pool to delete the user from. One of the following: `MERCHANT`, `SYSTEM`, `PARTNER`.| -**`user_pool`: UserPool** -The user pool to delete the user from. One of the following: -* `MERCHANT`: Delete a user from the Merchant Portal. -* `SYSTEM`: Delete a user from the System Portal. -* `PARTNER`: Delete a user from the Partner Portal. +**Returns** +It will return `true` if the user was deleted successfully or an error if it was not. From b4553ce55a839710d8a28e908f7fcb87b73f0318 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Mon, 12 Feb 2024 22:41:29 -0500 Subject: [PATCH 20/34] chore: cleaned up the JS SDK to use tables for better readability --- docs/sdk/javascript/event_listeners.md | 78 ++--- docs/sdk/javascript/functions.md | 420 ++++++++++--------------- docs/sdk/javascript/hosted_fields.md | 41 ++- docs/sdk/javascript/payment_button.md | 182 +++++------ docs/sdk/javascript/payment_qr_code.md | 192 ++++------- 5 files changed, 380 insertions(+), 533 deletions(-) diff --git a/docs/sdk/javascript/event_listeners.md b/docs/sdk/javascript/event_listeners.md index 61073bc..6533551 100644 --- a/docs/sdk/javascript/event_listeners.md +++ b/docs/sdk/javascript/event_listeners.md @@ -8,21 +8,22 @@ title: "" The Pay Theory SDK provides a set of event listeners that can be used to respond messages from the hosted fields and inside the SDK. -Each of these listeners takes a callback function as an argument. Below we will detail the arguments that are passed to each callback function. +Each of these listeners takes a callback function as a parameter. Below we will detail the parameters that are passed to each callback function. Each of these listeners will return a function that can be used to remove the listener. +*** ## readyObserver The `readyObserver` will fire when the hosted fields are ready to be used. This is where you should add any logic that should be executed when the hosted fields are ready. ```javascript -const cleanupFunction = myPayTheory.readyObserver(ready => { +const cleanupFunction = window.paytheory.readyObserver(ready => { // Logic to respond when the fields are ready }) ``` -**Callback Argument** +**Callback Parameter** When the fields are ready it will pass a boolean value of `true` to the callback function. @@ -30,6 +31,7 @@ When the fields are ready it will pass a boolean value of `true` to the callback A function that can be used to remove the listener. +*** ## errorObserver The `errorObserver` will fire when an error occurs anywhere inside the Pay Theory SDK. This is a good place to add any logic that should only be executed when an error occurs. @@ -40,7 +42,7 @@ const cleanupFunction = window.paytheory.errorObserver(error => { }) ``` -**Callback Argument** +**Callback Parameter** The callback will be passed a string indicating what happened in the SDK. The string should begin with one of the codes shown [here](ERRORS). @@ -52,49 +54,50 @@ The exception to this is the `NOT_VALID` error which will require the user to ch A function that can be used to remove the listener. +*** ## stateObserver The `stateObserver` will fire when the state of any hosted field changes. You can use this listener to respond when a hosted field is focused, blurred, or when it has been typed into. ```javascript -const cleanupFunction = myPayTheory.stateObserver(state => { +const cleanupFunction = window.paytheory.stateObserver(state => { // Logic to respond to state changes }) ``` -**Callback Argument** - -The callback will be passed a state object. The state object will include an object with all the possible fields that can be used with the Pay Theory SDK and consist of 3 pieces of information. -- **isFocused**: boolean indicating if the field is focused -- **isDirty**: boolean indicating if the field currently has text entered -- **errorMessages**: array of error messages if the field is invalid +**Callback Parameter** + +The callback will be passed a state object. The state object will include an object with all the possible fields. + +**Keys** + +- `card-number` +- `card-cvv` +- `card-exp` +- `card-name` +- `billing-line1` +- `billing-line2` +- `billing-city` +- `billing-state` +- `billing-zip` +- `account-name` +- `account-type` +- `account-number` +- `routing-number` +- `cash-name` +- `cash-contact` + +**State Object** +Each of the above keys will contain an object with the following keys: + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|isFocused |boolean |Indicates if the field is focused| +|isDirty |boolean |Indicates if the field currently has text entered| +|errorMessages |array |Array of error messages if the field is invalid| *Note: If using the combined card field you will receive state updates for number, cvv, and exp separately* -```json -{ - "card-number": { - "isDirty": false, - "isFocused": false, - "errorMessages": [] - }, - "card-cvv": ..., - "card-exp": ..., - "card-name": ..., - "billing-line1": ..., - "billing-line2": ..., - "billing-city": ..., - "billing-state": ..., - "billing-zip": ..., - "account-name": ..., - "account-type": ..., - "account-number": ..., - "routing-number": ..., - "cash-name": ..., - "cash-contact": ... -} -``` - This can be used to help if you want to display field specific error messages or style the fields based on the state. This can also be used to help if you are using the Card Billing fields to capture the payor info and want to ensure the fields are filled out. @@ -102,17 +105,18 @@ This can also be used to help if you are using the Card Billing fields to captur A function that can be used to remove the listener. +*** ## validObserver The `validObserver` will fire when a set of hosted fields are valid. This is where you should add any logic that should be executed when the hosted fields are valid. ```javascript -const cleanupFunction = myPayTheory.validObserver(valid => { +const cleanupFunction = window.paytheory.validObserver(valid => { // Logic to respond when the form is valid }) ``` -**Callback Argument** +**Callback Parameter** The callback function will be passed a string that will contain the name of the payment type that is valid. This will be one of the following: diff --git a/docs/sdk/javascript/functions.md b/docs/sdk/javascript/functions.md index 0767292..6525f99 100644 --- a/docs/sdk/javascript/functions.md +++ b/docs/sdk/javascript/functions.md @@ -8,6 +8,7 @@ title: "" The Pay Theory SDK provides a set of functions that can be used to perform actions in tandem with the Hosted Fields. +*** ## payTheoryFields This function is used to initialize the Pay Theory Hosted Fields. @@ -20,35 +21,15 @@ paytheory.payTheoryFields({ }) ``` -These are the values that you can pass into the `payTheoryFields` function to customize the Hosted Fields. - -- `apiKey`: (String) - - Your Pay Theory API key. This is required to initialize the Hosted Fields. - -- `styles`: (Object) - - see the [Styles object](/docs/main/getting_started/styling_pay_theory_fields.mdx) for more details - -- `placeholders`: (Object) - - An object that contains any custom placeholders you would like to use for the fields. These keys can be used to customize the placeholders for the following fields: - - **card-number** - - **card-cvv** - - **card-exp** - - **card-name** - - **billing-line1** - - **billing-line2** - - **billing-city** - - **billing-state** - - **billing-zip** - - **routing-number** - - **account-number** - - **account-name** - - **cash-name** - - **cash-contact** - - *Use these values to customize the labels for the Account Type radio button* - - **checking** - - **savings** +These are the parameters that you can pass into the `payTheoryFields` function to customize the Hosted Fields. +|Key | type | description | +|-------------------|---------------------------------------------|---------------------------------------| +|apiKey | String |Your Pay Theory API key. This is required to initialize the Hosted Fields.| +|styles | [Style Object](hosted_fields#styles-object) |An object that contains the styles for the Hosted Fields.| +|placeholders | Object |An object that contains any custom placeholders you would like to use for the fields.| + +*** ## transact This function is used to submit a payment to Pay Theory or generate a barcode using the cash hosted fields. It returns a Promise with the result or an error. @@ -110,131 +91,38 @@ const TRANSACTING_PARAMETERS = { paytheory.transact(TRANSACTING_PARAMETERS) ``` -These are the values that you can pass into the `transact` function to customize the payment. -The only required key is `amount`. - -- `amount`: (Int) - - represents the amount to be charged in cents. - - -- `payorInfo`: (Object) - - see the [Payor Info object](#payor-info-object) below for details. - - -- `billingInfo`: (Object) - - see the [Billing Info object](#billing-info-object) below for details. This is required if you are not using the `zip` hosted field. - - -- `metadata`: (Object) - - An object that will be stored with the transaction and can be used to track the payment. - - -- `feeMode`: (String) - - Defaults to `window.paytheory.MERCHANT_FEE`. If available to merchant and set to `window.paytheory.SERVICE_FEE` the fee will be added to the amount and charged to the payor. More details about the fee modes in your Pay Theory Portal. - - -- `fee`: (Int) - - Represents the fee to be charged in cents. - - If you are using `SERVICE_FEE` mode and want to skip the confirmation step, you must provide the fee amount. This will be validated to make sure it matches the fee amount that would be charged. If the fee amount does not match, an error will be thrown. - - -- `confirmation`: (Boolean) - - Defaults to `false`. If set to `true` the payment will return a response to the tokenizeObserver before it needs to be confirmed. Required if using `SERVICE_FEE` fee mode. - - -- `accountCode`: (String) - - Code that can be used to track a payment or group of payments. Will be included in the transaction schema and in the Pay Theory Portal. - +These are the parameters that you can pass into the `transact` function to customize the payment. + +| Key | type | description | +|--------------------|--------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| amount | Int | The amount of the transaction in cents. | +| payorInfo | [Payor Info](#payor-info-object) | Details of the payor who is making the transaction. | +| billingInfo | [Billing Info](#billing-info-object) | Billing info for the payment method. This is required if you are not using the `zip` hosted field. | +| metadata | Object | An object that will be stored with the transaction and can be used to track the payment. | +| feeMode | String | Defaults to `window.paytheory.MERCHANT_FEE`. If available to merchant and set to `window.paytheory.SERVICE_FEE` the fee will be added to the amount and charged to the payor. More details about the fee modes in your Pay Theory Portal. | +| fee | Int | Represents the fee to be charged in cents. If you are using `SERVICE_FEE` mode and want to skip the confirmation step, you must provide the fee amount. This will be validated to make sure it matches the fee amount that would be charged. If the fee amount does not match, an error will be thrown. | +| confirmation | Boolean | Defaults to `false`. If set to `true` the payment will return a response to the tokenizeObserver before it needs to be confirmed. Required if using `SERVICE_FEE` fee mode. | +| accountCode | String | Code that can be used to track a payment or group of payments. Will be included in the transaction schema and in the Pay Theory Portal. | +| reference | String | Custom description assigned to a payment. Will be included in the transaction schema and in the Pay Theory Portal. | +| payorId | String | The Pay Theory payor ID to use for the payment. Allows for user to manage identities. This cannot be used if also using the `payorInfo` parameter. | +| invoiceId | String | The Pay Theory invoice ID to use for the payment. Allows for user to assign a payment to an invoice. | +| recurringId | String | The Pay Theory recurring ID to use for the payment. Allows for user to assign a payment to a recurring payment. If you pass in a recurring ID, the transactions amount must be an interval of the recurring payments amount per payment. | +| sendReceipt | Boolean | Pass `true` to send a receipt to the payor. Must have an email address on the payorInfo object or pass in a payorId that has an email address tied to it. | +| receiptDescription | String | Description to be included in the receipt. Defaults to "Payment from your merchant". | -- `reference`: (String) - - Custom description assigned to a payment. Will be included in the transaction schema and in the Pay Theory Portal. - - -- `payorId`: (String) - - The Pay Theory payor ID to use for the payment. Allows for user to manage identities. - - This cannot be used if also using the `payorInfo` parameter. - - -- `invoiceId`: (String) - - The Pay Theory invoice ID to use for the payment. Allows for user to assign a payment to an invoice. - - -- `recurringId`: (String) - - The Pay Theory recurring ID to use for the payment. Allows for user to assign a payment to a recurring payment. - - If you pass in a recurring ID, the transactions amount must be an interval of the recurring payments amount per payment. - - -- `sendReceipt`: (Boolean) - - Pass `true` to send a receipt to the payor. Must have an email address on the payorInfo object or pass in a payorId that has an email address tied to it. - - -- `receiptDescription`: (String) - - Description to be included in the receipt. Defaults to "Payment from your merchant". The function returns a Promise that will contain an object with a key of `type`. You can expect the following values for `type`: -- `SUCCESS`: The transaction was successful and the transaction details will be in the `body` key. -- `FAILED`: The transaction failed and the details will be in the `body` key. -- `CONFIRMATION`: The transaction requires confirmation and the transaction details will be in the `body` key. -- `CASH`: The transact call successfully generated a barcode and the barcode details will be in the `body` key. -- `ERROR`: The transact call had an error while processing and the error details will be in the `error` key. - -### Success Response - -This is the value of the `body` key in the response if the `type` is `SUCCESS`: - -- **last_four** (String): The last four digits of the card number or account number -- **amount** (Int): The amount of the transaction -- **service_fee** (Int): The service fee of the transaction -- **receipt_number** (String): The Pay Theory receipt number -- **brand** (String): The brand of the card -- **created_at** (String): The date and time the transaction was created -- **state** (String): The status of the transaction -- **metadata** (JSON): The metadata of the transaction -- **payor_id** (String): The Pay Theory id for the payor that was used for the transaction -- **payment_method_id** (String): The Pay Theory id for the payment method token - -*note that the service fee is included in amount* - -### Failed Response - -This is the value of the `body` key in the response if the `type` is `FAILED`: - -- **receipt_number** (String): The Pay Theory receipt number -- **last_four** (String): The last four digits of the card number or account number -- **brand** (String): The brand of the card -- **state** (String): The state of the transaction - - This will be `FAILURE` -- **reason** (Object): - - **failure_code** (String): The failure code for the failure. You can find a list of failure codes [here](failed_transactions) - - **failure_text** (String): The message for the failure - -### Confirmation Response - -This is the value of the `body` key in the response if the `type` is `CONFIRMATION`: - -- **first_six** (String): The first six digits of the card number -- **last_four**: (String) The last four digits of the card number or account number -- **amount** (Int): The amount of the transaction -- **service_fee** (Int): The service fee of the transaction -- **receipt_number** (String): The Pay Theory receipt number - -### Cash Response - -This is the value of the `body` key in the response if the `type` is `CASH`: +- [`SUCCESS`](#success-response): The transaction was successful and the transaction details will be in the `body` key. +- [`FAILED`](#failed-response): The transaction failed and the details will be in the `body` key. +- [`CONFIRMATION`](#confirmation-response): The transaction requires confirmation and the transaction details will be in the `body` key. +- [`CASH`](#cash-response): The transact call successfully generated a barcode and the barcode details will be in the `body` key. +- [`ERROR`](#error-response): The transact call had an error while processing and the error details will be in the `error` key. While generating the Barcode it will use the geoloaction to return a map url for the users specific location. If this is the first time it has been requested the user will have the opportunity to accept or decline the request. -- **barcodeUrl** (String): The url for the barcode image -- **mapUrl** (String): The url for the map to find retail locations to pay the barcode - -### Error Response - -This is the value of the `error` key in the response if the `type` is `ERROR`: - -- **message** (String): The error message. The string will begin with one of the codes shown [here](ERRORS) - +*** ## confirm This function is used to confirm a payment that has been created and required the confirmation step. @@ -244,45 +132,11 @@ paytheory.confirm() ``` The function returns a Promise that will contain an object with a key of `type`. You can expect the following values for `type`: -- `SUCCESS`: The transaction was successful and the transaction details will be in the `body` key. -- `FAILED`: The transaction failed and the details will be in the `body` key. -- `ERROR`: The transact call had an error while processing and the error details will be in the `error` key. - -### Success Response - -This is the value of the `body` key in the response if the `type` is `SUCCESS`: - -- **last_four** (String): The last four digits of the card number or account number -- **amount** (Int): The amount of the transaction -- **service_fee** (Int): The service fee of the transaction -- **receipt_number** (String): The Pay Theory receipt number -- **brand** (String): The brand of the card -- **created_at** (String): The date and time the transaction was created -- **state** (String): The status of the transaction -- **metadata** (JSON): The metadata of the transaction -- **payor_id** (String): The Pay Theory id for the payor that was used for the transaction -- **payment_method_id** (String): The Pay Theory id for the payment method token - -*note that the service fee is included in amount* - -### Failed Response - -This is the value of the `body` key in the response if the `type` is `FAILED`: - -- **receipt_number** (String): The Pay Theory receipt number -- **last_four** (String): The last four digits of the card number or account number -- **brand** (String): The brand of the card -- **state** (String): The state of the transaction - - This will be `FAILURE` -- **type** (String): Description of the failure - -### Error Response - -This is the value of the `error` key in the response if the `type` is `ERROR`: - -- **message** (String): The error message. The string will begin with one of the codes shown [here](ERRORS) - +- [`SUCCESS`](#success-response): The transaction was successful and the transaction details will be in the `body` key. +- [`FAILED`](#failed-response): The transaction failed and the details will be in the `body` key. +- [`ERROR`](#error-response): The transact call had an error while processing and the error details will be in the `error` key. +*** ## cancel This function is used to cancel a payment that has been created and required the confirmation step. @@ -291,17 +145,11 @@ This function is used to cancel a payment that has been created and required the paytheory.cancel() ``` -The function returns a Promise that will contain `true` if the transaction was cancelled successfully or an Error Response: - -### Error Response - -This is the value of the `error` key in the response if the `type` is `ERROR`: - -- **message** (String): The error message. The string will begin with one of the codes shown [here](ERRORS) +The function returns a Promise that will contain `true` if the transaction was cancelled successfully or an [`ERROR`](#error-response) Response. Once you click cancel the transaction will be cancelled and you will be able to run `transact` again. - +*** ## tokenizePaymentMethod This function is used to tokenize a card or bank account. @@ -350,59 +198,26 @@ const TOKENIZE_PAYMENT_METHOD_PARAMETERS = { paytheory.tokenizePaymentMethod(TOKENIZE_PAYMENT_METHOD_PARAMETERS) ``` -These are the values that you can pass into the `tokenizePaymentMethod` function to tokenize a card or bank account. - -- `payorInfo`: (Object) - - see the [Payor Info object](#payor-info-object) below for details -- `billingInfo`: (Object) - - see the [Billing Info object](#billing-info-object) below for details. This is required if you are not using the `zip` hosted field. -- `metadata`: (Object) - - An object that will be stored with the token and can be used to track the token. -- `payorId`: (String) - - The Pay Theory payor ID to use for the payment. Allows for user to manage identities.ß - - This cannot be used if also using the `payorInfo` parameter. - -The function returns a Promise that will contain an object with a key of `type`. You can expect the following values for `type`: - -- `TOKENIZED`: The payment method was tokenized successfully and the token will be in the `body` key. -- `ERROR`: The transact call had an error while processing and the error details will be in the `error` key. - -### Tokenized Response +These are the parameters that you can pass into the `tokenizePaymentMethod` function to tokenize a card or bank account. -This is the value of the `body` key in the response if the `type` is `TOKENIZED`: +|Key | type | description | +|-------------------|--------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| +|payorInfo | [Payor Info](#payor-info-object) | The details of the payor that you are tokenizing the payment method for. | +|billingInfo | [Billing Info](#billing-info-object) | Billing info for the payment method. This is required if you are not using the `zip` hosted field. | +|metadata | Object | An object that will be stored with the token and can be used to track the token. | +|payorId | String | The Pay Theory payor ID to use for the payment. Allows for user to manage identities. This cannot be used if also using the `payorInfo` parameter. | -- **payment_method_id** (String): The Pay Theory id for the payment method token -- **payor_id** (String): The Pay Theory id for the payor that was used for the payment method token -- **last_four** (String): The last four digits of the card number or account number -- **brand** (String): The brand of the card -- **expiration** (String): The expiration date of the card formatted as MMYY -- **payment_type** (String): The type of payment method tokenized - - This will be `card` or `ach` -- **metadata** (JSON): The metadata that was passed in when tokenizing the payment method -### Error Response - -This is the value of the `error` key in the response if the `type` is `ERROR`: - -- **message** (String): The error message. The string will begin with one of the codes shown [here](ERRORS) +The function returns a Promise that will contain an object with a key of `type`. You can expect the following values for `type`: +- [`TOKENIZED`](#tokenized-response): The payment method was tokenized successfully and the token will be in the `body` key. +- [`ERROR`](#error-response): The transact call had an error while processing and the error details will be in the `error` key. +*** ## Payor Info Object This data will be used to create a payor in Pay Theory system that will be represented by a Payor ID. -- **first_name**: (String) The first name of the payor -- **last_name**: (String) The last name of the payor -- **email**: (String) The email address of the payor -- **phone**: (String) The phone number of the payor -- **personal_address**: (Object) The address of the payor - - **line1**: (String) The street address of the payor - - **line2**: (String) The street address of the payor - - **city**: (String) The city of the payor - - **region**: (String) The region (state) of the payor - - **postal_code**: (String) The postal code of the payor - - **country**: (String) The country of the payor - ```json { "first_name": "Some", @@ -420,30 +235,133 @@ This data will be used to create a payor in Pay Theory system that will be repre } ``` -You can also optionally pass in a boolean to use the same info that is passed into the card address fields if you want to avoid collecting this information twice on a card transaction. +|Key | type | description | +|-------------------|----------------------------|--------------------------------------------------------------------------------------------------------------------------| +|first_name | String | The first name of the payor | +|last_name | String | The last name of the payor | +|email | String | The email address of the payor | +|phone | String | The phone number of the payor | +|personal_address | [Address](#address-object) | The address of the payor | +|same_as_billing | Boolean | Optional. If set to `true`, the address will be the same as the billing address. You only need to pass in `phone` and `email`. | + +*** +## Billing Info Object + +This data will be used as the billing info for a card transaction. This is required if you are not using the billing hosted fields. + +|Key | type | description | +|-------------------|----------------------------|---------------------------------------| +|name | String |The name on the card| +|address | [Address](#address-object) |The billing address of the card| -When you pass this boolean in as true the only other fields allowed to be passed in are the email and phone fields. It will error if you pass in any other fields. +*** +## Address Object -This only works when you run the `transact` function. +This object is used to represent an address. ```json { - "same_as_billing": true, - "phone": "3335554444", - "email": "somebody@paytheory.com" + "line1": "123 Street St", + "line2": "Apartment 17", + "city": "Somewhere", + "region": "OH", + "postal_code": "12345", + "country": "USA" } ``` +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|line1 |String |The street address of the payor| +|line2 |String |The street address of the payor| +|city |String |The city of the payor| +|region |String |The region (state) of the payor| +|postal_code |String |The postal code of the payor| +|country |String |The country of the payor| -## Billing Info Object +*** +## Responses -This data will be used as the billing info for a card transaction. This is required if you are not using the billing hosted fields. +### Success Response + +This is the value of the `body` key in the response if the `type` is `SUCCESS`: + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|last_four |String |The last four digits of the card number or account number| +|amount |Int |The amount of the transaction| +|service_fee |Int |The service fee of the transaction| +|receipt_number |String |The Pay Theory receipt number| +|brand |String |The brand of the card| +|created_at |String |The date and time the transaction was created| +|state |String |The status of the transaction| +|metadata |JSON |The metadata of the transaction| +|payor_id |String |The Pay Theory id for the payor that was used for the transaction| +|payment_method_id |String |The Pay Theory id for the payment method token| + +*note that the service fee is included in amount* + +### Failed Response + +This is the value of the `body` key in the response if the `type` is `FAILED`: + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|receipt_number |String |The Pay Theory receipt number| +|last_four |String |The last four digits of the card number or account number| +|brand |String |The brand of the card| +|state |String |The state of the transaction. This will be `FAILURE`| +|reason |Object |The reason for the failure. More details below.| + +**Reason Object** + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|failure_code |String |The failure code for the failure. You can find a list of failure codes [here](ERRORS)| +|failure_text |String |The message for the failure| + +### Confirmation Response + +This is the value of the `body` key in the response if the `type` is `CONFIRMATION`: + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|first_six |String |The first six digits of the card number| +|last_four |String |The last four digits of the card number or account number| +|amount |Int |The amount of the transaction| +|service_fee |Int |The service fee of the transaction| +|receipt_number |String |The Pay Theory receipt number| + +### Cash Response + +This is the value of the `body` key in the response if the `type` is `CASH`: + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|barcodeUrl |String |The url for the barcode image| +|mapUrl |String |The url for the map to find retail locations to pay the barcode| + +### Error Response + +If the response has the `type` of `ERROR` it will have another key `error` with a string attatched to it. The string will begin with one of the codes shown [here](ERRORS). + +```json +{ + "type": "ERROR", + "error": "NOT_READY: Error message" +} +``` + +### Tokenized Response + +This is the value of the `body` key in the response if the `type` is `TOKENIZED`: -- **name**: (String) The name on the card -- **address**: (Object) The billing address of the card - - **line1**: (String) The street address of the payor - - **line2**: (String) The street address of the payor - - **city**: (String) The city of the payor - - **region**: (String) The region (state) of the payor - - **postal_code**: (String) The postal code of the payor - - **country**: (String) The country of the payor \ No newline at end of file +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|payment_method_id |String |The Pay Theory id for the payment method token| +|payor_id |String |The Pay Theory id for the payor that was used for the payment method token| +|last_four |String |The last four digits of the card number or account number| +|brand |String |The brand of the card| +|expiration |String |The expiration date of the card formatted as MMYY| +|payment_type |String |The type of payment method tokenized. This will be `card` or `ach`| +|metadata |JSON |The metadata that was passed in when tokenizing the payment method| \ No newline at end of file diff --git a/docs/sdk/javascript/hosted_fields.md b/docs/sdk/javascript/hosted_fields.md index f97210d..31c60ab 100644 --- a/docs/sdk/javascript/hosted_fields.md +++ b/docs/sdk/javascript/hosted_fields.md @@ -146,18 +146,9 @@ To style the input parent div simply provide your own CSS for the pay theory con } ``` -To style the input fields you can pass in a custom style object to the create function in our SDK. This allows you to style the text inside the inputs as well as the style of the radio buttons for the ACH account type. - -- `default`: (Object) The way a text field look when it is not in state success or error. -- `success`: (Object) The way a text field look when it is valid. Only applies to fields that go through validation. -- `error`: (Object) The way a text field look when it is invalid. Only applies to fields that go through validation. -- `radio`: The way radio buttons look for the ACH account type - - `width`: (Int) The width in pixels of the radio buttons - - `fill`: (String) The color of the radio buttons - - `stroke`: (String) The color of the radio buttons border - - `text`: (Object) This style object will be used to style the labels for the radio buttons -- `hidePlaceholder`: (Boolean) that allows you to hide the placeholder text in the input fields +## Styles Object +To style the input fields you can pass in a custom style object to the create function in our SDK. This allows you to style the text inside the inputs as well as the style of the radio buttons for the ACH account type ```javascript const STYLES = { @@ -185,3 +176,31 @@ const STYLES = { hidePlaceholder: false } ``` + +|Key | type | description | +|-------------------|-------------------------------|---------------------------------------| +|default | CSS Style Object |The way a text field look when it is not in state success or error.| +|success | CSS Style Object |The way a text field look when it is valid. Only applies to fields that go through validation.| +|error | CSS Style Object |The way a text field look when it is invalid. Only applies to fields that go through validation.| +|radio | [Radio Object](#radio-object) |The way radio buttons look for the ACH account type| +|hidePlaceholder | Boolean |that allows you to hide the placeholder text in the input fields| + +## Radio Object + +This style object will be used to style the labels for the radio buttons. It contains the following keys: + +|Key | type | description | +|-------------------|-----------------------------|---------------------------------------| +|width | Int |The width in pixels of the radio buttons| +|fill | String |The color of the radio buttons| +|stroke | String |The color of the radio buttons border| +|text | [Text Object](#text-object) |This style object will be used to style the labels for the radio buttons| + +## Text Object + +This style object will be used to style the labels for the radio buttons. It contains the following keys: + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|fontSize |String |The font size of the radio button labels| +|color |String |The color of the radio button labels| diff --git a/docs/sdk/javascript/payment_button.md b/docs/sdk/javascript/payment_button.md index 2e64f69..db107e1 100644 --- a/docs/sdk/javascript/payment_button.md +++ b/docs/sdk/javascript/payment_button.md @@ -56,137 +56,107 @@ const OPTIONS = { paytheory.button(OPTIONS) ``` -These are the values that you can pass into the `button` function to customize the payment session. +These are the parameters that you can pass into the `button` function to customize the payment session. You pass a single object into the function with the following keys. -**Required Values** -- `apiKey`: (String) - - The API key for your Pay Theory account. You can find this in your Pay Theory Portal. +**Required Parameters** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|apiKey |String |The API key for your Pay Theory account. You can find this in your Pay Theory Portal.| +|checkoutDetails |Object |The details for the checkout page that opens when the button is clicked. Details Below.| -- `checkoutDetails`: (Object) - - The details for the checkout page that opens when the button is clicked. Details Below. -**Optional Values** -- `style`: (Object) - - The style object that will style the payment button. Details Below. +**Optional Parameters** +|Key |type | description | +|-------------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| +|style |Object | The style object that will style the payment button. Details Below. | +|onReady |Function | A function that will be called when the button is ready to be clicked. | +|onClick |Function | A function that will be called when the button is clicked. | +|onError |Function | A function that will be called when an error occurs. It is passed an error string. | +|onCancel |Function | A function that will be called when the user cancels the payment from the pop-up window. | +|onSuccess |Function | A function that will be called when the payment is successful. It is passed a [success](#success-response) response. | +|onBarcode |Function | A function that will be called when a barcode is successfully created and the user closes the window. It is passed a [bardcode](#barcode-response) response. | -- `onReady`: (Function) - - A function that will be called when the button is ready to be clicked. +## Success Response +|Key |type | description | +|-------------------|-------------|-------------------------------------------------------------------| +|last_four |String | The last four digits of the card number or account number | +|amount |Int | The amount of the transaction **(service fee is included)** | +|service_fee |Int | The service fee of the transaction | +|receipt_number |String | The Pay Theory receipt number | +|brand |String | The brand of the card | +|created_at |String | The date and time the transaction was created | +|state |String | The status of the transaction | +|metadata |JSON | The metadata of the transaction | +|payor_id |String | The Pay Theory id for the payor that was used for the transaction | +|payment_method_id |String | The Pay Theory id for the payment method token | -- `onClick`: (Function) - - A function that will be called when the button is clicked. +## Barcode Response +|Key |type | description | +|-------------------|-------------|-----------------------------------------------------------------| +|barcodeUrl |String | The url for the barcode image | +|mapUrl |String | The url for the map to find retail locations to pay the barcode | -- `onError`: (Function) - - A function that will be called when an error occurs. It is passed an error string. - - -- `onCancel`: (Function) - - A function that will be called when the user cancels the payment from the pop-up window. - - -- `onSuccess`: (Function) - - A function that will be called when the payment is successful. It is passed an object with the following values. - - **last_four** (String): The last four digits of the card number or account number - - **amount** (Int): The amount of the transaction **(service fee is included)** - - **service_fee** (Int): The service fee of the transaction - - **receipt_number** (String): The Pay Theory receipt number - - **brand** (String): The brand of the card - - **created_at** (String): The date and time the transaction was created - - **state** (String): The status of the transaction - - **metadata** (JSON): The metadata of the transaction - - **payor_id** (String): The Pay Theory id for the payor that was used for the transaction - - **payment_method_id** (String): The Pay Theory id for the payment method token - - -- `onBarcode`: (Function) - - A function that will be called when a barcode is successfully created and the user closes the window. It is passed an object with the following values. - - **barcodeUrl** (String): The url for the barcode image - - **mapUrl** (String): The url for the map to find retail locations to pay the barcode **Checkout Details** -These are the values that you can pass into the `checkoutDetails` object to customize the checkout page that opens when the button is clicked. - -**Required Values** -- `amount`: (Int) - - The amount of the payment in cents. - - -- `paymentName`: (String) - - The name of the payment that will be displayed on the checkout page. Will also be passed in to the `reference` field of the transaction. - -**Optional Values** -- `paymentDescription`: (String) - - The description of the payment that will be displayed on the checkout page. - - -- `requirePhone`: (Boolean) - - Pass `true` to require the user to enter a phone number on the checkout page. - - -- `callToAction`: (String) - - The call to action that will be displayed on the payment button. Defaults to "PAY". - - Constants are available from the SDK. - - Available options are `paytheory.DONATE`, `paytheory.PAY` and `paytheory.BOOK` - - -- `acceptedPaymentMethods`: (String) - - The payment methods that will be accepted for the payment. Defaults to `paytheory.ALL`. - - Constants are available from the SDK. - - Available options are `paytheory.ONLY_CARD`, `paytheory.ONLY_ACH`, `paytheory.ONLY_CASH`, `paytheory.NOT_CARD`, `paytheory.NOT_ACH`, `paytheory.NOT_CASH`, and `paytheory.ALL` - - -- `payorId`: (String) - - The Pay Theory id for the payor that will be used for the payment. If this is not passed in a new payor will be created. - - -- `metadata`: (JSON) - - The metadata that will be passed in to the transaction. - - -- `feeMode`: (String) - - The fee mode that will be used for the payment. Defaults to `paytheory.FIXED`. - - Constants are available from the SDK. - - Available options are `paytheory.SERVICE_FEE` and `paytheory.MERCHANT_FEE` - - -- `accountCode`: (String) - - The account code that will be used for the payment. +These are the parameters that you can pass into the `checkoutDetails` object to customize the checkout page that opens when the button is clicked. +**Required Parameters** -- `invoiceId`: (String) - - The Pay Theory invoice ID to use for the payment. Allows for user to assign a payment to an invoice. +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|amount |Int |The amount of the payment in cents.| +|paymentName |String |The name of the payment that will be displayed on the checkout page. Will also be passed in to the `reference` field of the transaction.| +**Optional Parameters** -- `recurringId`: (String) - - The Pay Theory recurring ID to use for the payment. Allows for user to assign a payment to a recurring payment. - - If you pass in a recurring ID, the transactions amount must be an interval of the recurring payments amount per payment. +| Key | type | description | +|------------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------| +| paymentDescription | String | The description of the payment that will be displayed on the checkout page. | +| requirePhone | Boolean | Pass `true` to require the user to enter a phone number on the checkout page. | +| callToAction | String | The call to action that will be displayed on the payment button. Defaults to `paytheory.PAY`. All Options [Here](#call-to-action) | +| acceptedPaymentMethods | String | The payment methods that will be accepted for the payment. Defaults to `paytheory.ALL`. All Options [Here](#accepted-payment-methods) | +| payorId | String | The Pay Theory id for the payor that will be used for the payment. If this is not passed in a new payor will be created. | +| metadata | JSON | The metadata that will be passed in to the transaction. | +| feeMode | String | The fee mode that will be used for the payment. Defaults to `paytheory.MERCHANT_FEE`. | +| accountCode | String | The account code that will be used for the payment. | **Style Object** -These are the values that you can pass into the `style` object to customize the payment button. +These are the parameters that you can pass into the `style` object to customize the payment button. -**Optional Values** +**Optional Parameters** -- `color`: (String) - - The color of the payment button. Defaults to `paytheory.PURPLE`. - - Constants are available from the SDK. - - Available options are `paytheory.PURPLE`, `paytheory.WHITE`, `paytheory.BLACK`, and `paytheory.GREY` +|Key |type | description | +|-------------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------| +|color |String | The color of the payment button. Defaults to `paytheory.PURPLE`. All Options [Here](#color) | +|callToAction |String | The call to action that will be displayed on the payment button. Defaults to `paytheory.PAY`. All Options [Here](#call-to-action) | +|pill |Boolean | Pass `true` to make the payment button a pill shape. Defaults to `false`. | +|height |String | The height of the payment button. Defaults to `48px`. min-height is `30px` and max-height is `55px` | +## Call To Action -- `callToAction`: (String) - - The call to action that will be displayed on the payment button. Defaults to `paytheory.PAY`. - - Constants are available from the SDK. - - Available options are `paytheory.CHECKOUT`, `paytheory.DONATE`, `paytheory.PAY` and `paytheory.BOOK` +- `DONATE` - The call to action will be `Donate`. Constant is available from the SDK as `paytheory.DONATE`. +- `PAY` - The call to action will be `Pay`. Constant is available from the SDK as `paytheory.PAY`. +- `BOOK` - The call to action will be `Book`. Constant is available from the SDK as `paytheory.BOOK`. +## Accepted Payment Methods -- `pill`: (Boolean) - - Pass `true` to make the payment button a pill shape. Defaults to `false`. +- `ONLY_CARD` - Only card payments will be accepted. Constant is available from the SDK as `paytheory.ONLY_CARD`. +- `ONLY_ACH` - Only ACH payments will be accepted. Constant is available from the SDK as `paytheory.ONLY_ACH`. +- `ONLY_CASH` - Only cash payments will be accepted. Constant is available from the SDK as `paytheory.ONLY_CASH`. +- `NOT_CARD` - Card payments will not be accepted. Constant is available from the SDK as `paytheory.NOT_CARD`. +- `NOT_ACH` - ACH payments will not be accepted. Constant is available from the SDK as `paytheory.NOT_ACH`. +- `NOT_CASH` - Cash payments will not be accepted. Constant is available from the SDK as `paytheory.NOT_CASH`. +- `ALL` - All payment methods will be accepted. Constant is available from the SDK as `paytheory.ALL`. +## Color -- `height`: (String) - - The height of the payment button. Defaults to `48px`. - - min-height is `30px` and max-height is `55px` +- `PURPLE` - The button color will be purple. Constant is available from the SDK as `paytheory.PURPLE`. +- `WHITE` - The button color will be white. Constant is available from the SDK as `paytheory.WHITE`. +- `BLACK` - The button color will be black. Constant is available from the SDK as `paytheory.BLACK`. +- `GREY` - The button color will be grey. Constant is available from the SDK as `paytheory.GREY`. \ No newline at end of file diff --git a/docs/sdk/javascript/payment_qr_code.md b/docs/sdk/javascript/payment_qr_code.md index 8d9fffd..da9ae2a 100644 --- a/docs/sdk/javascript/payment_qr_code.md +++ b/docs/sdk/javascript/payment_qr_code.md @@ -8,7 +8,7 @@ title: "" This is a function initializes a payment session based on the `checkoutDetails` you pass in. It then generates a QR Code that can be scanned to open a checkout page and accept a payment. - +*** ## qrCode ```javascript @@ -51,142 +51,78 @@ These are the values that you can pass into the `qrCode` function to customize t You pass a single object into the function with the following keys. **Required Values** -- `apiKey`: (String) - - The API key for your Pay Theory account. You can find this in your Pay Theory Portal. - -- `checkoutDetails`: (Object) - - The details for the checkout page that opens when the qrCode is scanned. Details Below. +| Key | type | description | +|-----------------|--------|-----------------------------------------------------------------------------------------------------------| +| apiKey | String | The API key for your Pay Theory account. You can find this in your Pay Theory Portal. | +| checkoutDetails | Object | The details for the checkout page that opens when the qrCode is scanned. Details [Below](#checkout-details). | **Optional Values** -- `size`: (Int) - - This is the size, height and width, of the qrCode in pixels. Defaults to `128` and must be above `128` and below `300`. - - -- `onReady`: (Function) - - A function that will be called when the qrCode is ready to be displayed. - -- `onError`: (Function) - - A function that will be called when an error occurs. It is passed an error string. - - -- `onSuccess`: (Function) - - A function that will be called when the payment is successful. It is passed an object with the following values. - - **last_four** (String): The last four digits of the card number or account number - - **amount** (Int): The amount of the transaction **(service fee is included)** - - **service_fee** (Int): The service fee of the transaction - - **receipt_number** (String): The Pay Theory receipt number - - **brand** (String): The brand of the card - - **created_at** (String): The date and time the transaction was created - - **state** (String): The status of the transaction - - **metadata** (JSON): The metadata of the transaction - - **payor_id** (String): The Pay Theory id for the payor that was used for the transaction - - **payment_method_id** (String): The Pay Theory id for the payment method token - -**Checkout Details** +| Key | type | description | +|------------------|-------------|-------------------------------------------------------------------------------------------------------------------------| +| size | Int | This is the size, height and width, of the qrCode in pixels. Defaults to `128` and must be above `128` and below `300`. | +| onReady | Function | A function that will be called when the qrCode is ready to be displayed. | +| onError | Function | A function that will be called when an error occurs. It is passed an error string. | +| onSuccess | Function | A function that will be called when the payment is successful. It is passed a [success](#success-response) response. | + +*** +## Success Response + +| Key | type | description | +|-------------------|----------|-------------------------------------------------------------------| +| last_four | String | The last four digits of the card number or account number | +| amount | Int | The amount of the transaction **(service fee is included)** | +| service_fee | Int | The service fee of the transaction | +| receipt_number | String | The Pay Theory receipt number | +| brand | String | The brand of the card | +| created_at | String | The date and time the transaction was created | +| state | String | The status of the transaction | +| metadata | JSON | The metadata of the transaction | +| payor_id | String | The Pay Theory id for the payor that was used for the transaction | +| payment_method_id | String | The Pay Theory id for the payment method token | + +*** +## Checkout Details These are the values that you can pass into the `checkoutDetails` object to customize the checkout page that opens when the qrCode is scanned. **Required Values** -- `amount`: (Int) - - The amount of the payment in cents. - -- `paymentName`: (String) - - The name of the payment that will be displayed on the checkout page. Will also be passed in to the `reference` field of the transaction. +| Key | type | description | +|-------------|--------|------------------------------------------------------------------------------------------------------------------------------------------| +| amount | Int | The amount of the payment in cents. | +| paymentName | String | The name of the payment that will be displayed on the checkout page. Will also be passed in to the `reference` field of the transaction. | **Optional Values** -- `paymentDescription`: (String) - - The description of the payment that will be displayed on the checkout page. - - -- `requirePhone`: (Boolean) - - Pass `true` to require the user to enter a phone number on the checkout page. - - -- `callToAction`: (String) - - The call to action that will be displayed on the payment button. Defaults to "PAY". - - Constants are available from the SDK. - - Available options are `paytheory.DONATE`, `paytheory.PAY` and `paytheory.BOOK` - - -- `acceptedPaymentMethods`: (String) - - The payment methods that will be accepted for the payment. Defaults to `paytheory.ALL`. - - Constants are available from the SDK. - - Available options are `paytheory.ONLY_CARD`, `paytheory.ONLY_ACH`, `paytheory.ONLY_CASH`, `paytheory.NOT_CARD`, `paytheory.NOT_ACH`, `paytheory.NOT_CASH`, and `paytheory.ALL` - - -- `payorId`: (String) - - The Pay Theory id for the payor that will be used for the payment. If this is not passed in a new payor will be created. - - -- `metadata`: (JSON) - - The metadata that will be passed in to the transaction. - -- `feeMode`: (String) - - The fee mode that will be used for the payment. Defaults to `paytheory.FIXED`. - - Constants are available from the SDK. - - Available options are `paytheory.SERVICE_FEE` and `paytheory.MERCHANT_FEE` - - -- `accountCode`: (String) - - The account code that will be used for the payment. - - -- `invoiceId`: (String) - - The Pay Theory invoice ID to use for the payment. Allows for user to assign a payment to an invoice. - - -- `recurringId`: (String) - - The Pay Theory recurring ID to use for the payment. Allows for user to assign a payment to a recurring payment. - - If you pass in a recurring ID, the transactions amount must be an interval of the recurring payments amount per payment. - - -## Payor Info Object - -This data will be used to create a payor in Pay Theory system that will be represented by a Payor ID. - -- **first_name**: (String) The first name of the payor -- **last_name**: (String) The last name of the payor -- **email**: (String) The email address of the payor -- **phone**: (String) The phone number of the payor -- **personal_address**: (Object) The address of the payor - - **line1**: (String) The street address of the payor - - **line2**: (String) The street address of the payor - - **city**: (String) The city of the payor - - **region**: (String) The region (state) of the payor - - **postal_code**: (String) The postal code of the payor - - **country**: (String) The country of the payor - -```json -{ - "first_name": "Some", - "last_name": "Body", - "email": "somebody@paytheory.com", - "phone": "3335554444", - "personal_address": { - "city": "Somewhere", - "country": "USA", - "region": "OH", - "line1": "123 Street St", - "line2": "Apartment 17", - "postal_code": "12345" - } -} -``` - -You can also optionally pass in a boolean to use the same info that is passed into the card address fields if you want to avoid collecting this information twice on a card transaction. - -When you pass this boolean in as true the only other fields allowed to be passed in are the email and phone fields. It will error if you pass in any other fields. - -This only works when you run the `transact` function. - -```json -{ - "same_as_billing": true, - "phone": "3335554444", - "email": "somebody@paytheory.com" -} -``` \ No newline at end of file +| Key | type | description | +|------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| paymentDescription | String | The description of the payment that will be displayed on the checkout page. | +| requirePhone | Boolean | Pass `true` to require the user to enter a phone number on the checkout page. | +| callToAction | String | The call to action that will be displayed on the payment button. Defaults to `paytheory.PAY`. All Options [Here](#call-to-action) | +| acceptedPaymentMethods | String | The payment methods that will be accepted for the payment. Defaults to `paytheory.ALL`. All Options [Here](#accepted-payment-methods) | +| payorId | String | The Pay Theory id for the payor that will be used for the payment. If this is not passed in a new payor will be created. | +| metadata | JSON | The metadata that will be passed in to the transaction. | +| feeMode | String | The fee mode that will be used for the payment. Defaults to `paytheory.MERCHANT_FEE`. Constants are available from the SDK. Available options are `paytheory.SERVICE_FEE` and `paytheory.MERCHANT_FEE` | +| accountCode | String | The account code that will be used for the payment. | +| invoiceId | String | The Pay Theory invoice ID to use for the payment. Allows for user to assign a payment to an invoice. | +| recurringId | String | The Pay Theory recurring ID to use for the payment. Allows for user to assign a payment to a recurring payment. If you pass in a recurring ID, the transactions amount must be an interval of the recurring payments amount per payment. | + +*** +## Call To Action + +- `DONATE` - The call to action will be `Donate`. Constant is available from the SDK as `paytheory.DONATE`. +- `PAY` - The call to action will be `Pay`. Constant is available from the SDK as `paytheory.PAY`. +- `BOOK` - The call to action will be `Book`. Constant is available from the SDK as `paytheory.BOOK`. + +*** +## Accepted Payment Methods + +- `ONLY_CARD` - Only card payments will be accepted. Constant is available from the SDK as `paytheory.ONLY_CARD`. +- `ONLY_ACH` - Only ACH payments will be accepted. Constant is available from the SDK as `paytheory.ONLY_ACH`. +- `ONLY_CASH` - Only cash payments will be accepted. Constant is available from the SDK as `paytheory.ONLY_CASH`. +- `NOT_CARD` - Card payments will not be accepted. Constant is available from the SDK as `paytheory.NOT_CARD`. +- `NOT_ACH` - ACH payments will not be accepted. Constant is available from the SDK as `paytheory.NOT_ACH`. +- `NOT_CASH` - Cash payments will not be accepted. Constant is available from the SDK as `paytheory.NOT_CASH`. +- `ALL` - All payment methods will be accepted. Constant is available from the SDK as `paytheory.ALL`. \ No newline at end of file From 7b545ff52e158be3aeb91d3eedc51e33248fb133 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Tue, 13 Feb 2024 09:28:31 -0500 Subject: [PATCH 21/34] chore: fixed some layout of the create a subscription guide --- .../create_a_subscription.mdx | 2 +- .../update_recurring_payments.mdx | 56 +++++-------------- 2 files changed, 14 insertions(+), 44 deletions(-) diff --git a/docs/main/recurring_payments/create_a_subscription.mdx b/docs/main/recurring_payments/create_a_subscription.mdx index 832cc48..f44c7e6 100644 --- a/docs/main/recurring_payments/create_a_subscription.mdx +++ b/docs/main/recurring_payments/create_a_subscription.mdx @@ -18,7 +18,7 @@ In this example, Pat Johnson has purchased an ongoing subscription to Lawncare D ```graphql title="GraphQL" mutation { - createPaymentSubscription(input: { + createRecurringPayment(input: { amount: 500, # Amount in pennies merchant_uid: "", # Insert merchant_uid payment_interval: MONTHLY, diff --git a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx index 5fe93ce..b544d8f 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx @@ -13,60 +13,33 @@ import Admonition from '@theme/Admonition'; # Update Recurring Payment Updating recurring payments allows modifications to payment details, intervals, or amounts for ongoing subscriptions or services. This guide refers to making changes to the specifics of an already-existing regular payment plan, including altering the amounts, intervals, or related data. -:::info Info -It updates the payment method on the recurring payment. If you want to update any other fields, you will need to cancel the recurring payment and create a new one. +:::tip Tip +Updating an invoice can be used to update a payment method and catch up on any missed payments caused by an invalid payment method. If you want to update any other fields, you will need to cancel the recurring payment and create a new one. ::: ## Request -This call will modify automatic payment plans that are in progress without having to cancel and start over from scratch. +This call will allow you to update the payment method on a recurring payment and catch up on any missed payments caused by an invalid payment method. ```graphql title="GraphQL" mutation { updateRecurringPayment(input: { - payment_method_id: String, + payment_method_id: "", # Insert payment_method_id recurring_id: "", # Insert recurring_id }) { - fee_mode - Fee_per_payment - mute_all_emails - payment_method { - payment_method_object - } + amount_per_payment + remaining_payments recurring_id - } } ``` -### Parameters -To update a recurring payment, you need to send a request. - -|Key | description | -|-------------------|---------------------------------------| -| UpdateRecurringPaymentInput |The recurring_id of the recurring payment to be retired.| - -### Required Arguments -The following parameters must be used in order to update recurring payment data information. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| recurring_id |string |The `recurring_id` of the recurring payments to be updated.| -| payment_method_id |string |The payment_method_id of the tokenized payment method that will be used for the recurring payment. If recurring payment is in a Failed state it will try to run a payment with the new payment method and get it back into a Successful state.| - - -### Optional Arguments -The parameters listed below provide flexibility in query result customization but are not required to update a payment plan. - -|Key |type |description | -|---------------------|-----------------|--------------------------------------------| -| pay_all_missed_payment |boolean | If the recurring payment has a set number of payments (Payment Plan) and is in a Failed state, this will make a one time charge to account for all missed payments to get it back into a Successful state.| -| mute_all_emails |boolean |If set to true, no emails will be sent to the payor for this recurring payment.| -| recurring_id |string | The pay theory unique identifier assigned to the recurring payment.| -| fee_mode |FeeMode |The fee mode for the recurring payment. SERVICE_FEE charges the fees to the payor. MERCHANT_FEE charges the fees to the merchant. Options are
  • SERVICE_FEE
  • MERCHANT_FEE(default)
| -| fee_per_payment | int | The fee for the recurring payment. | +:::note Additional Parameters +View the extensive list of parameters for recurring payments in our API. +View All Parameters +::: *** @@ -77,12 +50,9 @@ The call will return the updated recurring payment object. { "data": { "updateRecurringPayment": { - "fee_per_payment": int, - "mute_all_emails": false, - "payment_method": { - "payment_method_id": string - }, - "recurring_id": string + "amount_per_payment": 100, + "remaining_payments": 10, + "recurring_id": "pt_rec_123456789" } } } From 6a022022f6f798ff56821743b0c430ae2bcadf42 Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Tue, 13 Feb 2024 10:14:14 -0500 Subject: [PATCH 22/34] css updates to typography as well as updates to managing recurring payments guides. --- .../cancel_recurring_payments.mdx | 10 +++---- .../missed_recurring_payment_data.mdx | 12 +++----- .../retry_failed_recurring_payments.mdx | 10 +++---- .../update_recurring_payments.mdx | 29 +++---------------- src/css/custom.css | 16 ++++++++++ 5 files changed, 32 insertions(+), 45 deletions(-) diff --git a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx index 97504f2..83a6a78 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx @@ -22,13 +22,11 @@ mutation { )} ``` -### Required Parameters -The following parameter must be used in order for the payment plan to be cancelled successfully. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| recurring_id |string |The recurring_id of the recurring payment to be canceled.| +:::note Additional Parameters +View the extensive list of parameters for recurring payments in our API. +View All Parameters +::: *** diff --git a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx index a33e190..7793ca4 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx @@ -29,15 +29,11 @@ This is useful if you want to charge a customer for all missed payments at once } ``` -### Required Parameters -The following parameters must be used in order to get the missed recurring payment data information. +:::note Additional Parameters +View the extensive list of parameters for recurring payments in our API. -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| recurring_id |string |The recurring_id of the recurring payment to be retired.| -|fee |int | If the recurring payment has fee_mode set to SERVICE_FEE, this will be the total amount of fees that will be charged to the customer to pay off the missed payments. If the recurring payment has fee_mode set to MERCHANT_FEE, this will be 0.| -|number_of_payments_missed| int |The number of payments that have been missed.| -|total_amount_owed | int |The total amount that the customer will owe to pay off the missed payments.| +View All Parameters +::: *** diff --git a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx index 10b0d01..6bc0924 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx @@ -29,13 +29,11 @@ mutation { ``` -### Required Parameters -The following parameter must be used in order to retry the failed recurring payment data. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| recurring_id |string |The recurring_id of the recurring payment to be retired.| +:::note Additional Parameters +View the extensive list of parameters for recurring payments in our API. +View All Parameters +::: *** diff --git a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx index 5fe93ce..2b12953 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx @@ -40,32 +40,11 @@ mutation { } ``` -### Parameters -To update a recurring payment, you need to send a request. +:::note Additional Parameters +View the extensive list of parameters for recurring payments in our API. -|Key | description | -|-------------------|---------------------------------------| -| UpdateRecurringPaymentInput |The recurring_id of the recurring payment to be retired.| - -### Required Arguments -The following parameters must be used in order to update recurring payment data information. The query may fail to execute if any parameter is omitted, in which case the required data for processing will need to be requested. - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -| recurring_id |string |The `recurring_id` of the recurring payments to be updated.| -| payment_method_id |string |The payment_method_id of the tokenized payment method that will be used for the recurring payment. If recurring payment is in a Failed state it will try to run a payment with the new payment method and get it back into a Successful state.| - - -### Optional Arguments -The parameters listed below provide flexibility in query result customization but are not required to update a payment plan. - -|Key |type |description | -|---------------------|-----------------|--------------------------------------------| -| pay_all_missed_payment |boolean | If the recurring payment has a set number of payments (Payment Plan) and is in a Failed state, this will make a one time charge to account for all missed payments to get it back into a Successful state.| -| mute_all_emails |boolean |If set to true, no emails will be sent to the payor for this recurring payment.| -| recurring_id |string | The pay theory unique identifier assigned to the recurring payment.| -| fee_mode |FeeMode |The fee mode for the recurring payment. SERVICE_FEE charges the fees to the payor. MERCHANT_FEE charges the fees to the merchant. Options are
  • SERVICE_FEE
  • MERCHANT_FEE(default)
| -| fee_per_payment | int | The fee for the recurring payment. | +View All Parameters +::: *** diff --git a/src/css/custom.css b/src/css/custom.css index e64af82..17ffc94 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -387,6 +387,8 @@ background-color: inherit; }*/ + + .markdown { --ifm-vertical-rhythm-top: 1; --ifm-vertical-rhythm-bottom: 1; @@ -417,8 +419,14 @@ padding-right: 1rem; } + +/* * { + font-feature-settings: "ss03" 1, "ss08" 1, "ss13" 1, "ss15" 1, "ss18" 1, "ss19" 1; +} */ + body { font-family: var(--ifm-font-family-base); + font-feature-settings: "ss03" 1, "ss08" 1, "ss13" 1, "ss15" 1, "ss18" 1, "ss19" 1; font-style: normal; font-weight: var(--ifm-font-weight-book); font-size: var(--ifm-p-font-size); @@ -460,6 +468,7 @@ strong { .markdown p { --ifm-p-font-size: 1rem; margin-bottom: calc( var(--ifm-paragraph-margin-bottom) * var(--ifm-leading)) !important; + font-feature-settings: "ss12" 1 !important; } .markdown h4 { @@ -500,10 +509,12 @@ p { font-weight: var(--ifm-font-weight-book) !important; font-size: 1rem !important; line-height: 1.5rem !important; + font-feature-settings: "ss12" 1 !important; } p a{ font-weight: var(--ifm-font-weight-medium); color: var(--ifm-color-primary); + font-feature-settings: "ss12" 1 !important; } h4 { @@ -548,6 +559,7 @@ img{ .menu{ font-weight: var(--ifm-font-weight-book); + font-feature-settings: "ss12" 1 !important; } .menu__link--active{ @@ -1238,6 +1250,7 @@ code{ } .hero p{ font-family: 'halyard-text'; + font-feature-settings: "ss12" 1 !important; font-size: 1.125rem !important; line-height: 1.75rem !important; } @@ -1260,6 +1273,7 @@ code{ letter-spacing: 1.8px; font-weight: 500 !important; font-family: 'halyard-text'; + font-feature-settings: "ss12" 1 !important; } .hero .button{ padding: 8px 20px 10px; @@ -1338,6 +1352,7 @@ code{ font-size: 1.125rem !important; line-height: 1.75rem !important; margin-left: 2px; + font-feature-settings: "ss12" 1 !important; } .home .col--2 .row{ @@ -1481,6 +1496,7 @@ code{ .section-header p { line-height: 1.5rem !important; margin-left: 1px; + font-feature-settings: "ss12" 1 !important; } .hero p{ font-size: 1rem !important; From 513998a26c669bd55ef6182abce7186e00b54ed5 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Tue, 13 Feb 2024 15:29:09 -0500 Subject: [PATCH 23/34] chore: grammar and typo corrections --- docs/api/invoice.md | 2 +- docs/api/recurring.md | 8 ++++---- docs/main/after_payments/custom_query.mdx | 2 +- .../after_payments/query_settlement_data.mdx | 4 ++-- .../delete_an_invoice.mdx | 2 +- .../create_a_payment_plan.mdx | 4 ++-- .../create_a_subscription.mdx | 6 +++--- .../cancel_recurring_payments.mdx | 2 +- .../missed_recurring_payment_data.mdx | 2 +- .../retry_failed_recurring_payments.mdx | 2 +- .../update_recurring_payments.mdx | 3 +-- docs/sdk/apple/state.md | 4 ++-- docs/sdk/javascript/event_listeners.md | 2 +- docs/sdk/javascript/functions.md | 4 ++-- docs/sdk/javascript/payment_button.md | 18 +++++++++--------- 15 files changed, 32 insertions(+), 33 deletions(-) diff --git a/docs/api/invoice.md b/docs/api/invoice.md index 4231501..6d78624 100644 --- a/docs/api/invoice.md +++ b/docs/api/invoice.md @@ -193,7 +193,7 @@ mutation { **Parameters** |Key |type | description | |-------------------|-------------|---------------------------------------| -|intput |CreateInvoiceInput|The input object that contains all of the information needed to create an invoice.| +|intput |CreateInvoiceInput|The input object that contains all the information needed to create an invoice.| **CreateInvoiceInput** diff --git a/docs/api/recurring.md b/docs/api/recurring.md index 0c90291..c0a88f1 100644 --- a/docs/api/recurring.md +++ b/docs/api/recurring.md @@ -180,7 +180,7 @@ mutation { mute_all_emails: Boolean }) { account_code - ...reccuring_payment_object + ...recuring_payment_object } } ``` @@ -235,9 +235,9 @@ mutation { **Parameters** -|Key | type | description | -|------------------|------------------------------|-----------------------------------------------------------------------------| -|input | UpdateeRecurringPaymentInput | The input object that contains the details to update the recurring payment. | +|Key | type | description | +|------------------|-----------------------------|-----------------------------------------------------------------------------| +|input | UpdateRecurringPaymentInput | The input object that contains the details to update the recurring payment. | **UpdateRecurringPaymentInput** diff --git a/docs/main/after_payments/custom_query.mdx b/docs/main/after_payments/custom_query.mdx index ac7372d..5e5dc36 100644 --- a/docs/main/after_payments/custom_query.mdx +++ b/docs/main/after_payments/custom_query.mdx @@ -47,7 +47,7 @@ The parameters listed below provide flexibility in query result customization bu |Key |type | description | |-------------------|-------------|---------------------------------------| -|conjuctive_operator | ConjunctiveOperator | The conjunctive operator to use to connect the query pair with the next query pair. More detail below.| +|conjunctive_operator | ConjunctiveOperator | The conjunctive operator to use to connect the query pair with the next query pair. More detail below.| |in_values |string |A list of values to compare the data to. This should be used instead of `value` if using the operators `IN_LIST` or `NOT_IN_LIST`.| |query_group |QueryPairs | A list of query pairs to use to build out a nested query. A more detailed example is below under the examples section.| |value |string |The value to compare the data to. If using the LIKE or NOT_LIKE operator, this value can contain wildcard characters.| diff --git a/docs/main/after_payments/query_settlement_data.mdx b/docs/main/after_payments/query_settlement_data.mdx index a0f70df..87deb6c 100644 --- a/docs/main/after_payments/query_settlement_data.mdx +++ b/docs/main/after_payments/query_settlement_data.mdx @@ -10,10 +10,10 @@ import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; # Query Settlement Data -Settlements are a batch of payments, disputes, and refunds that are grouped together and paid out to a merchant. This guide will walk you through how to write a query for a settlment. +Settlements are a batch of payments, disputes, and refunds that are grouped together and paid out to a merchant. This guide will walk you through how to write a query for a settlement. ```graphql title="GraphQL" -query Getsettlement{ +query GetSettlement{ settlements(limit: 10, direction: FORWARD, offset: "", offset_id: "", query:{ query_list:[ { diff --git a/docs/main/invoicing_and_billing/delete_an_invoice.mdx b/docs/main/invoicing_and_billing/delete_an_invoice.mdx index 299764e..69424be 100644 --- a/docs/main/invoicing_and_billing/delete_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/delete_an_invoice.mdx @@ -10,7 +10,7 @@ import TabItem from '@theme/TabItem'; import Admonition from '@theme/Admonition'; # Delete an Invoice -Deleting an invoice permenantly erases an invoice's transaction history from the database. The guide below will delete an invoice. +Deleting an invoice permanently erases an invoice's transaction history from the database. The guide below will delete an invoice. ## Request Insert the appropriate `invoice_id` below to delete an invoice. diff --git a/docs/main/recurring_payments/create_a_payment_plan.mdx b/docs/main/recurring_payments/create_a_payment_plan.mdx index df997b0..2de20ac 100644 --- a/docs/main/recurring_payments/create_a_payment_plan.mdx +++ b/docs/main/recurring_payments/create_a_payment_plan.mdx @@ -13,7 +13,7 @@ import Admonition from '@theme/Admonition'; Recurring payments are any repeating transactions that are completed on a periodic basis, such as a car loan, or mortgage. This guide will walk you through how to make a recurring payment plan. ## Request -In the following example Pat Johnson purchassed a lawn mower for $1000.00. However he was unable to make the entire payment so he opted for a payment plan. In this example, his total payment of $1000.00 will be split up into 10 payments of $100.00. The payments will be collected from Pat Johnson's tokenized payment method every month, and will continue until the all 10 payments are complete. +In the following example Pat Johnson purchased a lawn mower for $1000.00. However, he was unable to make the entire payment, so he opted for a payment plan. In this example, his total payment of $1000.00 will be split up into 10 payments of $100.00. The payments will be collected from Pat Johnson's tokenized payment method every month, and will continue until the all 10 payments are complete. ```graphql title="GraphQL" mutation { @@ -64,7 +64,7 @@ The call will return the newly created recurring payment. *** ## Next Steps -You can also refer to [create payment subscription](../recurring_payments/create_a_subscription.mdx) and we can also cancel our recurring payments refer to [cancel the recurring payments](../recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx). +You can also refer to [create payment subscription](../recurring_payments/create_a_subscription.mdx) or if you are looking to cancel a Recurring Payment refer to [cancel recurring payments](../recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx). diff --git a/docs/main/recurring_payments/create_a_subscription.mdx b/docs/main/recurring_payments/create_a_subscription.mdx index f44c7e6..b09bdb1 100644 --- a/docs/main/recurring_payments/create_a_subscription.mdx +++ b/docs/main/recurring_payments/create_a_subscription.mdx @@ -14,7 +14,7 @@ import Admonition from '@theme/Admonition'; A payment subscription involves paying for ongoing use of a service or product. This guide will walk you through how to make a payment using subscription. ## Request -In this example, Pat Johnson has purchased an ongoing subscription to Lawncare Digest. Pat will be charged $5.00 every month from his tokendized method on file, until he cancels his subscription. +In this example, Pat Johnson has purchased an ongoing subscription to Lawn Care Digest. Pat will be charged $5.00 every month from his tokenized method on file, until he cancels his subscription. ```graphql title="GraphQL" mutation { @@ -23,7 +23,7 @@ mutation { merchant_uid: "", # Insert merchant_uid payment_interval: MONTHLY, payment_method_id: "", # Insert tokenized payment method - recurring_name: "Lawncare Digest", + recurring_name: "Lawn Care Digest", payor: { full_name: "Pat Johnson", email: "patjohnson@pat_johnson.io" @@ -60,7 +60,7 @@ The call will return the newly created recurring payment. *** ## Next Steps -You can also refer to [create recurring payment](../recurring_payments/create_a_payment_plan.mdx) and we can also update our recurring payments information refer to [update the recurring payments](../recurring_payments/manage_recurring_payments/update_recurring_payments.mdx). +You can also refer to [create a payment plan](../recurring_payments/create_a_payment_plan.mdx), or if you are looking to update a recurring payment's payment method refer to [update recurring payments](../recurring_payments/manage_recurring_payments/update_recurring_payments.mdx). diff --git a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx index 83a6a78..fd5081c 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx @@ -25,7 +25,7 @@ mutation { :::note Additional Parameters View the extensive list of parameters for recurring payments in our API. -View All Parameters +View All Parameters ::: *** diff --git a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx index 7793ca4..01c7a31 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx @@ -32,7 +32,7 @@ This is useful if you want to charge a customer for all missed payments at once :::note Additional Parameters View the extensive list of parameters for recurring payments in our API. -View All Parameters +View All Parameters ::: diff --git a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx index 6bc0924..b4cfbd0 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx @@ -32,7 +32,7 @@ mutation { :::note Additional Parameters View the extensive list of parameters for recurring payments in our API. -View All Parameters +View All Parameters ::: *** diff --git a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx index f9e51a5..98ee998 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx @@ -37,9 +37,8 @@ mutation { :::note Additional Parameters View the extensive list of parameters for recurring payments in our API. -<<<<<<< HEAD -View All Parameters +View All Parameters ::: *** diff --git a/docs/sdk/apple/state.md b/docs/sdk/apple/state.md index 848172d..17d8323 100644 --- a/docs/sdk/apple/state.md +++ b/docs/sdk/apple/state.md @@ -9,7 +9,7 @@ These are variables that are available to you from the Paytheory object to tell These variables can be used to enable or disable elements in your app. -They are made available to you as `@Published` variables so you can use them in your SwiftUI views. +They are made available to you as `@Published` variables, so you can use them in your SwiftUI views. ## Valid @@ -48,7 +48,7 @@ payTheory.cardNumber.isEmpty * This variable is used to tell if the field passes validation. * **isEmpty**: Bool - * This variable is used to tell if the field is has been typed into. + * This variable is used to tell if the field has been typed into. These two variables are available in the paytheory object for each of the following: diff --git a/docs/sdk/javascript/event_listeners.md b/docs/sdk/javascript/event_listeners.md index 6533551..71180e6 100644 --- a/docs/sdk/javascript/event_listeners.md +++ b/docs/sdk/javascript/event_listeners.md @@ -48,7 +48,7 @@ The callback will be passed a string indicating what happened in the SDK. The st Most errors will require the user to refresh the page and try again. -The exception to this is the `NOT_VALID` error which will require the user to change the data in the payment fields until you get a proper response to the valid observer and then you may try and transact or tokenize again. +The exception to this is the `NOT_VALID` error which will require the user to change the data in the payment fields until you get a proper response to the valid observer, and then you may try and transact or tokenize again. **Returns** diff --git a/docs/sdk/javascript/functions.md b/docs/sdk/javascript/functions.md index 6525f99..2e26174 100644 --- a/docs/sdk/javascript/functions.md +++ b/docs/sdk/javascript/functions.md @@ -147,7 +147,7 @@ paytheory.cancel() The function returns a Promise that will contain `true` if the transaction was cancelled successfully or an [`ERROR`](#error-response) Response. -Once you click cancel the transaction will be cancelled and you will be able to run `transact` again. +Once you click cancel the transaction will be cancelled, and you will be able to run `transact` again. *** ## tokenizePaymentMethod @@ -343,7 +343,7 @@ This is the value of the `body` key in the response if the `type` is `CASH`: ### Error Response -If the response has the `type` of `ERROR` it will have another key `error` with a string attatched to it. The string will begin with one of the codes shown [here](ERRORS). +If the response has the `type` of `ERROR` it will have another key `error` with a string attached to it. The string will begin with one of the codes shown [here](ERRORS). ```json { diff --git a/docs/sdk/javascript/payment_button.md b/docs/sdk/javascript/payment_button.md index db107e1..75d7e9b 100644 --- a/docs/sdk/javascript/payment_button.md +++ b/docs/sdk/javascript/payment_button.md @@ -69,15 +69,15 @@ You pass a single object into the function with the following keys. **Optional Parameters** -|Key |type | description | -|-------------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| -|style |Object | The style object that will style the payment button. Details Below. | -|onReady |Function | A function that will be called when the button is ready to be clicked. | -|onClick |Function | A function that will be called when the button is clicked. | -|onError |Function | A function that will be called when an error occurs. It is passed an error string. | -|onCancel |Function | A function that will be called when the user cancels the payment from the pop-up window. | -|onSuccess |Function | A function that will be called when the payment is successful. It is passed a [success](#success-response) response. | -|onBarcode |Function | A function that will be called when a barcode is successfully created and the user closes the window. It is passed a [bardcode](#barcode-response) response. | +|Key |type | description | +|-------------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------| +|style |Object | The style object that will style the payment button. Details Below. | +|onReady |Function | A function that will be called when the button is ready to be clicked. | +|onClick |Function | A function that will be called when the button is clicked. | +|onError |Function | A function that will be called when an error occurs. It is passed an error string. | +|onCancel |Function | A function that will be called when the user cancels the payment from the pop-up window. | +|onSuccess |Function | A function that will be called when the payment is successful. It is passed a [success](#success-response) response. | +|onBarcode |Function | A function that will be called when a barcode is successfully created and the user closes the window. It is passed a [barcode](#barcode-response) response. | ## Success Response From 125a6ee89bc31bba4626b80e085d29dcf6b1cf32 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Thu, 22 Feb 2024 15:41:33 -0500 Subject: [PATCH 24/34] fix: updated auth schema to represent proper values --- docs/api/authorization.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/api/authorization.md b/docs/api/authorization.md index 5117b89..e4ebbde 100644 --- a/docs/api/authorization.md +++ b/docs/api/authorization.md @@ -18,7 +18,6 @@ An authorization is used to reserve funds on a card for a future transaction. I amount: Int! authorization_date: AWSDateTime! authorization_id: String! - captured_amount: Int currency: String! expiration_date: AWSDateTime failure_reasons: [String] @@ -32,7 +31,6 @@ An authorization is used to reserve funds on a card for a future transaction. I sale_id: String status: AuthorizationStatus! timezone: String - transaction_id: String updated_row_at: AWSDateTime } ``` @@ -43,7 +41,6 @@ An authorization is used to reserve funds on a card for a future transaction. I |amount |Int! |The amount of the authorization in cents.| |authorization_date |AWSDateTime! |The date and time the authorization was created.| |authorization_id |String! |The Pay Theory unique identifier assigned to the authorization.| -|captured_amount |Int |The amount of the authorization that has been captured.| |currency |String! |The currency of the authorization. Currently only `USD` is supported.| |expiration_date |AWSDateTime |The date and time the authorization will expire.| |failure_reasons |[String] |Array of failure reasons for the authorization. If the authorization is successful, this will be null.| @@ -57,7 +54,6 @@ An authorization is used to reserve funds on a card for a future transaction. I |sale_id |String |The Pay Theory unique identifier assigned to the sale that the authorization belongs to. Sales can be used to tie together multiple auths and captures.| |status |AuthorizationStatus!|The status of the authorization. It can be one of the following: `CANCELLED`, `FAILED`, `SUCCEEDED`| |timezone |String |The timezone of the authorization.| -|transaction_id |String |The Pay Theory unique identifier assigned to the transaction that is created when the authorization is captured.| |updated_row_at |AWSDateTime |The date and time the authorization was last updated.| *** @@ -71,7 +67,6 @@ An authorization is used to reserve funds on a card for a future transaction. I amount authorization_date authorization_id - captured_amount currency device_id expiration_date @@ -93,7 +88,6 @@ An authorization is used to reserve funds on a card for a future transaction. I sale_id status timezone - transaction_id updated_row_at } total_row_count From 6801bbc5f8654f55646340bbdbdb7710e2068c3b Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Fri, 23 Feb 2024 11:17:12 -0500 Subject: [PATCH 25/34] feat: fixed SDK import on button walkthrough --- docs/main/online_payments/payment_button.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/main/online_payments/payment_button.mdx b/docs/main/online_payments/payment_button.mdx index d60123a..454ce2c 100644 --- a/docs/main/online_payments/payment_button.mdx +++ b/docs/main/online_payments/payment_button.mdx @@ -16,7 +16,7 @@ This guide will walk you through the steps to create a payment button that will You need to use the Pay Theory Web SDK. This is available by adding the below script into your web header. This button will open a hosted checkout page that will allow the user to select a payment method and complete the payment. ```jsx title="javascript" - + ``` *** From 8591cb3e646ad438343276979547126f9ce79cf7 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Fri, 23 Feb 2024 16:51:06 -0500 Subject: [PATCH 26/34] docs: updated the auth details --- docs/api/authorization.md | 24 +++++++++++++----------- docs/api/transaction.md | 4 ++++ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/docs/api/authorization.md b/docs/api/authorization.md index e4ebbde..bffe59c 100644 --- a/docs/api/authorization.md +++ b/docs/api/authorization.md @@ -119,7 +119,7 @@ mutation { createAuthorization( account_code: "", amount: 10, fee: 10, - fee_mode: INTERCHANGE, + fee_mode: MERCHANT_FEE, health_expense_type: CLINICAL, invoice_id: "", merchant_uid: "", @@ -163,7 +163,8 @@ The authorization object. Refer to the [Authorization Object](#the-authorizatio mutation { createCapture( allow_exceeded_amount: false, allow_reauth: false, - amount: 10, + amount: 10, + fee: 10, authorization_id: "", merchant_uid: "", receipt_description: "", @@ -177,15 +178,16 @@ mutation { **Parameters** -|Key |type | description | -|-------------------|-------------|---------------------------------------| -|allow_exceeded_amount|Boolean |Whether to allow the capture to exceed the amount of the authorization.

If this is set to `true` Pay Theory will release the hold on the current auth and create a new auth for the amount of the capture.

If this is set to `false` or left blank, the capture will fail if the amount is greater than the amount of the authorization.| -|allow_reauth |Boolean |Whether to allow the capture to be reauthorized in the case that it is expired.

If this is set to `true` Pay Theory will reauthorize the capture if it is expired.

If this is set to `false` or left blank, the capture will fail if it is expired.| -|amount |Int! |The amount of the capture in cents.| -|authorization_id |String! |The Pay Theory unique identifier assigned to the authorization that you are looking to capture.| -|merchant_uid |String! |The Pay Theory unique identifier assigned to the merchant that the authorization belongs to.| -|receipt_description|String |A custom description that will be displayed on the receipt.| -|send_receipt |Boolean |Can be set to `true` to send a receipt to the payor.| +|Key |type | description | +|-------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|allow_exceeded_amount|Boolean | Whether to allow the capture to exceed the amount of the authorization.

If this is set to `true` Pay Theory will release the hold on the current auth and create a new auth for the amount of the capture.

If this is set to `false` or left blank, the capture will fail if the amount is greater than the amount of the authorization. | +|allow_reauth |Boolean | Whether to allow the capture to be reauthorized in the case that it is expired.

If this is set to `true` Pay Theory will reauthorize the capture if it is expired.

If this is set to `false` or left blank, the capture will fail if it is expired. | +|amount |Int! | The amount of the capture in cents. If auth has a `fee_mode` of `SERVICE_FEE` this amount would be the amount without the fee included. | +|authorization_id |String! | The Pay Theory unique identifier assigned to the authorization that you are looking to capture. | +|fee |Int | The amount of the service fee in cents. Required if you are capturing an auth that has a `fee_mode` of `SERVICE_FEE`. | +|merchant_uid |String! | The Pay Theory unique identifier assigned to the merchant that the authorization belongs to. | +|receipt_description|String | A custom description that will be displayed on the receipt. | +|send_receipt |Boolean | Can be set to `true` to send a receipt to the payor. | **Returns** diff --git a/docs/api/transaction.md b/docs/api/transaction.md index 47617e0..679cc4b 100644 --- a/docs/api/transaction.md +++ b/docs/api/transaction.md @@ -15,6 +15,7 @@ Transactions are a data object that can represent a payment, failed or successfu { account_code: String ach_return_details: AchReturnDetails + authorization_id: String! currency: String dispute_status: DisputeStatus failure_reasons: [String] @@ -33,6 +34,7 @@ Transactions are a data object that can represent a payment, failed or successfu refund_reason: RefundReason refund_voidable: Boolean refunded_amount: Int + sale_id: String settlement_batch: Int status: TransactionStatus timezone: String @@ -47,6 +49,7 @@ Transactions are a data object that can represent a payment, failed or successfu |-------------------|----------------------------------------------------------------------------|---------------------------------------| |account_code | String |Customer defined account code for the transaction.| |ach_return_details | AchReturnDetails |The details of the ACH return if any.| +|authorization_id | String |The authorization id for the transaction.| |currency | String |The type of currency for the transaction.| |dispute_status | [DisputeStatus](dispute#dispute-status) |The status of the dispute if any.| |failure_reasons | [String] |List of strings, if any, detailing the reason a transaction failed.| @@ -65,6 +68,7 @@ Transactions are a data object that can represent a payment, failed or successfu |refund_reason | RefundReason |The reason for the refund if any.| |refund_voidable | Boolean |Whether the refund can be voided.| |refunded_amount | Int |The amount of the transaction that has been refunded if any.| +|sale_id | String |The sale id for the transaction if any.| |settlement_batch | Int |The unique settlement batch number the transaction belongs to if settled.| |status | [TransactionStatus](#transaction-status) |The status of the transaction.| |timezone | String |The timezone the transaction was made in.| From f3564ab2bb6cdd1e481b6dec1f8fdcdff917de03 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Wed, 27 Mar 2024 12:00:40 -0400 Subject: [PATCH 27/34] feat: added fee matrix docs --- docs/api/merchant.md | 316 ++++++++++++++++++++---- docs/main/after_payments/fee_matrix.mdx | 112 +++++++++ 2 files changed, 376 insertions(+), 52 deletions(-) create mode 100644 docs/main/after_payments/fee_matrix.mdx diff --git a/docs/api/merchant.md b/docs/api/merchant.md index 15ad0d6..95cd012 100644 --- a/docs/api/merchant.md +++ b/docs/api/merchant.md @@ -12,31 +12,137 @@ Merchants are the entities that are using Pay Theory to accept payments. ## The Merchant Object ```js { - merchant_uid: String - merchant_name: String + ach_active: Boolean api_key: String - submitted_onboarding: Boolean card_active: Boolean - ach_active: Boolean cash_active: Boolean - fee_model: FeeModel + fee_matrix: FeeMatrix is_system: Boolean + merchant_name: String + merchant_uid: String parent_merchant_uid: String + settings: MerchantSettings + submitted_onboarding: Boolean } ``` |Key |type | description | -|-------------------|-------------|---------------------------------------| -|merchant_uid |ID |The Pay Theory unique identifier assigned to the merchant.| -|merchant_name |String |The name of the merchant.| +|-------------------|-------------|---------------------------------------| +|ach_active |Boolean |If the merchant has successfully completed onboarding and has an ACH processor active.| |api_key |String |The API key of the merchant. This is used to authenticate use of the PayTheory Web and Native SDKs.| -|submitted_onboarding|Boolean |Whether the merchant has submitted their onboarding information.| |card_active |Boolean |If the merchant has successfully completed onboarding and has a card processor active.| -|ach_active |Boolean |If the merchant has successfully completed onboarding and has an ACH processor active.| |cash_active |Boolean |If the merchant has successfully completed onboarding and has a cash processor active.| -|fee_model |FeeModel |The fee model that the merchant is using. This is used to calculate the fees that are charged to the payor.| -|is_system |Boolean |Returns `true` if the merchant has children merchants.| +|fee_matrix |FeeMatrix |The fee matrix that the merchant is using. This is used to calculate the fees that are charged to the payor.| +|is_system |Boolean |If the merchant is a system merchant. System merchants are merchants that also have sub merchants.| +|merchant_name |String |The name of the merchant.| +|merchant_uid |String |The Pay Theory unique identifier assigned to the merchant.| |parent_merchant_uid|String |The `merchant_uid` of the parent merchant. This is only set if the merchant is a sub merchant of a system merchant.| +|settings |MerchantSettings|The settings that the merchant has set.| +|submitted_onboarding|Boolean |Whether the merchant has submitted their onboarding information.| + +## The Fee Matrix Object + +This object is used to calculate the fees that are charged to the payor. `card`, `ach`, and `cash` are the main fee objects that are used to calculate the fees for each transaction type. + +The other objects are used to calculate fees for specific card brands or card types and are optional. If they are not set, the fees will be calculated using the `card` object. + +Card brands can only be used to charge different fees when using the `MERCHANT_FEE` fee mode. + +```js +{ + ach: AchFee! + ach_return_fee: Int! + ach_return_disputed_fee: Int! + business_credit: CardFee + business_debit: CardFee + amex: CardBrandFee + card: CardFee! + card_account_updater: Int! + cash: Int! + chargeback_fee: Int! + credit_card: CardFee + debit_card: CardFee + discover: CardBrandFee + interchange_plus: Boolean! + international_card_basis: Int! + mastercard: CardBrandFee + merchant_uid: String! + prepaid_card: CardFee + service_fee_enabled: Boolean! + visa: CardBrandFee +} +``` + +|Key |type | description | +|-------------------|-------------|---------------------------------------------------------------------------------------------------------------------------------------| +|ach |AchFee | The model that will be used to calculate all ACH transaction fees for the merchant. | +|ach_return_fee |Int | The fee that will be charged to the merchant for an ACH return. | +|ach_return_disputed_fee|Int | The fee that will be charged to the merchant for an ACH return that falls into one of the following return codes. | +|business_credit |CardFee | The model that will be used to calculate all business credit card transaction fees for the merchant. | +|business_debit |CardFee | The model that will be used to calculate all business debit card transaction fees for the merchant. | +|amex |CardBrandFee| The model that will be used to calculate all American Express card transaction fees for the merchant. | +|card |CardFee | The model that will be used to calculate all card transaction fees for the merchant. | +|card_account_updater|Int | The fee that will be charged to the merchant for each card updated through card account updater | +|cash |Int | The fee that will be charged to the merchant for each cash transaction. | +|chargeback_fee |Int | The fee that will be charged to the merchant for each chargeback. | +|credit_card |CardFee | The model that will be used to calculate all credit card transaction fees for the merchant. | +|debit_card |CardFee | The model that will be used to calculate all debit card transaction fees for the merchant. | +|discover |CardBrandFee| The model that will be used to calculate all Discover card transaction fees for the merchant. | +|interchange_plus |Boolean | If the merchant is using interchange plus pricing. | +|international_card_basis|Int | The basis points that will be charged to the merchant for each international card transaction. | +|mastercard |CardBrandFee| The model that will be used to calculate all Mastercard card transaction fees for the merchant when using the `MERCHANT_FEE` fee mode | +|merchant_uid |String | The `merchant_uid` of the merchant that the fee matrix is associated with. | +|prepaid_card |CardFee | The model that will be used to calculate all prepaid card transaction fees for the merchant. | +|service_fee_enabled|Boolean | If the merchant is using service fee pricing. | +|visa |CardBrandFee| The model that will be used to calculate all Visa card transaction fees for the merchant. | + +## Fee Type Objects +```graphql +type AchFee { + merchant_fee: AchMerchantFee + service_fee: AchServiceFee +} + +type AchMerchantFee { + basis_points: Int! + fixed: Int! + max_fee: Int +} + +type AchServiceFee { + basis_points: Int + fixed: Int + max_fee: Int + min_fee: Int +} + +type CardFee { + merchant_fee: CardMerchantFee + service_fee: CardServiceFee +} + +type CardBrandFee { + merchant_fee: CardMerchantFee +} + +type CardMerchantFee { + basis_points: Int + fixed: Int +} + +type CardServiceFee { + basis_points: Int + fixed: Int + min_fee: Int +} +``` + +|Key |type | description | +|-------------------|-------------|--------------------------------------------------------------------------------------------------| +|basis_points |Int | The basis points that will be used to calculate the fee off the total amount of the transaciton. | +|fixed |Int | The fixed fee that will be charged to the merchant for each transaction. | +|max_fee |Int | The maximum fee that will be charged to the merchant for each transaction. | +|min_fee |Int | The minimum fee that will be charged to the merchant for each transaction. | *** ## Query Merchant @@ -45,33 +151,7 @@ Merchants are the entities that are using Pay Theory to accept payments. merchant(merchant_name: String, merchant_uid: String) { ach_active api_key - card_active - cash_active - fee_model { - merchant_fee { - ach_basis - ach_fixed - card_basis - card_fixed - } - service_fee { - ach_basis - ach_fixed - card_basis - card_fixed - } - service_fee_min { - ach_basis - ach_fixed - card_basis - card_fixed - } - } - is_system - merchant_name - merchant_uid - parent_merchant_uid - submitted_onboarding + ... } } @@ -106,28 +186,29 @@ This is a limited merchant object that is returned when you want to query a list ```js { - merchant_uid: String - merchant_name: String + ach_active: Boolean + card_active: Boolean + cash_active: Boolean is_system: Boolean + merchant_name: String + merchant_uid: String parent_merchant_uid: String submitted_onboarding: Boolean - card_active: Boolean - ach_active: Boolean - cash_active: Boolean updated_row_at: AWSDateTime } ``` |Key |type | description | -|-------------------|-------------|---------------------------------------| -|merchant_uid |ID |The Pay Theory unique identifier assigned to the merchant.| -|merchant_name |String |The name of the merchant.| +|-------------------|-------------|---------------------------------------| +|ach_active |Boolean |If the merchant has successfully completed onboarding and has an ACH processor active.| +|card_active |Boolean |If the merchant has successfully completed onboarding and has a card processor active.| +|cash_active |Boolean |If the merchant has successfully completed onboarding and has a cash processor active.| |is_system |Boolean |If the merchant is a system merchant. System merchants are merchants that also have sub merchants.| +|merchant_name |String |The name of the merchant.| +|merchant_uid |String |The Pay Theory unique identifier assigned to the merchant.| |parent_merchant_uid|String |The `merchant_uid` of the parent merchant. This is only set if the merchant is a sub merchant of a system merchant.| |submitted_onboarding|Boolean |Whether the merchant has submitted their onboarding information.| -|card_active |Boolean |If the merchant has successfully completed onboarding and has a card processor active.| -|ach_active |Boolean |If the merchant has successfully completed onboarding and has an ACH processor active.| -|cash_active |Boolean |If the merchant has successfully completed onboarding and has a cash processor active.| -|updated_row_at |String |The date the merchant was last updated.| +|updated_row_at |AWSDateTime |The date the merchant was last updated.| + *** ## Query Merchants @@ -238,4 +319,135 @@ mutation { ``` |Key |type | description | |-------------------|------------|---------------------------------------| -|createMerchant |ListMerchant|The newly created merchant object.| \ No newline at end of file +|createMerchant |ListMerchant|The newly created merchant object.| + + +## Update Fee Matrix + +:::note Limited Access +This mutation is only available to users with Partner level access. Please contact Pay Theory support if you need to update a merchant's fee matrix and do not have Partner level access. +::: + +```graphql +mutation { + updateFeeMatrix( + fee_matrix: FeeMatrixInput! + ) { + ach { + merchant_fee { + basis_points + fixed + max_fee + } + service_fee { + basis_points + fixed + max_fee + min_fee + } + } + ... +} +``` + +**Parameters** + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|fee_matrix |FeeMatrixInput|The new fee matrix that will be used to calculate the fees for the merchant.| + +**Fee Matrix Input Object** + +The only required key in the update is the `merchant_uid`. All other keys are optional. If they are not set, the current value will be kept. +If you want to update an optional field to be null, you can set the value to `null`. + +```graphql +input FeeMatrixInput { + ach: AchFeeInput + ach_return_fee: Int + ach_return_disputed_fee: Int + business_credit: CardFeeInput + business_debit: CardFeeInput + amex: CardBrandFeeInput + card: CardFeeInput + card_account_updater: Int + cash: Int + chargeback_fee: Int + credit_card: CardFeeInput + debit_card: CardFeeInput + discover: CardBrandFeeInput + interchange_plus: Boolean + international_card_basis: Int + mastercard: CardBrandFeeInput + merchant_uid: String! + prepaid_card: CardFeeInput + service_fee_enabled: Boolean + visa: CardBrandFeeInput +} +``` + +**Fee Type Input Objects** +```graphql +input AchFeeInput { + merchant_fee: AchMerchantFeeInput! + service_fee: AchServiceFeeInput! +} + +input AchMerchantFeeInput { + basis_points: Int! + fixed: Int! + max_fee: Int +} + +input AchServiceFeeInput { + basis_points: Int! + fixed: Int! + max_fee: Int + min_fee: Int +} + +input CardFeeInput { + merchant_fee: CardMerchantFeeInput! + service_fee: CardServiceFeeInput! +} + +input CardBrandFeeInput { + merchant_fee: CardMerchantFeeInput! +} + +input CardMerchantFeeInput { + basis_points: Int! + fixed: Int! +} + +input CardServiceFeeInput { + basis_points: Int! + fixed: Int! + min_fee: Int +} +``` + +**Returns** + +```js +{ + "data": { + "updateFeeMatrix": { + "ach": { + "merchant_fee": { + "basis_points": 0, + "fixed": 0, + "max_fee": 0 + }, + "service_fee": { + "basis_points": 0, + "fixed": 0, + "max_fee": 0, + "min_fee": 0 + } + }, + ... + } + } +} +``` \ No newline at end of file diff --git a/docs/main/after_payments/fee_matrix.mdx b/docs/main/after_payments/fee_matrix.mdx new file mode 100644 index 0000000..a3a52a8 --- /dev/null +++ b/docs/main/after_payments/fee_matrix.mdx @@ -0,0 +1,112 @@ +--- +sidebar_position: 5 +sidebar_label: Fee Matrix +title: "Fee Matrix" + +--- + +import Tabs from '../../../components/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + +# Fee Matrix +
+This guide will walk you through how Pay Theory calculates fees for transactions using the Fee Matrix. + +## What is the Fee Matrix? + +The Fee Matrix is a tool that Pay Theory uses to calculate the fees for a merchant. + +There are some per item fees that are listed at the root level of the Fee Matrix. These fees are used to charge the merchant when certain events happen in the system. + +For example, if a merchant has an ACH Return come through the system, Pay Theory will charge the merchant a fee for that return. + +There are also some fees that are calculated based on the transaction amount. These fees are listed in the Fee Matrix as a combination of a percentage (basis points) and a fixed fee. + +For example, if a merchant processes a $100 transaction and the fee for that transaction is 2.9% + $0.30, Pay Theory will charge the merchant $3.20 for that transaction. + +## What Per Item Fees are in the Fee Matrix? + +The following per item fees are in the Fee Matrix: + +| Fee Name | Description | +|--------------------------|----------------------------------------------------------------------------------------------------| +| ACH Return Fee | This fee is charged to the merchant when an ACH return is processed. | +| ACH Return Dispute Fee | This fee is charged to the merchant when an ACH return dispute is processed. | +| Card Account Updater Fee | This fee is charged to the merchant when a card on file is updated using the card account updater. | +| Chargeback Fee | This fee is charged to the merchant when a chargeback is processed. | +| International Card Basis | This fee is charged per transaction when an international card is used. | + +## How does the Fee Matrix know what to use for calculating a fee? + +The Fee Matrix contains a few different fee structures that can be used to calculate fees for a transaction. + +If the transaction is an ACH transaction it will be calculated using the ACH fee structure. + +If the transaction is a Card transaction it will be calculated by looking at the matrix and determining the fee based on the card type, brand, and transaction amount. + +The brand can only be used to determine the fee in the context of a transaction using the `MERCHANT_FEE` fee model. If the transaction is using the `SERVICE_FEE` fee model, the matrix will use the card type or default card structure. + +The system will find the appropriate fee structure in this priority if parts of the Matrix are configured: + +1. Card Brand (`MERCHANT_FEE` only) +2. Card Type +3. Default Card + +## How are Fees Calculated? + +Each fee structure will contain at most four different values that it will use to calculate the fee for a transaction. + +| Key | description | +|--------------|---------------------------------------------------------------------------------------| +| basis_points | A percentage of the transaction amount that will be charged to the merchant as a fee. | +| fixed | A fixed fee that will be charged to the merchant for each transaction. | +| max_fee | The maximum fee that will be charged to the merchant for each transaction. | +| min_fee | The minimum fee that will be charged to the merchant for each transaction. | + +:::tip Basis Points +A basis point is a unit of measure that is equal to 1/100th of a percentage point. For example, 1 basis point is equal to 0.01%.
+Learn More +::: + +The formula for calculating the fee for a transaction is as follows: + +``` +fee = (basis_points * transaction_amount / 100) + fixed +``` + +If the fee is less than the minimum fee, the minimum fee will be charged. If the fee is greater than the maximum fee, the maximum fee will be charged. + +## How are Fees Applied? + +If you use the `MERCHANT_FEE` fee model, the fees will be applied to the merchant and taken out of the transaction amount before the merchant is paid. + +If you use the `SERVICE_FEE` fee model, the fees will be applied to the customer and added to the total transaction amount before it is processed. + +## Fee Matrix Example + +Let's say you have an ACH Transaction for $100 and the fee structure for ACH transactions is as follows: + +``` +ach: { + merchant_fee: { + basis_points: 40, + fixed: 40, + max_fee: 500, + }, + service_fee: { + basis_points: 100, + fixed: 25, + max_fee: 500, + min_fee: 50 + } +} +``` + +The fee for this transaction would be $0.80 if you use the `MERCHANT_FEE` fee model and $1.25 if you use the `SERVICE_FEE` fee model. + +:::note Additional Resources +Fee Matrix can be found for each merchant by using the [merchant query](/docs/api/merchant#query-merchant). + +Fee Matrix can be updated for each merchant by using the [updateFeeMatrix mutation](/docs/api/merchant#update-fee-matrix). +::: \ No newline at end of file From fb4ebc1e5b4422cb6df648054f11fecee8834fc2 Mon Sep 17 00:00:00 2001 From: Thiago Antunes Date: Tue, 2 Apr 2024 08:52:47 -0300 Subject: [PATCH 28/34] add: webhooks doc --- docs/api/webhooks.md | 261 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 docs/api/webhooks.md diff --git a/docs/api/webhooks.md b/docs/api/webhooks.md new file mode 100644 index 0000000..556d73d --- /dev/null +++ b/docs/api/webhooks.md @@ -0,0 +1,261 @@ +--- +sidebar_position: 15 +sidebar_label: 'Webhooks' +title: "" +--- + +# Webhooks + +Webhooks are a way for our system to notify you when an event has occurred. + +Let's look at the structure of a webhook object. + +## The Webhook Object +This object represents an endpoint on your end that will receive notifications from our system. + +```graphql +{ + endpoint: String + is_active: Boolean + name: String +} +``` + +**Parameters** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|endpoint |String |The URL the event will be sent to.| +|is_active |Boolean |Whether the webhook is active and receiving notifications.| +|name |String |A user-friendly name for the webhook.| + +## The Webhook Event Object +A webhook event object represents a webhook trigger, meaning it may have sent a notification to your endpoint if it was active at the time. + +```graphql +{ + id: ID + endpoint: String + error: String + event: String + started_at: String + finished_at: String + request: String + response: String + status_code: Int + result: WebhookNotificationResult +} +``` + +***Parameters*** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|id |ID |A unique ID for the event.| +|endpoint |String |The endpoint of the webhook associated with the event.| +|error |String |An error message present only if the event failed.| +|event |String |The type of event that was sent.| +|started_at |String |The time the first request was made.| +|finished_at |String |The time the response was received or the last attempt to contact the endpoint was made.| +|request |String |A JSON string of the request that was sent to the endpoint.| +|response |String |A JSON string of the response received from the endpoint. Not present if no response was received.| +|status_code |Int |The HTTP status code of the last response. Not present if no response was received.| +|result |WebhookNotificationResult|The final outcome of the event.| + +### WebhookNotificationResult + +Can be one of the following: + +`SUCCESS` +The notification was successfully received (2xx response) by your endpoint. + +`FAILURE` +The notification was not successfully received (4xx or 5xx response, or no response at all) by your endpoint. + +`IGNORED` +The notification was not sent because the webhook was not active. + +### Retry Policy + +The following is the retry policy for webhooks: + +- Notifications will be retried up to **3** times if the endpoint fails to respond. +- The delay between retries will increase with each attempt. +- The maximum timeout for a notification is **10 seconds**. +- If the endpoint fails to respond after the third attempt, the webhook will be deactivated, and further notifications will be marked as `IGNORED`, no longer calling the endpoint. + +## Webhook Events Query +This is the query definition for the `WebhookEvents` object: + +```graphql +webhookEvents(id: ID, endpoint: String, result: WebhookNotificationResult, last_evaluated_key: String, limit: Int): WebhookEvents! +``` + +***Parameters*** +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|id |ID |The ID of the event to retrieve.| +|endpoint |String |The endpoint of the webhook associated with the event.| +|result |WebhookNotificationResult|The result of the event.| +|last_evaluated_key |String |The last evaluated key for pagination.| +|limit |Int |The maximum number of events to return.| + +The object `WebhookEvents` consists of the following fields: + +```graphql +{ + events: [WebhookEvent]! + last_evaluated_key: String +} +``` + +**`events`: [WebhookEvent]** +A list of webhook events. + +**`last_evaluated_key`: String** +The last evaluated key for pagination. + +## Examples + +### Creating a Webhook +To create a webhook, you need to provide the endpoint and a name for the webhook using the following mutation: + +```graphql +mutation { + createWebhook(endpoint: "https://example.com/webhook", name: "Example Webhook") { + success + } +} +``` + +### Listing Webhooks +To list all webhooks, you can use the following query: + +```graphql +{ + webhooks { + endpoint + is_active + name + } +} +``` + +If you want to get a specific webhook, you can pass the endpoint as an argument: + +```graphql +{ + webhooks(endpoint: "https://example.com/webhook") { + is_active + name + } +} +``` + +### Updating a Webhook +To update a webhook, you can use a mutation like the following: + +```graphql +mutation { + updateWebhook(endpoint: "https://example.com/webhook", name: "Updated Webhook", is_active: false) { + success + } +} +``` + +> **Note:** Not passing a field will leave it unchanged; the webhook endpoint (URL) cannot be changed. + +### Deleting a Webhook +To delete a webhook, you can use the following mutation: + +```graphql +mutation { + deleteWebhook(endpoint: "https://example.com/webhook") { + success + } +} +``` + +### Listing Webhook Events + +To list all webhook events, you can use the following query: + +```graphql +{ + webhookEvents { + events { + id + endpoint + error + event + started_at + finished_at + request + response + status_code + result + } + } +} +``` + +If you want to get a specific webhook event, you can pass the event ID as an argument: + +```graphql +{ + webhookEvents(id: "123456") { + events { + endpoint + error + event + started_at + finished_at + request + response + status_code + result + } + } +} +``` + +You can also filter by the endpoint, result, or limit the number of events returned: + +```graphql +{ + webhookEvents(endpoint: "https://example.com/webhook", result: SUCCESS, limit: 10) { + events { + id + endpoint + error + event + started_at + finished_at + request + response + status_code + result + } + } +} +``` + +If you have more events than the limit, you can use the `last_evaluated_key` to paginate through the results: + +```graphql +{ + webhookEvents(last_evaluated_key: "123456", limit: 10) { + events { + id + endpoint + error + event + started_at + finished_at + request + response + status_code + result + } + last_evaluated_key + } +} +``` From d167868a93d4bc9b917e9b35f4a2287fa592c333 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Tue, 9 Apr 2024 22:15:50 -0400 Subject: [PATCH 29/34] docs: added some new queries and updated all pages to have a title that shows up in the meta tags --- docs/api/_category_.json | 1 - docs/api/authorization.md | 2 +- docs/api/deprecated.md | 149 +++++++++++ docs/api/dispute.md | 2 +- docs/api/invoice.md | 2 +- docs/api/main.md | 2 +- docs/api/merchant.md | 2 +- docs/api/metadata.md | 2 +- docs/api/payment_links.md | 2 +- docs/api/payment_method_token.md | 2 +- docs/api/payor.md | 2 +- docs/api/query.md | 2 +- docs/api/recurring.md | 2 +- docs/api/settlement.md | 2 +- docs/api/transaction.md | 208 +++++++-------- docs/api/users.md | 2 +- docs/api/webhooks.md | 249 ++++++++++++++++++ docs/main/after_payments/custom_query.mdx | 1 - docs/main/after_payments/fee_matrix.mdx | 1 - .../after_payments/query_settlement_data.mdx | 1 - docs/main/after_payments/sending_receipts.mdx | 1 - docs/main/getting_started/error_handling.mdx | 2 +- docs/main/getting_started/quickstart.mdx | 2 +- .../styling_pay_theory_fields.mdx | 2 +- .../create_an_invoice.mdx | 2 +- .../delete_an_invoice.mdx | 1 - .../record_an_offline_payment.mdx | 1 - .../resend_an_invoice_email.mdx | 1 - .../update_an_invoice.mdx | 3 +- docs/main/online_payments/ach_payments.mdx | 2 +- docs/main/online_payments/cash_payments.mdx | 2 +- docs/main/online_payments/payment_button.mdx | 2 +- docs/main/online_payments/payment_links.mdx | 2 +- docs/main/online_payments/qr_code.mdx | 2 +- .../making_a_payment_with_payment_tokens.mdx | 54 +--- .../online_payments/tokenizing/quickstart.mdx | 2 +- .../tokenizing/recalling_payment_methods.mdx | 2 +- .../create_a_payment_plan.mdx | 2 +- .../create_a_subscription.mdx | 2 +- .../cancel_recurring_payments.mdx | 1 - .../missed_recurring_payment_data.mdx | 1 - .../retry_failed_recurring_payments.mdx | 1 - .../update_recurring_payments.mdx | 1 - docs/main/recurring_payments/overview.mdx | 3 +- docs/main/testing.mdx | 2 +- docs/sdk/android/functions.md | 2 + docs/sdk/android/handlers.md | 2 + docs/sdk/android/main.md | 2 + docs/sdk/apple/completion_handler.md | 2 +- docs/sdk/apple/functions.md | 2 +- docs/sdk/apple/inputs.md | 2 +- docs/sdk/apple/main.md | 2 +- docs/sdk/apple/state.md | 2 +- docs/sdk/javascript/deprecated.md | 2 +- docs/sdk/javascript/errors.md | 2 +- docs/sdk/javascript/event_listeners.md | 2 +- docs/sdk/javascript/failed_transactions.md | 2 +- docs/sdk/javascript/functions.md | 2 +- docs/sdk/javascript/hosted_fields.md | 2 +- docs/sdk/javascript/main.md | 2 + docs/sdk/javascript/payment_button.md | 2 +- docs/sdk/javascript/payment_qr_code.md | 2 +- 62 files changed, 548 insertions(+), 218 deletions(-) create mode 100644 docs/api/deprecated.md create mode 100644 docs/api/webhooks.md diff --git a/docs/api/_category_.json b/docs/api/_category_.json index e36fdb9..ecabcdf 100644 --- a/docs/api/_category_.json +++ b/docs/api/_category_.json @@ -3,6 +3,5 @@ "position": 1, "link": { "type": "generated-index" - } } diff --git a/docs/api/authorization.md b/docs/api/authorization.md index bffe59c..cf4d065 100644 --- a/docs/api/authorization.md +++ b/docs/api/authorization.md @@ -1,7 +1,7 @@ --- sidebar_position: 4 sidebar_label: 'Authorization' -title: "" +title: "Authorization" --- # Authorization diff --git a/docs/api/deprecated.md b/docs/api/deprecated.md new file mode 100644 index 0000000..c2d2b1d --- /dev/null +++ b/docs/api/deprecated.md @@ -0,0 +1,149 @@ +--- +sidebar_position: 1000 +sidebar_label: 'Deprecated' +title: "Deprecated" +--- + + +## Create One Time Payment + +This call was deprecated in favor of the [`createTransaction`](transaction.md#create-transaction) mutation. +The `createTransaction` mutation returns a more detailed response than this call. + +```graphql +mutation { + createOneTimePayment(amount: Int, + merchant_uid: String, + payment_method_id: String, + payment_method: PaymentMethodInput, + account_code: String, + currency: String, + fee: Int, + fee_mode: FeeMode, + invoice_id: String, + metadata: JSON, + receipt_description: String, + recurring_id: String, + reference: String, + send_receipt: Boolean) { + amount + card_brand + created_at + currency + last_four + service_fee + status + transaction_id + } +} +``` + +**Arguments** + +| Key | type | description | +|---------------------|------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| amount | Int! | The amount of the transaction. If the FeeMode is `SERVICE_FEE`, this is the amount of the transaction before fees. | +| merchant_uid | String! | The Pay Theory unique identifier for the merchant the transaction is for. | +| payment_method_id | String | The Pay Theory unique identifier for the payment method the transaction will be charged to. | +| payment_method | [PaymentMethodInput](payment_method_token.md#payment-method-input-object) | The payment method to be used for the transaction. This is required if you are not passing in a `payment_method_id`. | +| account_code | String | Customer defined account code for the transaction. | +| currency | String | The type of currency for the transaction. Defaults to `USD`. | +| fee | Int | The amount of the fee that will be charged to the payor for the transaction if the FeeMode is `SERVICE_FEE`. | +| fee_mode | FeeMode | The fee mode on the transaction. `SERVICE_FEE` charges the fees to the payor. `MERCHANT_FEE` charges the fees to the merchant. Options are: | +| invoice_id | String | The Pay Theory unique identifier for the invoice the transaction is for. | +| metadata | JSON | Custom defined JSON object to be stored with the transaction. | +| receipt_description | String | The description of the transaction that will be displayed on the receipt. | +| recurring_id | String | The Pay Theory unique identifier for the recurring payment the transaction is for. | +| reference | String | Customer defined reference for the transaction. | +| send_receipt | Boolean | If the receipt should be sent to the payor. Defaults to `false`. It is sent to the email address on file with the payment method. | + + +**Returns** + +```js +{ + "data": { + "createOneTimePayment": { + status: TransactionStatus + amount: Int + card_brand: String + last_four: String + service_fee: Int + currency: String + transaction_id: String + created_at: DateTime + } + } +} +``` + +|Key | type | description | +|-------------------|------------------------------------------|----------------------------------------------------------------------------| +|status | [TransactionStatus](#transaction-status) | The status of the transaction. | +|amount | Int | The amount of the transaction. | +|card_brand | String | The brand of the card used for the transaction. | +|last_four | String | The last four digits of the card or bank account used for the transaction. | +|service_fee | Int | The amount of the service fee charged for the transaction. | +|currency | String | The type of currency for the transaction. | +|transaction_id | String | The Pay Theory unique identifier for the transaction. | +|created_at | DateTime | The date and time the transaction was created. | + +*** +## Calculate Service Fee Amount + +This call was deprecated in favor of the [`serviceFee`](transaction.md#calculate-service-fee) query. +The `serviceFee` query returns a single fee object that contains the fee, total, and adjusted total for the transaction based on the amount and payment method details passed in. + +```graphql +{ + serviceFeeAmount(amount: Int, merchant_uid: String) { + ach { + adjusted_total + fee + total + } + card { + adjusted_total + fee + total + } + } +} +``` + +**Arguments** + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|amount |Int |The amount of the transaction.| +|merchant_uid |String |The Pay Theory unique identifier for the merchant the transaction is for.| + + +**Returns** + +```js +{ + "data": { + "serviceFeeAmount": { + ach: { + fee: Int + total: Int + adjusted_total: Int + }, + card: { + fee: Int + total: Int + adjusted_total: Int + } + } + } +} +``` + +You are returned two objects, one for ACH and one for Card. Each object contains the following fields: + +|Key |type | description | +|-------------------|-------------|---------------------------------------| +|fee |Int |The amount that the service fee should be based on the amount passed in.| +|total |Int |The total amount of the transaction before the service fee. This is what you would want to pass in the `amount` argument for the `createOneTimePayment` call.| +|adjusted_total |Int |The total amount of the transaction after the service fee. This is what you would want to show the payor the total amount of the transaction will be.| diff --git a/docs/api/dispute.md b/docs/api/dispute.md index d0a492b..7a12fc1 100644 --- a/docs/api/dispute.md +++ b/docs/api/dispute.md @@ -1,7 +1,7 @@ --- sidebar_position: 8 sidebar_label: 'Dispute' -title: "" +title: "Dispute" --- # Disputes diff --git a/docs/api/invoice.md b/docs/api/invoice.md index 6d78624..1a12d73 100644 --- a/docs/api/invoice.md +++ b/docs/api/invoice.md @@ -1,7 +1,7 @@ --- sidebar_position: 9 sidebar_label: 'Invoice' -title: "" +title: "Invoice" --- # Invoice diff --git a/docs/api/main.md b/docs/api/main.md index 96658cc..0a8a2e4 100644 --- a/docs/api/main.md +++ b/docs/api/main.md @@ -1,7 +1,7 @@ --- sidebar_position: 1 sidebar_label: 'Pay Theory GraphQL API' -title: "" +title: "Pay Theory GraphQL API" --- # Pay Theory GraphQL API diff --git a/docs/api/merchant.md b/docs/api/merchant.md index 95cd012..e4a6a81 100644 --- a/docs/api/merchant.md +++ b/docs/api/merchant.md @@ -1,7 +1,7 @@ --- sidebar_position: 10 sidebar_label: 'Merchant' -title: "" +title: "Merchant" --- # Merchant diff --git a/docs/api/metadata.md b/docs/api/metadata.md index a3602d5..7b73f44 100644 --- a/docs/api/metadata.md +++ b/docs/api/metadata.md @@ -1,7 +1,7 @@ --- sidebar_position: 13 sidebar_label: 'Metadata' -title: "" +title: "Metadata" --- # Metadata diff --git a/docs/api/payment_links.md b/docs/api/payment_links.md index 9e251e6..8d16e5b 100644 --- a/docs/api/payment_links.md +++ b/docs/api/payment_links.md @@ -1,7 +1,7 @@ --- sidebar_position: 14 sidebar_label: 'Payment Links' -title: "" +title: "Payment Links" --- # Payment Links diff --git a/docs/api/payment_method_token.md b/docs/api/payment_method_token.md index 8be8dbd..57d3f5a 100644 --- a/docs/api/payment_method_token.md +++ b/docs/api/payment_method_token.md @@ -1,7 +1,7 @@ --- sidebar_position: 6 sidebar_label: 'Payment Method' -title: "" +title: "Payment Method" --- # Payment Method Token diff --git a/docs/api/payor.md b/docs/api/payor.md index 5dacf1f..41da545 100644 --- a/docs/api/payor.md +++ b/docs/api/payor.md @@ -1,7 +1,7 @@ --- sidebar_position: 5 sidebar_label: 'Payor' -title: "" +title: "Payor" --- # Payor diff --git a/docs/api/query.md b/docs/api/query.md index 68652f6..18311eb 100644 --- a/docs/api/query.md +++ b/docs/api/query.md @@ -1,7 +1,7 @@ --- sidebar_position: 2 sidebar_label: 'Query' -title: "" +title: "Query" --- # Query diff --git a/docs/api/recurring.md b/docs/api/recurring.md index c0a88f1..0c245d5 100644 --- a/docs/api/recurring.md +++ b/docs/api/recurring.md @@ -1,7 +1,7 @@ --- sidebar_position: 12 sidebar_label: 'Recurring' -title: "" +title: "Recurring" --- # Recurring Payment diff --git a/docs/api/settlement.md b/docs/api/settlement.md index 703a2a9..fd0665d 100644 --- a/docs/api/settlement.md +++ b/docs/api/settlement.md @@ -1,7 +1,7 @@ --- sidebar_position: 7 sidebar_label: 'Settlement' -title: "" +title: "Settlement" --- # Settlement diff --git a/docs/api/transaction.md b/docs/api/transaction.md index 679cc4b..1868e8c 100644 --- a/docs/api/transaction.md +++ b/docs/api/transaction.md @@ -1,7 +1,7 @@ --- sidebar_position: 3 sidebar_label: 'Transaction' -title: "" +title: "Transaction" --- # Transaction @@ -45,37 +45,37 @@ Transactions are a data object that can represent a payment, failed or successfu } ``` -|Key | type | description | -|-------------------|----------------------------------------------------------------------------|---------------------------------------| -|account_code | String |Customer defined account code for the transaction.| -|ach_return_details | AchReturnDetails |The details of the ACH return if any.| -|authorization_id | String |The authorization id for the transaction.| -|currency | String |The type of currency for the transaction.| -|dispute_status | [DisputeStatus](dispute#dispute-status) |The status of the dispute if any.| -|failure_reasons | [String] |List of strings, if any, detailing the reason a transaction failed.| -|fee_mode | FeeMode |The fee mode on the transaction.| -|fees | Int |The amount of the fees charged for the transaction.| -|invoice | [Invoice](invoice#the-invoice-object) |The invoice object for the transaction if any.| -|is_settled | Boolean |Whether the transaction has been settled.| -|gross_amount | Int |The total amount of the transaction.| -|merchant_uid | String |The Pay Theory unique identifier for the merchant the transaction is for.| -|metadata | AWSJSON |Custom defined JSON object to be stored with the transaction.| -|net_amount | Int |The total amount of the transaction after fees.| -|parent_id | String |The Pay Theory unique identifier for the parent transaction if any.| -|payment_method | [PaymentMethodToken](payment_method_token#the-payment-method-token-object) |The payment method used to make the transaction.| -|recurring | [RecurringPayment](recurring#the-recurring-payment-object) |The recurring payment that the transaction belongs to if any.| -|reference | String |Customer defined reference for the transaction.| -|refund_reason | RefundReason |The reason for the refund if any.| -|refund_voidable | Boolean |Whether the refund can be voided.| -|refunded_amount | Int |The amount of the transaction that has been refunded if any.| -|sale_id | String |The sale id for the transaction if any.| -|settlement_batch | Int |The unique settlement batch number the transaction belongs to if settled.| -|status | [TransactionStatus](#transaction-status) |The status of the transaction.| -|timezone | String |The timezone the transaction was made in.| -|transaction_date | AWSDateTime |The date the transaction was made.| -|transaction_id | String |The Pay Theory unique identifier for the transaction.| -|transaction_type | [TransactionType](#transaction-type) |The type of transfer that was made.| -|updated_row_at | AWSDateTime |The date and time the transaction was last updated.| +| Key | type | description | +|--------------------|----------------------------------------------------------------------------|---------------------------------------------------------------------------| +| account_code | String | Customer defined account code for the transaction. | +| ach_return_details | AchReturnDetails | The details of the ACH return if any. | +| authorization_id | String | The authorization id for the transaction. | +| currency | String | The type of currency for the transaction. | +| dispute_status | [DisputeStatus](dispute#dispute-status) | The status of the dispute if any. | +| failure_reasons | [String] | List of strings, if any, detailing the reason a transaction failed. | +| fee_mode | FeeMode | The fee mode on the transaction. | +| fees | Int | The amount of the fees charged for the transaction. | +| invoice | [Invoice](invoice#the-invoice-object) | The invoice object for the transaction if any. | +| is_settled | Boolean | Whether the transaction has been settled. | +| gross_amount | Int | The total amount of the transaction. | +| merchant_uid | String | The Pay Theory unique identifier for the merchant the transaction is for. | +| metadata | AWSJSON | Custom defined JSON object to be stored with the transaction. | +| net_amount | Int | The total amount of the transaction after fees. | +| parent_id | String | The Pay Theory unique identifier for the parent transaction if any. | +| payment_method | [PaymentMethodToken](payment_method_token#the-payment-method-token-object) | The payment method used to make the transaction. | +| recurring | [RecurringPayment](recurring#the-recurring-payment-object) | The recurring payment that the transaction belongs to if any. | +| reference | String | Customer defined reference for the transaction. | +| refund_reason | RefundReason | The reason for the refund if any. | +| refund_voidable | Boolean | Whether the refund can be voided. | +| refunded_amount | Int | The amount of the transaction that has been refunded if any. | +| sale_id | String | The sale id for the transaction if any. | +| settlement_batch | Int | The unique settlement batch number the transaction belongs to if settled. | +| status | [TransactionStatus](#transaction-status) | The status of the transaction. | +| timezone | String | The timezone the transaction was made in. | +| transaction_date | AWSDateTime | The date the transaction was made. | +| transaction_id | String | The Pay Theory unique identifier for the transaction. | +| transaction_type | [TransactionType](#transaction-type) | The type of transfer that was made. | +| updated_row_at | AWSDateTime | The date and time the transaction was last updated. | *** ## Ach Return Details @@ -88,11 +88,11 @@ Transactions are a data object that can represent a payment, failed or successfu } ``` -|Key | type | description | -|-------------------|--------------------------------|--------------------------------------------------------------------------------------| -|return_code | String |The return code for the ACH return. | -|return_details | String |The details of the ACH return. | -|transfer_type | [AchReturnTransferType](#ach-return-transfer-type) |The type of transfer that the ACH return is for.| +| Key | type | description | +|----------------|----------------------------------------------------|--------------------------------------------------| +| return_code | String | The return code for the ACH return. | +| return_details | String | The details of the ACH return. | +| transfer_type | [AchReturnTransferType](#ach-return-transfer-type) | The type of transfer that the ACH return is for. | *** ## Ach Return Transfer Type @@ -233,11 +233,11 @@ This will only return Transactions that have Metadata, Payment Methods, or Payor |total_row_count | Int | The total number of transactions that match the query. Used to help with pagination. | *** -## Create One Time Payment +## Create Transaction ```graphql mutation { - createOneTimePayment(amount: Int, + createTransaction(amount: Int, merchant_uid: String, payment_method_id: String, payment_method: PaymentMethodInput, @@ -251,14 +251,40 @@ mutation { recurring_id: String, reference: String, send_receipt: Boolean) { - amount - card_brand - created_at - currency - last_four - service_fee - status - transaction_id + account_code + currency + dispute_status + failure_reasons + fee_mode + fees + gross_amount + is_settled + merchant_uid + metadata + net_amount + parent_id + payment_method { + payment_method_id + payor { + payor_id + } + } + recurring { + recurring_id + } + reference + refund_reason { + reason_code + reason_details + transfer_type + } + refunded_amount + settlement_batch + status + timezone + transaction_date + transaction_id + transaction_type } } ``` @@ -285,33 +311,8 @@ mutation { **Returns** -```js -{ - "data": { - "createOneTimePayment": { - status: TransactionStatus - amount: Int - card_brand: String - last_four: String - service_fee: Int - currency: String - transaction_id: String - created_at: DateTime - } - } -} -``` +This call will return a [Transaction](#the-transaction-object) object with the details of the transaction that was created. -|Key | type | description | -|-------------------|------------------------------------------|----------------------------------------------------------------------------| -|status | [TransactionStatus](#transaction-status) | The status of the transaction. | -|amount | Int | The amount of the transaction. | -|card_brand | String | The brand of the card used for the transaction. | -|last_four | String | The last four digits of the card or bank account used for the transaction. | -|service_fee | Int | The amount of the service fee charged for the transaction. | -|currency | String | The type of currency for the transaction. | -|transaction_id | String | The Pay Theory unique identifier for the transaction. | -|created_at | DateTime | The date and time the transaction was created. | *** ## Create Refund @@ -342,63 +343,40 @@ mutation { The call will return a boolean `true` if the refund was created successfully or errors if it fails. *** -## Calculate Service Fee Amount +## Calculate Service Fee This call will allow you to calculate what the fee amount should be if using `SERVICE_FEE` for a transaction. ```graphql { - serviceFeeAmount(amount: Int, merchant_uid: String) { - ach { - adjusted_total - fee - total - } - card { - adjusted_total - fee - total + serviceFee(amount: Int, merchant_uid: String, is_ach: Boolean, bank_id: String) { + adjusted_total + fee + fee_limit_reached + total } - } } + ``` **Arguments** -|Key |type | description | -|-------------------|-------------|---------------------------------------| -|amount |Int |The amount of the transaction.| -|merchant_uid |String |The Pay Theory unique identifier for the merchant the transaction is for.| +| Key | type | description | +|--------------|---------|----------------------------------------------------------------------------------------------| +| amount | Int | The amount of the transaction. | +| merchant_uid | String | The Pay Theory unique identifier for the merchant the transaction is for. | +| is_ach | Boolean | If the transaction is an ACH transaction. | +| bank_id | String | The first 6 to 8 digits of a card number. An error will be thrown if it is any other length. | **Returns** -```js -{ - "data": { - "serviceFeeAmount": { - ach: { - fee: Int - total: Int - adjusted_total: Int - }, - card: { - fee: Int - total: Int - adjusted_total: Int - } - } - } -} -``` - -You are returned two objects, one for ACH and one for Card. Each object contains the following fields: - -|Key |type | description | -|-------------------|-------------|---------------------------------------| -|fee |Int |The amount that the service fee should be based on the amount passed in.| -|total |Int |The total amount of the transaction before the service fee. This is what you would want to pass in the `amount` argument for the `createOneTimePayment` call.| -|adjusted_total |Int |The total amount of the transaction after the service fee. This is what you would want to show the payor the total amount of the transaction will be.| +| Key | type | description | +|-------------------|---------|--------------------------------------------------------| +| adjusted_total | Int | The total amount of the transaction after fees. | +| fee | Int | The amount of the fees charged for the transaction. | +| fee_limit_reached | Boolean | If the fee limit has been reached for the transaction. | +| total | Int | The amount of the transaction before adding fees. | *** ## Send Transaction Receipt diff --git a/docs/api/users.md b/docs/api/users.md index ef24678..49da47c 100644 --- a/docs/api/users.md +++ b/docs/api/users.md @@ -1,7 +1,7 @@ --- sidebar_position: 11 sidebar_label: 'Users' -title: "" +title: "Users" --- # Users diff --git a/docs/api/webhooks.md b/docs/api/webhooks.md new file mode 100644 index 0000000..3ce1922 --- /dev/null +++ b/docs/api/webhooks.md @@ -0,0 +1,249 @@ +--- +sidebar_position: 15 +sidebar_label: 'Webhooks' +title: "Webhooks" +--- + +# Webhooks + +Webhooks are a way for our system to notify you when an event has occurred. + +Let's look at the structure of a webhook object. + +## The Webhook Object +This object represents an endpoint on your end that will receive notifications from our system. + +```graphql +{ + endpoint: String + is_active: Boolean + name: String +} +``` + +| Key | Type | Description | +|-----------|---------|------------------------------------------------------------| +| endpoint | String | The URL the event will be sent to. | +| is_active | Boolean | Whether the webhook is active and receiving notifications. | +| name | String | A user-friendly name for the webhook. | + +## The Webhook Event Object +A webhook event object represents a webhook trigger, meaning it may have sent a notification to your endpoint if it was active at the time. + +```graphql +{ + id: ID + endpoint: String + error: String + event: String + started_at: String + finished_at: String + request: String + response: String + status_code: Int + result: WebhookNotificationResult +} +``` + +| Key | Type | Description | +|-------------|---------------------------|----------------------------------------------------------------------------------------------------| +| id | ID | A unique ID for the event. | +| endpoint | String | The endpoint of the webhook associated with the event. | +| error | String | An error message present only if the event failed. | +| event | String | The type of event that was sent. | +| started_at | String | The time the first request was made. | +| finished_at | String | The time the response was received or the last attempt to contact the endpoint was made. | +| request | String | A JSON string of the request that was sent to the endpoint. | +| response | String | A JSON string of the response received from the endpoint. Not present if no response was received. | +| status_code | Int | The HTTP status code of the last response. Not present if no response was received. | +| result | WebhookNotificationResult | The final outcome of the event. | + +### WebhookNotificationResult + +Can be one of the following: + +`SUCCESS` +The notification was successfully received (2xx response) by your endpoint. + +`FAILURE` +The notification was not successfully received (4xx or 5xx response, or no response at all) by your endpoint. + +`IGNORED` +The notification was not sent because the webhook was not active. + +### Retry Policy + +The following is the retry policy for webhooks: + +- Notifications will be retried up to **3** times if the endpoint fails to respond. +- The delay between retries will increase with each attempt. +- The maximum timeout for a notification is **10 seconds**. +- If the endpoint fails to respond after the third attempt, the webhook will be deactivated, and further notifications will be marked as `IGNORED`, no longer calling the endpoint. + +## Webhook Events Query +This is the query definition for the `WebhookEvents` object: + +```graphql +webhookEvents(id: ID, endpoint: String, result: WebhookNotificationResult, last_evaluated_key: String, limit: Int): WebhookEvents! +``` + +The object `WebhookEvents` consists of the following fields: + +```graphql +{ + events: [WebhookEvent]! + last_evaluated_key: String +} +``` + +| Key | Type | Description | +|--------------------|----------------|----------------------------------------| +| events | [WebhookEvent] | A list of webhook events. | +| last_evaluated_key | String | The last evaluated key for pagination. | + +## Examples + +### Creating a Webhook +To create a webhook, you need to provide the endpoint and a name for the webhook using the following mutation: + +```graphql +mutation { + createWebhook(endpoint: "https://example.com/webhook", name: "Example Webhook") { + success + } +} +``` + +### Listing Webhooks +To list all webhooks, you can use the following query: + +```graphql +{ + webhooks { + endpoint + is_active + name + } +} +``` + +If you want to get a specific webhook, you can pass the endpoint as an argument: + +```graphql +{ + webhooks(endpoint: "https://example.com/webhook") { + is_active + name + } +} +``` + +### Updating a Webhook +To update a webhook, you can use a mutation like the following: + +```graphql +mutation { + updateWebhook(endpoint: "https://example.com/webhook", name: "Updated Webhook", is_active: false) { + success + } +} +``` + +> **Note:** Not passing a field will leave it unchanged; the webhook endpoint (URL) cannot be changed. + +### Deleting a Webhook +To delete a webhook, you can use the following mutation: + +```graphql +mutation { + deleteWebhook(endpoint: "https://example.com/webhook") { + success + } +} +``` + +### Listing Webhook Events + +To list all webhook events, you can use the following query: + +```graphql +{ + webhookEvents { + events { + id + endpoint + error + event + started_at + finished_at + request + response + status_code + result + } + } +} +``` + +If you want to get a specific webhook event, you can pass the event ID as an argument: + +```graphql +{ + webhookEvents(id: "123456") { + events { + endpoint + error + event + started_at + finished_at + request + response + status_code + result + } + } +} +``` + +You can also filter by the endpoint, result, or limit the number of events returned: + +```graphql +{ + webhookEvents(endpoint: "https://example.com/webhook", result: SUCCESS, limit: 10) { + events { + id + endpoint + error + event + started_at + finished_at + request + response + status_code + result + } + } +} +``` + +If you have more events than the limit, you can use the `last_evaluated_key` to paginate through the results: + +```graphql +{ + webhookEvents(last_evaluated_key: "123456", limit: 10) { + events { + id + endpoint + error + event + started_at + finished_at + request + response + status_code + result + } + last_evaluated_key + } +} +``` diff --git a/docs/main/after_payments/custom_query.mdx b/docs/main/after_payments/custom_query.mdx index 5e5dc36..f95bcca 100644 --- a/docs/main/after_payments/custom_query.mdx +++ b/docs/main/after_payments/custom_query.mdx @@ -2,7 +2,6 @@ sidebar_position: 3 sidebar_label: Custom Query title: "Custom Query" - --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/after_payments/fee_matrix.mdx b/docs/main/after_payments/fee_matrix.mdx index a3a52a8..cf5f235 100644 --- a/docs/main/after_payments/fee_matrix.mdx +++ b/docs/main/after_payments/fee_matrix.mdx @@ -2,7 +2,6 @@ sidebar_position: 5 sidebar_label: Fee Matrix title: "Fee Matrix" - --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/after_payments/query_settlement_data.mdx b/docs/main/after_payments/query_settlement_data.mdx index 87deb6c..12a9799 100644 --- a/docs/main/after_payments/query_settlement_data.mdx +++ b/docs/main/after_payments/query_settlement_data.mdx @@ -2,7 +2,6 @@ sidebar_position: 2 sidebar_label: Query Settlement Data title: "Query Settlement Data" - --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/after_payments/sending_receipts.mdx b/docs/main/after_payments/sending_receipts.mdx index 1b21184..b00a5be 100644 --- a/docs/main/after_payments/sending_receipts.mdx +++ b/docs/main/after_payments/sending_receipts.mdx @@ -2,7 +2,6 @@ sidebar_position: 4 sidebar_label: Sending Receipts title: "Sending Receipts" - --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/getting_started/error_handling.mdx b/docs/main/getting_started/error_handling.mdx index ad43d75..a7cd1e8 100644 --- a/docs/main/getting_started/error_handling.mdx +++ b/docs/main/getting_started/error_handling.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 3 sidebar_label: 'Error Handling' -title: "" +title: "Error Handling" --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/getting_started/quickstart.mdx b/docs/main/getting_started/quickstart.mdx index b1adbd3..9b71f48 100644 --- a/docs/main/getting_started/quickstart.mdx +++ b/docs/main/getting_started/quickstart.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 1 sidebar_label: "Quickstart" -title: "" +title: "Quickstart" --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/getting_started/styling_pay_theory_fields.mdx b/docs/main/getting_started/styling_pay_theory_fields.mdx index 7cd820a..0197dd3 100644 --- a/docs/main/getting_started/styling_pay_theory_fields.mdx +++ b/docs/main/getting_started/styling_pay_theory_fields.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 2 sidebar_label: 'Styling and Managing States' -title: "" +title: "Styling and Managing States" --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/invoicing_and_billing/create_an_invoice.mdx b/docs/main/invoicing_and_billing/create_an_invoice.mdx index d5bf064..b05c9da 100644 --- a/docs/main/invoicing_and_billing/create_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/create_an_invoice.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 sidebar_label: Create an Invoice title: "Create an Invoice" - --- import Tabs from '../../../components/Tabs'; @@ -35,6 +34,7 @@ mutation { ``` + :::note Additional Parameters View the extensive list of parameters for creating an invoice in our API. diff --git a/docs/main/invoicing_and_billing/delete_an_invoice.mdx b/docs/main/invoicing_and_billing/delete_an_invoice.mdx index 69424be..f534139 100644 --- a/docs/main/invoicing_and_billing/delete_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/delete_an_invoice.mdx @@ -2,7 +2,6 @@ sidebar_position: 3 sidebar_label: Delete an Invoice title: "Delete an Invoice" - --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx index 902c4fc..cc0a339 100644 --- a/docs/main/invoicing_and_billing/record_an_offline_payment.mdx +++ b/docs/main/invoicing_and_billing/record_an_offline_payment.mdx @@ -2,7 +2,6 @@ sidebar_position: 5 sidebar_label: Record an Offline Payment title: "Record an Offline Payment" - --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx b/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx index 0a5a2a4..6d2ad34 100644 --- a/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx +++ b/docs/main/invoicing_and_billing/resend_an_invoice_email.mdx @@ -2,7 +2,6 @@ sidebar_position: 4 sidebar_label: Resend an Invoice Email title: "Resend an Invoice Email" - --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/invoicing_and_billing/update_an_invoice.mdx b/docs/main/invoicing_and_billing/update_an_invoice.mdx index 66b27a2..ab4320d 100644 --- a/docs/main/invoicing_and_billing/update_an_invoice.mdx +++ b/docs/main/invoicing_and_billing/update_an_invoice.mdx @@ -1,8 +1,7 @@ --- sidebar_position: 2 sidebar_label: Update an Invoice -title: "Invoices" - +title: "Update an Invoice" --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/online_payments/ach_payments.mdx b/docs/main/online_payments/ach_payments.mdx index 4905dab..283a7f6 100644 --- a/docs/main/online_payments/ach_payments.mdx +++ b/docs/main/online_payments/ach_payments.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 2 sidebar_label: "ACH Payments" -title: "" +title: "ACH Payments" --- diff --git a/docs/main/online_payments/cash_payments.mdx b/docs/main/online_payments/cash_payments.mdx index 4a98eb0..d326541 100644 --- a/docs/main/online_payments/cash_payments.mdx +++ b/docs/main/online_payments/cash_payments.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 3 sidebar_label: 'Cash Payments' -title: "" +title: "Cash Payments" --- diff --git a/docs/main/online_payments/payment_button.mdx b/docs/main/online_payments/payment_button.mdx index 454ce2c..48a4c68 100644 --- a/docs/main/online_payments/payment_button.mdx +++ b/docs/main/online_payments/payment_button.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 4 sidebar_label: 'Payment Button' -title: "" +title: "Payment Button" --- import Tabs from '../../../components/Tabs'; diff --git a/docs/main/online_payments/payment_links.mdx b/docs/main/online_payments/payment_links.mdx index af457dd..c272265 100644 --- a/docs/main/online_payments/payment_links.mdx +++ b/docs/main/online_payments/payment_links.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 6 sidebar_label: 'Payment Links' -title: "" +title: "Payment Links" --- diff --git a/docs/main/online_payments/qr_code.mdx b/docs/main/online_payments/qr_code.mdx index b0d10c1..cbdbc7c 100644 --- a/docs/main/online_payments/qr_code.mdx +++ b/docs/main/online_payments/qr_code.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 5 sidebar_label: 'QR Code' -title: "" +title: "QR Code" --- diff --git a/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx b/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx index e8dd0d5..ccc971f 100644 --- a/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx +++ b/docs/main/online_payments/tokenizing/making_a_payment_with_payment_tokens.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 3 -sidebar_label: 'Making a Payment with Payment Tokens' -title: "" +sidebar_label: 'Making a Payment with Payment Method Tokens' +title: "Making a Payment with Payment Method Tokens" --- @@ -18,15 +18,15 @@ import Admonition from '@theme/Admonition'; ]}> -# Making a Payment with Payment Tokens -This guide will walk you through how to make a one time payment by using the payment token. +# Making a Payment with Payment Method Tokens +This guide will walk you through how to make a one time payment by using the payment method token. ## Create one time payment -Sensitive information like credit card numbers or bank account numbers are replaced by the payment token. +Sensitive information like credit card numbers or bank account numbers are replaced by the payment method token. ```graphql title="GraphQL" mutation { - createOneTimePayment(amount: Int, + createTransaction(amount: Int, merchant_uid: String, payment_method_id: String, account_code: String, @@ -68,23 +68,7 @@ mutation { *** ## Returns -The results presented below show that the query was successfully run and that every token was shown on the terminal in JSON format. -``` json title="JSON" -{ - "data": { - "createOneTimePayment": { - status: TransactionStatus - amount: Int - card_brand: String - last_four: String - service_fee: Int - currency: String - transaction_id: String - created_at: DateTime - } - } -} -``` +The createTransaction mutation will return a [transaction object](/docs/api/transaction#create-transaction) |Key |type |description | |--------------------|-----------------|--------------------------------------------| @@ -120,27 +104,3 @@ Our Android SDK is fully functional. If you would like to implement our Android - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/main/online_payments/tokenizing/quickstart.mdx b/docs/main/online_payments/tokenizing/quickstart.mdx index 1fd20a8..3797a4f 100644 --- a/docs/main/online_payments/tokenizing/quickstart.mdx +++ b/docs/main/online_payments/tokenizing/quickstart.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 1 sidebar_label: 'Quickstart' -title: "" +title: "Tokenization Quickstart" --- import Tabs from '../../../../components/Tabs'; diff --git a/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx b/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx index 492a5c7..59e0cf9 100644 --- a/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx +++ b/docs/main/online_payments/tokenizing/recalling_payment_methods.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 2 sidebar_label: 'Recalling Payment Methods' -title: "" +title: "Recalling Payment Methods" --- diff --git a/docs/main/recurring_payments/create_a_payment_plan.mdx b/docs/main/recurring_payments/create_a_payment_plan.mdx index 2de20ac..491929d 100644 --- a/docs/main/recurring_payments/create_a_payment_plan.mdx +++ b/docs/main/recurring_payments/create_a_payment_plan.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 2 sidebar_label: 'Create a Payment Plan' -title: "" +title: "Create a Payment Plan" --- diff --git a/docs/main/recurring_payments/create_a_subscription.mdx b/docs/main/recurring_payments/create_a_subscription.mdx index b09bdb1..d256fdc 100644 --- a/docs/main/recurring_payments/create_a_subscription.mdx +++ b/docs/main/recurring_payments/create_a_subscription.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 3 sidebar_label: Create a Subscription -title: "" +title: "Create a Subscription" --- diff --git a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx index fd5081c..7ad56ba 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/cancel_recurring_payments.mdx @@ -2,7 +2,6 @@ sidebar_position: 3 sidebar_label: Cancel Recurring Payments title: "Cancel Recurring Payment" - --- import Tabs from '../../../../components/Tabs'; diff --git a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx index 01c7a31..77b21bf 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/missed_recurring_payment_data.mdx @@ -2,7 +2,6 @@ sidebar_position: 5 sidebar_label: Get Missed Recurring Payment Data title: "Get Missed Recurring Payment Data" - --- import Tabs from '../../../../components/Tabs'; diff --git a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx index b4cfbd0..30a34bb 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/retry_failed_recurring_payments.mdx @@ -2,7 +2,6 @@ sidebar_position: 6 sidebar_label: Retry Failed Recurring Payment title: "Retry Failed Recurring Payment" - --- import Tabs from '../../../../components/Tabs'; diff --git a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx index 98ee998..c8e6bf2 100644 --- a/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx +++ b/docs/main/recurring_payments/manage_recurring_payments/update_recurring_payments.mdx @@ -2,7 +2,6 @@ sidebar_position: 4 sidebar_label: Update Recurring Payment title: "Update Recurring Payment" - --- diff --git a/docs/main/recurring_payments/overview.mdx b/docs/main/recurring_payments/overview.mdx index 5b77089..65ccced 100644 --- a/docs/main/recurring_payments/overview.mdx +++ b/docs/main/recurring_payments/overview.mdx @@ -1,8 +1,7 @@ --- sidebar_position: 1 sidebar_label: Overview -title: "" - +title: "Recurring Payments Overview" --- diff --git a/docs/main/testing.mdx b/docs/main/testing.mdx index ff6b3d1..a0b955f 100644 --- a/docs/main/testing.mdx +++ b/docs/main/testing.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 6 sidebar_label: 'Testing' -title: "" +title: "Testing" --- # Testing diff --git a/docs/sdk/android/functions.md b/docs/sdk/android/functions.md index 31c30b9..731c23e 100644 --- a/docs/sdk/android/functions.md +++ b/docs/sdk/android/functions.md @@ -1,5 +1,7 @@ --- sidebar_position: 2 +sidebar_label: 'Functions' +title: "Functions" --- # Functions diff --git a/docs/sdk/android/handlers.md b/docs/sdk/android/handlers.md index 1ee81d8..683abe8 100644 --- a/docs/sdk/android/handlers.md +++ b/docs/sdk/android/handlers.md @@ -1,5 +1,7 @@ --- sidebar_position: 3 +sidebar_label: 'Response Handlers' +title: "Response Handlers" --- # Response Handlers diff --git a/docs/sdk/android/main.md b/docs/sdk/android/main.md index df2b641..c599950 100644 --- a/docs/sdk/android/main.md +++ b/docs/sdk/android/main.md @@ -1,5 +1,7 @@ --- sidebar_position: 1 +sidebar_label: 'Pay Theory Android SDK' +title: "Pay Theory Android SDK" --- # Pay Theory Android SDK diff --git a/docs/sdk/apple/completion_handler.md b/docs/sdk/apple/completion_handler.md index 6d75dac..dc2950c 100644 --- a/docs/sdk/apple/completion_handler.md +++ b/docs/sdk/apple/completion_handler.md @@ -1,7 +1,7 @@ --- sidebar_position: 4 sidebar_label: 'Completion Handler' -title: "" +title: "Completion Handler" --- # Completion Handler diff --git a/docs/sdk/apple/functions.md b/docs/sdk/apple/functions.md index 9915656..a0b050a 100644 --- a/docs/sdk/apple/functions.md +++ b/docs/sdk/apple/functions.md @@ -1,7 +1,7 @@ --- sidebar_position: 3 sidebar_label: 'Functions' -title: "" +title: "Functions" --- # Functions diff --git a/docs/sdk/apple/inputs.md b/docs/sdk/apple/inputs.md index 66f46e5..241fb57 100644 --- a/docs/sdk/apple/inputs.md +++ b/docs/sdk/apple/inputs.md @@ -1,7 +1,7 @@ --- sidebar_position: 2 sidebar_label: 'Inputs' -title: "" +title: "Inputs" --- # Input Views diff --git a/docs/sdk/apple/main.md b/docs/sdk/apple/main.md index fbab2e8..1b369be 100644 --- a/docs/sdk/apple/main.md +++ b/docs/sdk/apple/main.md @@ -1,7 +1,7 @@ --- sidebar_position: 1 sidebar_label: 'Pay Theory Apple SDK' -title: "" +title: "Pay Theory Apple SDK" --- # Pay Theory Apple SDK diff --git a/docs/sdk/apple/state.md b/docs/sdk/apple/state.md index 17d8323..db6142b 100644 --- a/docs/sdk/apple/state.md +++ b/docs/sdk/apple/state.md @@ -1,7 +1,7 @@ --- sidebar_position: 5 sidebar_label: 'State' -title: "" +title: "State" --- # State diff --git a/docs/sdk/javascript/deprecated.md b/docs/sdk/javascript/deprecated.md index 1295dc8..6fd7d7e 100644 --- a/docs/sdk/javascript/deprecated.md +++ b/docs/sdk/javascript/deprecated.md @@ -1,7 +1,7 @@ --- sidebar_position: 9 sidebar_label: 'Deprecations' -title: "" +title: "Deprecations" --- # Deprecations diff --git a/docs/sdk/javascript/errors.md b/docs/sdk/javascript/errors.md index 3251627..401bbbc 100644 --- a/docs/sdk/javascript/errors.md +++ b/docs/sdk/javascript/errors.md @@ -1,7 +1,7 @@ --- sidebar_position: 4 sidebar_label: 'Error Handling' -title: "" +title: "SDK Error Handling" --- # SDK Errors diff --git a/docs/sdk/javascript/event_listeners.md b/docs/sdk/javascript/event_listeners.md index 71180e6..0371ab7 100644 --- a/docs/sdk/javascript/event_listeners.md +++ b/docs/sdk/javascript/event_listeners.md @@ -1,7 +1,7 @@ --- sidebar_position: 6 sidebar_label: 'Event Listeners' -title: "" +title: "Event Listeners" --- # Event Listeners diff --git a/docs/sdk/javascript/failed_transactions.md b/docs/sdk/javascript/failed_transactions.md index 487cb2f..54845df 100644 --- a/docs/sdk/javascript/failed_transactions.md +++ b/docs/sdk/javascript/failed_transactions.md @@ -1,7 +1,7 @@ --- sidebar_position: 5 sidebar_label: 'Failure Codes' -title: "" +title: "Failure Codes" --- # Failed Transactions diff --git a/docs/sdk/javascript/functions.md b/docs/sdk/javascript/functions.md index 2e26174..3ed8ed1 100644 --- a/docs/sdk/javascript/functions.md +++ b/docs/sdk/javascript/functions.md @@ -1,7 +1,7 @@ --- sidebar_position: 2 sidebar_label: 'Functions' -title: "" +title: "Functions" --- # Functions diff --git a/docs/sdk/javascript/hosted_fields.md b/docs/sdk/javascript/hosted_fields.md index 31c60ab..2c38d7a 100644 --- a/docs/sdk/javascript/hosted_fields.md +++ b/docs/sdk/javascript/hosted_fields.md @@ -1,7 +1,7 @@ --- sidebar_position: 3 sidebar_label: 'Hosted Fields' -title: "" +title: "Hosted Fields" --- # Hosted Fields diff --git a/docs/sdk/javascript/main.md b/docs/sdk/javascript/main.md index 63d0be5..a1ba149 100644 --- a/docs/sdk/javascript/main.md +++ b/docs/sdk/javascript/main.md @@ -1,5 +1,7 @@ --- sidebar_position: 1 +sidebar_label: 'Pay Theory Javascript SDK' +title: "Pay Theory Javascript SDK" --- # Pay Theory Javascript SDK diff --git a/docs/sdk/javascript/payment_button.md b/docs/sdk/javascript/payment_button.md index 75d7e9b..a12d31a 100644 --- a/docs/sdk/javascript/payment_button.md +++ b/docs/sdk/javascript/payment_button.md @@ -1,7 +1,7 @@ --- sidebar_position: 7 sidebar_label: 'Payment Button' -title: "" +title: "Payment Button" --- # Payment Button diff --git a/docs/sdk/javascript/payment_qr_code.md b/docs/sdk/javascript/payment_qr_code.md index da9ae2a..b6f5ea0 100644 --- a/docs/sdk/javascript/payment_qr_code.md +++ b/docs/sdk/javascript/payment_qr_code.md @@ -1,7 +1,7 @@ --- sidebar_position: 8 sidebar_label: 'Payment QR Code' -title: "" +title: "Payment QR Code" --- # Payment QR Code From 6c43a167fe675de2e0d0802393f0c14e3879829e Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Thu, 11 Apr 2024 21:37:12 -0400 Subject: [PATCH 30/34] fix: updated to include the webhook payloads --- docs/api/settlement.md | 77 +++--- docs/api/webhooks.md | 491 +++++++++++++++++++++++++++++++++++++++ docs/sdk/android/main.md | 2 - 3 files changed, 536 insertions(+), 34 deletions(-) diff --git a/docs/api/settlement.md b/docs/api/settlement.md index fd0665d..f128630 100644 --- a/docs/api/settlement.md +++ b/docs/api/settlement.md @@ -10,12 +10,14 @@ Settlements are a batch of payments, disputes, and refunds that are grouped toge ## The Settlement Object -```js +```graphql { currency: String - gross_amount: Int + gross_amount: Int @deprecated(reason: "Use gross_amount_64bit instead") + gross_amount_64bit: String merchant_uid: String - net_amount: Int + net_amount: Int @deprecated(reason: "Use net_amount_64bit instead") + net_amount_64bit: String settlement_batch: Int settlement_date: AWSDateTime status: String @@ -23,29 +25,40 @@ Settlements are a batch of payments, disputes, and refunds that are grouped toge transaction_dispute_count: Int transaction_reversal_count: Int transfer_date: AWSDateTime - total_adjustments: Int - total_fees: Int + total_adjustments: Int @deprecated(reason: "Use total_adjustments_64bit instead") + total_adjustments_64bit: String + total_fees: Int @deprecated(reason: "Use total_fees_64bit instead") + total_fees_64bit: String updated_row_at: AWSDateTime } ``` -|Key |type | description | -|-------------------|-------------|-------------------------------------------------------------------------------------------| -|currency |String | The currency of the settlement. | -|gross_amount |Int | The total amount of the settlement before any fees and adjustments. | -|merchant_uid |String | The Pay Theory unique identifier assigned to the merchant that the settlement belongs to. | -|net_amount |Int | The total amount of the settlement after any fees and adjustments. | -|settlement_batch |Int | The unique settlement batch number. | -|settlement_date |String | The date the settlement was created in an ISO 8601 String format. | -|status |String | The status of the settlement. Will be either `PENDING` or `SUCCEEDED`. | -|transaction_debit_count|Int | The number of transactions of type DEBIT that were included in the settlement. | -|transaction_dispute_count|Int | The number of transactions of type DISPUTE that were included in the settlement. | -|transaction_reversal_count|Int | The number of transactions of type REVERSAL that were included in the settlement. | -|transfer_date |String | The date the settlement was transferred to the merchant in an ISO 8601 String format. | -|total_adjustments |Int | The total amount of adjustments that were applied to the settlement. | -|total_fees |Int | The total amount of fees that were applied to the settlement. | -|updated_row_at |String | The date the settlement was last updated in an ISO 8601 String format. | +| Key | type | description | +|----------------------------|--------|--------------------------------------------------------------------------------------------------------------| +| currency | String | The currency of the settlement. | +| ~~gross_amount~~ | Int | The total amount of the settlement before any fees and adjustments. | +| gross_amount_64bit | String | The total amount of the settlement before any fees in a string format to support 64-bit Int | +| merchant_uid | String | The Pay Theory unique identifier assigned to the merchant that the settlement belongs to. | +| ~~net_amount~~ | Int | The total amount of the settlement after any fees and adjustments. | +| net_amount_64bit | String | The total amount of the settlement after any fees in a string format to support 64-bit Int | +| settlement_batch | Int | The unique settlement batch number. | +| settlement_date | String | The date the settlement was created in an ISO 8601 String format. | +| status | String | The status of the settlement. Will be either `PENDING` or `SUCCEEDED`. | +| transaction_debit_count | Int | The number of transactions of type DEBIT that were included in the settlement. | +| transaction_dispute_count | Int | The number of transactions of type DISPUTE that were included in the settlement. | +| transaction_reversal_count | Int | The number of transactions of type REVERSAL that were included in the settlement. | +| transfer_date | String | The date the settlement was transferred to the merchant in an ISO 8601 String format. | +| ~~total_adjustments~~ | Int | The total amount of adjustments that were applied to the settlement. | +| total_adjustments_64bit | String | The total amount of adjustments that were applied to the settlement in a string format to support 64-bit Int | +| ~~total_fees~~ | Int | The total amount of fees that were applied to the settlement. | +| total_fees_64bit | String | The total amount of fees that were applied to the settlement in a string format to support 64-bit Int | +| updated_row_at | String | The date the settlement was last updated in an ISO 8601 String format. | +:::note Deprecations +The `@deprecated` directive is used to indicate that the field is deprecated and will be removed in a future version. +GraphQL does not support Int64, so we use a string to support 64-bit Integers. +A 32-bit Int is between 2,147,483,647 and -2,147,483,648. Any value outside of this range will be passed in as a 0 to the deprecated Int fields to avoid the call failing. +::: ## Query Settlements ```js @@ -72,13 +85,13 @@ Settlements are a batch of payments, disputes, and refunds that are grouped toge **Parameters** -|Key |type | description | -|-------------------|-------------|---------------------------------------| -|limit |Int |The number of settlements to return.| -|direction |MoveDirection|The direction of the pagination. Makes sure the results are returned in the correct order.| -|offset |String |The value of the offset item for which the list is being sorted.| -|offset_id |String |The `settlement_batch` of the offset item.| -|query |QueryObject |The query to filter the settlements with based on Pay Theory defined data.| +| Key | type | description | +|-----------|---------------|--------------------------------------------------------------------------------------------| +| limit | Int | The number of settlements to return. | +| direction | MoveDirection | The direction of the pagination. Makes sure the results are returned in the correct order. | +| offset | String | The value of the offset item for which the list is being sorted. | +| offset_id | String | The `settlement_batch` of the offset item. | +| query | QueryObject | The query to filter the settlements with based on Pay Theory defined data. | **Returns** @@ -100,7 +113,7 @@ Settlements are a batch of payments, disputes, and refunds that are grouped toge } } ``` -|Key |type | description | -|-------------------|-------------|---------------------------------------| -|items |[Settlement] |The list of settlements that are returned from the query.| -|total_row_count |Int |The total number of settlements that match the query. Used to help with pagination.| \ No newline at end of file +| Key | type | description | +|-----------------|--------------|-------------------------------------------------------------------------------------| +| items | [Settlement] | The list of settlements that are returned from the query. | +| total_row_count | Int | The total number of settlements that match the query. Used to help with pagination. | \ No newline at end of file diff --git a/docs/api/webhooks.md b/docs/api/webhooks.md index 04edec4..00648e8 100644 --- a/docs/api/webhooks.md +++ b/docs/api/webhooks.md @@ -256,3 +256,494 @@ If you have more events than the limit, you can use the `last_evaluated_key` to } } ``` + +## Webhook Payloads + +You can expect webhooks for the following events: + +- [Authorization](#authorization) +- [Dispute](#dispute) +- [Merchant](#merchant) +- [Payment Method](#payment-method) +- [Payor](#payor) +- [Settlement](#settlement) +- [Transaction](#transaction) + +The payload for each event will contain the following values: + +| Key | Type | Description | +|---------|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| event | String | The type of event that was sent. Should be one of the following: `AUTHORIZATION`, `DISPUTE`, `MERCHANT`, `PAYMENT`, `PAYMENT_METHOD`, `PAYOR`, `SETTLEMENT`. | +| subtype | String | The subtype of the event. Should be either `CREATED` or `UPDATED` | +| payload | Object | The payload of the event. Examples of the payload for each event are below. | + +### Authorization + +This is a subset of the [authorization object](authorization.md#the-authorization-object) + +```graphql +{ + account_code + additional_purchase_data { + level3_data_summary { + dest_postal_code + discnt_amt + duty_amt + frght_amt + order_num + prod_desc + purch_idfr + tax_amt + tax_ind + } + } + amount + authorization_date + authorization_id + captured_amount + currency + device_id + expiration_date + failure_reasons + fee_mode + fees + invoice { + account_code + created_date + currency + due_by + fee_mode + invoice_amount + invoice_date + invoice_description + invoice_id + invoice_name + merchant_invoice_number + merchant_uid + metadata + payor { + address_line1 + address_line2 + city + country + email + full_name + merchant_uid + metadata + payor_id + phone + postal_code + region + } + reference + settings { + is_secure + require_payor_address + security_pin + } + status + total_paid_amount + } + merchant_uid + metadata + payment_method { + address_line1 + address_line2 + card_brand + city + country + exp_date + full_name + is_active + last_four + merchant_uid + metadata + payment_method_id + payment_type + payor { + address_line1 + address_line2 + city + country + email + full_name + merchant_uid + metadata + payor_id + phone + postal_code + region + } + postal_code + region + wallet_type + } + reference + sale_id + status + timezone + transaction_id + updated_row_at +} +``` + +### Dispute + +This is a subset of the [dispute object](dispute.md#the-dispute-object) + +```graphql +{ + amount + dispute_date + dispute_id + evidence_last_send_date + expiration_date + merchant_uid + status + reason + reason_message + settlement_deposit_batch + settlement_withdrawal_batch + updated_date + updated_row_at + transaction { + account_code + authorization_id + currency + device_id + dispute_status + fee_mode + fees + is_settled + gross_amount + merchant_uid + metadata + net_amount + parent_id + reference + refund_voidable + refunded_amount + sale_id + settlement_batch + status + timezone + transaction_date + transaction_id + transaction_type + updated_row_at + } +} +``` + +### Merchant + +This is a subset of the [merchant object](merchant.md#the-fee-matrix-object) + +```graphql +{ + ach_active + api_key + card_active + cash_active + is_system + merchant_name + merchant_uid + parent_merchant_uid + settings { + contact_email + contact_phone + facebook + instagram + linkedin + tiktok + twitter + website + } + submitted_onboarding +} +``` + +### Payment Method + +This is a subset of the [payment method object](payment_method_token.md#the-payment-method-token-object) + +```graphql +{ + address_line1 + address_line2 + card_brand + city + country + exp_date + full_name + is_active + last_four + merchant_uid + metadata + payment_method_id + payment_type + postal_code + region + wallet_type + payor { + address_line1 + address_line2 + city + country + email + full_name + merchant_uid + metadata + payor_id + phone + postal_code + region + } +} +``` + +### Payor + +This is a subset of the [payor object](payor.md#the-payor-object) + +```graphql +{ + address_line1 + address_line2 + city + country + email + full_name + merchant_uid + metadata + payor_id + phone + postal_code + region +} +``` + +### Settlement + +This is a subset of the [settlement object](settlement.md#the-settlement-object) + +```graphql +{ + currency + gross_amount + gross_amount_64bit + merchant_uid + net_amount + net_amount_64bit + settlement_batch + settlement_date + status + total_adjustments + total_adjustments_64bit + total_fees + total_fees_64bit + transaction_debit_count + transaction_dispute_count + transaction_reversal_count + transfer_date + updated_row_at +} +``` + +### Transaction + +This is a subset of the [transaction object](transaction.md#the-transaction-object) + +```graphql +{ + account_code + ach_return_details { + return_code + return_details + transfer_type + } + additional_purchase_data { + level3_data_summary { + dest_postal_code + discnt_amt + duty_amt + frght_amt + order_num + prod_desc + purch_idfr + tax_amt + tax_ind + } + } + authorization_id + currency + device_id + dispute_status + failure_reasons + fee_mode + fees + gross_amount + invoice { + account_code + created_date + currency + due_by + fee_mode + invoice_amount + invoice_date + invoice_description + invoice_id + invoice_name + merchant_invoice_number + merchant_uid + metadata + payor { + address_line1 + address_line2 + city + country + email + full_name + merchant_uid + metadata + payor_id + phone + postal_code + region + } + reference + settings { + accepted_payment_methods { + ach + card + cash + } + is_secure + require_payor_address + } + status + total_paid_amount + } + is_settled + merchant_uid + metadata + net_amount + parent_id + payment_method { + address_line1 + address_line2 + card_brand + city + country + exp_date + full_name + is_active + last_four + merchant_uid + metadata + payment_method_id + payment_type + payor { + address_line1 + address_line2 + city + country + email + full_name + merchant_uid + metadata + payor_id + phone + postal_code + region + } + postal_code + region + wallet_type + } + recurring { + account_code + amount_per_payment + created_date + currency + fee_mode + fee_per_payment + is_active + is_processing + merchant_uid + metadata + mute_all_emails + next_payment_date + payment_interval + payment_method { + address_line1 + address_line2 + card_brand + city + country + exp_date + full_name + is_active + last_four + merchant_uid + metadata + payment_method_id + payment_type + payor { + address_line1 + address_line2 + city + country + email + full_name + merchant_uid + metadata + payor_id + phone + postal_code + region + } + postal_code + region + wallet_type + } + payor { + address_line1 + address_line2 + city + country + email + full_name + merchant_uid + metadata + payor_id + phone + postal_code + region + } + prev_payment_date + recurring_description + recurring_id + recurring_name + reference + remaining_payments + status + total_amount_per_payment + } + reference + refund_reason { + reason_code + reason_details + } + refund_voidable + refunded_amount + sale_id + settlement_batch + status + timezone + transaction_date + transaction_id + transaction_type + updated_row_at +} +``` \ No newline at end of file diff --git a/docs/sdk/android/main.md b/docs/sdk/android/main.md index c599950..df2b641 100644 --- a/docs/sdk/android/main.md +++ b/docs/sdk/android/main.md @@ -1,7 +1,5 @@ --- sidebar_position: 1 -sidebar_label: 'Pay Theory Android SDK' -title: "Pay Theory Android SDK" --- # Pay Theory Android SDK From 8b7b626ab94f0e7deb01cc8fe583b63fde7d8530 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Thu, 11 Apr 2024 22:08:18 -0400 Subject: [PATCH 31/34] fix: updated webhook docs to organize them closer to the way our other docs are --- docs/api/webhooks.md | 228 ++++++++++++++----------------------------- 1 file changed, 73 insertions(+), 155 deletions(-) diff --git a/docs/api/webhooks.md b/docs/api/webhooks.md index 00648e8..085107e 100644 --- a/docs/api/webhooks.md +++ b/docs/api/webhooks.md @@ -27,6 +27,71 @@ This object represents an endpoint on your end that will receive notifications f | is_active | Boolean | Whether the webhook is active and receiving notifications. | | name | String | A user-friendly name for the webhook. | +## Create Webhook +To create a webhook, you need to provide the endpoint and a name for the webhook using the following mutation: + +```graphql +mutation { + createWebhook(endpoint: String, name: String) { + success + } +} +``` + +| Key | Type | Description | +|----------|--------|------------------------------------------------------| +| endpoint | String | The URL the event will be sent to. | +| name | String | The name you want to give the webhook for reference. | + +## Query Webhooks + +```graphql +{ + webhooks(endpoint: String) { + endpoint + is_active + name + } +} +``` + +| Key | Type | Description | +|----------|--------|-----------------------------------------------------------------------------------| +| endpoint | String | The URL the event will be sent to. If not passed in all webhooks will be returned | + +## Update Webhook +To update a webhook, you can use a mutation like the following: + +```graphql +mutation { + updateWebhook(endpoint: String, name: String, is_active: Boolean) { + success + } +} +``` + +| Key | Type | Description | +|-----------|---------|-------------------------------------------------------------------| +| endpoint | String | The URL of the webhook you want to update. This cannot be changed | +| name | String | The new name you want to give the webhook | +| is_active | Boolean | Whether the webhook should be active or not | + +## Delete Webhook +To delete a webhook, you can use the following mutation: + +```graphql +mutation { + deleteWebhook(endpoint: String) { + success + } +} +``` + +| Key | Type | Description | +|----------|--------|--------------------------------------------| +| endpoint | String | The URL of the webhook you want to delete. | + + ## The Webhook Event Object A webhook event object represents a webhook trigger, meaning it may have sent a notification to your endpoint if it was active at the time. @@ -80,21 +145,20 @@ The following is the retry policy for webhooks: - The maximum timeout for a notification is **10 seconds**. - If the endpoint fails to respond after the third attempt, the webhook will be deactivated, and further notifications will be marked as `IGNORED`, no longer calling the endpoint. -## Webhook Events Query +## Query Webhook Events This is the query definition for the `WebhookEvents` object: ```graphql webhookEvents(id: ID, endpoint: String, result: WebhookNotificationResult, last_evaluated_key: String, limit: Int): WebhookEvents! ``` -***Parameters*** -|Key |type | description | -|-------------------|-------------|---------------------------------------| -|id |ID |The ID of the event to retrieve.| -|endpoint |String |The endpoint of the webhook associated with the event.| -|result |WebhookNotificationResult|The result of the event.| -|last_evaluated_key |String |The last evaluated key for pagination.| -|limit |Int |The maximum number of events to return.| +| Key | type | description | +|--------------------|---------------------------|------------------------------------------------------------------------| +| id | ID | The ID of the event to retrieve. Allows you to fetch a specific event. | +| endpoint | String | The endpoint of the webhook associated with the event. | +| result | WebhookNotificationResult | The result of the event. | +| last_evaluated_key | String | The last evaluated key for pagination. | +| limit | Int | The maximum number of events to return. | The object `WebhookEvents` consists of the following fields: @@ -110,152 +174,6 @@ The object `WebhookEvents` consists of the following fields: | events | [WebhookEvent] | A list of webhook events. | | last_evaluated_key | String | The last evaluated key for pagination. | -## Examples - -### Creating a Webhook -To create a webhook, you need to provide the endpoint and a name for the webhook using the following mutation: - -```graphql -mutation { - createWebhook(endpoint: "https://example.com/webhook", name: "Example Webhook") { - success - } -} -``` - -### Listing Webhooks -To list all webhooks, you can use the following query: - -```graphql -{ - webhooks { - endpoint - is_active - name - } -} -``` - -If you want to get a specific webhook, you can pass the endpoint as an argument: - -```graphql -{ - webhooks(endpoint: "https://example.com/webhook") { - is_active - name - } -} -``` - -### Updating a Webhook -To update a webhook, you can use a mutation like the following: - -```graphql -mutation { - updateWebhook(endpoint: "https://example.com/webhook", name: "Updated Webhook", is_active: false) { - success - } -} -``` - -> **Note:** Not passing a field will leave it unchanged; the webhook endpoint (URL) cannot be changed. - -### Deleting a Webhook -To delete a webhook, you can use the following mutation: - -```graphql -mutation { - deleteWebhook(endpoint: "https://example.com/webhook") { - success - } -} -``` - -### Listing Webhook Events - -To list all webhook events, you can use the following query: - -```graphql -{ - webhookEvents { - events { - id - endpoint - error - event - started_at - finished_at - request - response - status_code - result - } - } -} -``` - -If you want to get a specific webhook event, you can pass the event ID as an argument: - -```graphql -{ - webhookEvents(id: "123456") { - events { - endpoint - error - event - started_at - finished_at - request - response - status_code - result - } - } -} -``` - -You can also filter by the endpoint, result, or limit the number of events returned: - -```graphql -{ - webhookEvents(endpoint: "https://example.com/webhook", result: SUCCESS, limit: 10) { - events { - id - endpoint - error - event - started_at - finished_at - request - response - status_code - result - } - } -} -``` - -If you have more events than the limit, you can use the `last_evaluated_key` to paginate through the results: - -```graphql -{ - webhookEvents(last_evaluated_key: "123456", limit: 10) { - events { - id - endpoint - error - event - started_at - finished_at - request - response - status_code - result - } - last_evaluated_key - } -} -``` ## Webhook Payloads From 37282e0bbb58cf1c5e125bd833524db5273b9105 Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Thu, 11 Apr 2024 22:27:11 -0400 Subject: [PATCH 32/34] fix: cleaned up the layout of some of the api docs --- docs/api/dispute.md | 4 ++-- docs/api/invoice.md | 14 ++++++------- docs/api/merchant.md | 32 ++++++++++++++--------------- docs/api/payment_links.md | 42 +++++++++++++++++++-------------------- docs/api/recurring.md | 4 ++-- docs/api/transaction.md | 12 +++++------ 6 files changed, 53 insertions(+), 55 deletions(-) diff --git a/docs/api/dispute.md b/docs/api/dispute.md index 7a12fc1..29726c0 100644 --- a/docs/api/dispute.md +++ b/docs/api/dispute.md @@ -50,7 +50,7 @@ They could be an `INQUIRY` which is just a request for information, or an actual |updated_row_at | String | The date the dispute was last updated in the database. | *** -## Dispute Status +### Dispute Status - `INQUIRY` - The dispute is in the inquiry stage. The cardholder has requested more information about the charge. - `LOST` - The dispute has been lost. The cardholder has won the dispute and the funds have been withdrawn from the merchants account. @@ -58,7 +58,7 @@ They could be an `INQUIRY` which is just a request for information, or an actual - `WON` - The dispute has been won. The merchant has won the dispute and the funds have been deposited into the merchants account. *** -## Dispute Reason +### Dispute Reason - `CLERICAL` - `FRAUD` diff --git a/docs/api/invoice.md b/docs/api/invoice.md index 1a12d73..3e48099 100644 --- a/docs/api/invoice.md +++ b/docs/api/invoice.md @@ -58,7 +58,7 @@ Invoices are used to create a payment request that can be sent to a payor. |total_paid_amount |Int |The total amount that has been paid toward the invoice.| *** -## Invoice Settings Object +### Invoice Settings Object ```graphql { @@ -134,7 +134,6 @@ Invoices are used to create a payment request that can be sent to a payor. } ``` -**Parameters** |Key |type | description | |-------------------|-------------|---------------------------------------| |direction |MoveDirection|The direction of the pagination. Makes sure the results are returned in the correct order.| @@ -190,12 +189,11 @@ mutation { } ``` -**Parameters** -|Key |type | description | -|-------------------|-------------|---------------------------------------| -|intput |CreateInvoiceInput|The input object that contains all the information needed to create an invoice.| +| Key | type | description | +|-------|--------------------|---------------------------------------------------------------------------------| +| input | CreateInvoiceInput | The input object that contains all the information needed to create an invoice. | -**CreateInvoiceInput** +### Create Invoice Input ```graphql { @@ -241,7 +239,7 @@ mutation { The response will contain the invoice object that was created. More information on the [invoice object](#the-invoice-object). *** -## Invoice Settings Input +### Invoice Settings Input ```graphql { accepted_payment_methods: AcceptedPaymentMethodsInput diff --git a/docs/api/merchant.md b/docs/api/merchant.md index e4a6a81..781c818 100644 --- a/docs/api/merchant.md +++ b/docs/api/merchant.md @@ -26,21 +26,21 @@ Merchants are the entities that are using Pay Theory to accept payments. } ``` -|Key |type | description | -|-------------------|-------------|---------------------------------------| -|ach_active |Boolean |If the merchant has successfully completed onboarding and has an ACH processor active.| -|api_key |String |The API key of the merchant. This is used to authenticate use of the PayTheory Web and Native SDKs.| -|card_active |Boolean |If the merchant has successfully completed onboarding and has a card processor active.| -|cash_active |Boolean |If the merchant has successfully completed onboarding and has a cash processor active.| -|fee_matrix |FeeMatrix |The fee matrix that the merchant is using. This is used to calculate the fees that are charged to the payor.| -|is_system |Boolean |If the merchant is a system merchant. System merchants are merchants that also have sub merchants.| -|merchant_name |String |The name of the merchant.| -|merchant_uid |String |The Pay Theory unique identifier assigned to the merchant.| -|parent_merchant_uid|String |The `merchant_uid` of the parent merchant. This is only set if the merchant is a sub merchant of a system merchant.| -|settings |MerchantSettings|The settings that the merchant has set.| -|submitted_onboarding|Boolean |Whether the merchant has submitted their onboarding information.| - -## The Fee Matrix Object +| Key | type | description | +|----------------------|------------------|----------------------------------------------------------------------------------------------------------------------| +| ach_active | Boolean | If the merchant has successfully completed onboarding and has an ACH processor active. | +| api_key | String | The API key of the merchant. This is used to authenticate use of the PayTheory Web and Native SDKs. | +| card_active | Boolean | If the merchant has successfully completed onboarding and has a card processor active. | +| cash_active | Boolean | If the merchant has successfully completed onboarding and has a cash processor active. | +| fee_matrix | FeeMatrix | The fee matrix that the merchant is using. This is used to calculate the fees that are charged to the payor. | +| is_system | Boolean | If the merchant is a system merchant. System merchants are merchants that also have sub merchants. | +| merchant_name | String | The name of the merchant. | +| merchant_uid | String | The Pay Theory unique identifier assigned to the merchant. | +| parent_merchant_uid | String | The `merchant_uid` of the parent merchant. This is only set if the merchant is a sub merchant of a system merchant. | +| settings | MerchantSettings | The settings that the merchant has set. | +| submitted_onboarding | Boolean | Whether the merchant has submitted their onboarding information. | + +### The Fee Matrix Object This object is used to calculate the fees that are charged to the payor. `card`, `ach`, and `cash` are the main fee objects that are used to calculate the fees for each transaction type. @@ -96,7 +96,7 @@ Card brands can only be used to charge different fees when using the `MERCHANT_F |service_fee_enabled|Boolean | If the merchant is using service fee pricing. | |visa |CardBrandFee| The model that will be used to calculate all Visa card transaction fees for the merchant. | -## Fee Type Objects +### Fee Type Objects ```graphql type AchFee { merchant_fee: AchMerchantFee diff --git a/docs/api/payment_links.md b/docs/api/payment_links.md index 8d16e5b..6b4f159 100644 --- a/docs/api/payment_links.md +++ b/docs/api/payment_links.md @@ -58,7 +58,7 @@ Payment links are a used to create a checkout page without having to write any c |require_phone | Boolean |If set to `true` the payor will be required to enter their phone number before making the payment.| *** -## AcceptedPaymentMethodsEnum +### AcceptedPaymentMethodsEnum The payment methods that will be available to a payor when making a payment. * `ALL` * `NOT_CASH` @@ -69,7 +69,7 @@ The payment methods that will be available to a payor when making a payment. * `ONLY_ACH` *** -## CallToActionType +### CallToActionType The call to action that will be displayed on the button at the time of checkout. * `PAY` * `DONATE` @@ -285,25 +285,25 @@ mutation { **UpdatePaymentLinkInput** -|Key | type | description | -|-------------------|-----------------------------------------------------------|---------------------------------------| -|accepted_payment_methods| [AcceptedPaymentMethodsEnum](#acceptedpaymentmethodsenum) |The payment methods that will be available to a payor when making a payment.| -|account_code | String |Account Code that will be passed in to every transaction made with this payment link.| -|amount | Int |The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount.| -|amount_is_variable | Boolean |If set to `true` the payor will be able to enter the amount they want to pay.| -|call_to_action | [CallToActionType](#calltoactiontype) |The call to action that will be displayed on the button at the time of checkout.| -|currency | String |The currency of the payment.| -|custom_success_message| String |The message that will be displayed to the payor after they have successfully paid.| -|fee_mode | FeeMode |The fee mode of the payments that will be made with the payment link.| -|link_id | String! |The id of the payment link that will be updated.| -|link_name | String |The name you give to the payment link for internal tracking purposes.| -|max_amount | Int |The maximum amount the payor can pay if `amount_is_variable` is set to `true`.| -|merchant_uid | String! |The merchant uid of the merchant that will be creating the payment link.| -|min_amount | Int |The minimum amount the payor can pay if `amount_is_variable` is set to `true`.| -|payment_description| String |The description of the payment that will be displayed to the customer.| -|payment_name | String |The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction.| -|redirect_url | String |The url that the payor will be redirected to after they have successfully paid.| -|require_phone | Boolean |If set to `true` the payor will be required to enter their phone number before making the payment.| +| Key | type | description | +|--------------------------|-----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| +| accepted_payment_methods | [AcceptedPaymentMethodsEnum](#acceptedpaymentmethodsenum) | The payment methods that will be available to a payor when making a payment. | +| account_code | String | Account Code that will be passed in to every transaction made with this payment link. | +| amount | Int | The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount. | +| amount_is_variable | Boolean | If set to `true` the payor will be able to enter the amount they want to pay. | +| call_to_action | [CallToActionType](#calltoactiontype) | The call to action that will be displayed on the button at the time of checkout. | +| currency | String | The currency of the payment. | +| custom_success_message | String | The message that will be displayed to the payor after they have successfully paid. | +| fee_mode | FeeMode | The fee mode of the payments that will be made with the payment link. | +| link_id | String! | The id of the payment link that will be updated. | +| link_name | String | The name you give to the payment link for internal tracking purposes. | +| max_amount | Int | The maximum amount the payor can pay if `amount_is_variable` is set to `true`. | +| merchant_uid | String! | The merchant uid of the merchant that will be creating the payment link. | +| min_amount | Int | The minimum amount the payor can pay if `amount_is_variable` is set to `true`. | +| payment_description | String | The description of the payment that will be displayed to the customer. | +| payment_name | String | The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction. | +| redirect_url | String | The url that the payor will be redirected to after they have successfully paid. | +| require_phone | Boolean | If set to `true` the payor will be required to enter their phone number before making the payment. | **Returns** diff --git a/docs/api/recurring.md b/docs/api/recurring.md index 0c245d5..d34e97b 100644 --- a/docs/api/recurring.md +++ b/docs/api/recurring.md @@ -70,7 +70,7 @@ You can also create a recurring payment with no set payment amounts to enable a |total_amount_per_payment| Int |The amount the payor will be charged for the recurring payment.| *** -## Recurring Interval +### Recurring Interval The interval of the recurring payment. The following intervals are available: @@ -82,7 +82,7 @@ The interval of the recurring payment. The following intervals are available: - `ANNUAL` *** -## Recurring Status +### Recurring Status The status of the recurring payment. The following statuses are available: diff --git a/docs/api/transaction.md b/docs/api/transaction.md index 1868e8c..cb39093 100644 --- a/docs/api/transaction.md +++ b/docs/api/transaction.md @@ -78,7 +78,7 @@ Transactions are a data object that can represent a payment, failed or successfu | updated_row_at | AWSDateTime | The date and time the transaction was last updated. | *** -## Ach Return Details +### Ach Return Details ```graphql { @@ -95,13 +95,13 @@ Transactions are a data object that can represent a payment, failed or successfu | transfer_type | [AchReturnTransferType](#ach-return-transfer-type) | The type of transfer that the ACH return is for. | *** -## Ach Return Transfer Type +### Ach Return Transfer Type - `DEBIT` - The ACH return is going to debit the merchant funds. - `CREDIT` - The ACH return is going to credit the merchant funds. *** -## Refund Reason +### Refund Reason ```graphql { @@ -116,7 +116,7 @@ Transactions are a data object that can represent a payment, failed or successfu |reason_details | String |The details of the refund reason.| *** -## Refund Reason Code +### Refund Reason Code - `DUPLICATE` - `FRAUDULENT` @@ -125,7 +125,7 @@ Transactions are a data object that can represent a payment, failed or successfu *** -## Transaction Status +### Transaction Status - `PENDING` - The transaction is pending capture. For a sale this automatically changes to `SUCCEEDED` typically within the hour. For an auth that has been set to capture, this will change to `SUCCEEDED` when the settlement batch is created. - `SUCCEEDED` - The transaction has been captured. @@ -137,7 +137,7 @@ Transactions are a data object that can represent a payment, failed or successfu - `RETURNED` - The transaction is an ACH transaction that has had an `ACH_RETURN` created for it. *** -## Transaction Type +### Transaction Type - `ACH_RETURN` - The transaction is an ACH return for an ACH Debit or Reversal. Check `parent_id` to find origin. - `DEBIT` - The transaction is a debit to a payors payment method. From 66b3f5d3a634b9a82a60a52f8a89aaf1bb502779 Mon Sep 17 00:00:00 2001 From: Blake A Galloway <36147439+blakeAgalloway@users.noreply.github.com> Date: Mon, 15 Apr 2024 07:54:31 -0400 Subject: [PATCH 33/34] Fixed broken link for tokenizing quickstart on recurring payments overview page --- docs/main/recurring_payments/overview.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/main/recurring_payments/overview.mdx b/docs/main/recurring_payments/overview.mdx index 65ccced..579f3b5 100644 --- a/docs/main/recurring_payments/overview.mdx +++ b/docs/main/recurring_payments/overview.mdx @@ -16,7 +16,7 @@ Recurring payments are payments that get triggered on a specified interval. The :::danger Before you start You will need to be able to tokenize a payment in order to set up a recurring payment. -Tokenizing Quickstart +Tokenizing Quickstart ::: ## Payment plans From 6cabfa8c593de84f1781a9af2ca07ab4dcefd46f Mon Sep 17 00:00:00 2001 From: austinzani <60404116+austinzani@users.noreply.github.com> Date: Mon, 15 Apr 2024 11:31:38 -0400 Subject: [PATCH 34/34] fix: updated broken link and pointing people to their portal settings for URLs --- docs/api/main.md | 6 +- docs/api/payment_links.md | 97 +++++++++--------- docs/main/getting_started/quickstart.mdx | 4 +- docs/main/online_payments/ach_payments.mdx | 5 +- docs/main/online_payments/payment_button.mdx | 10 +- docs/sdk/javascript/main.md | 4 +- home/Overview/CARD_PRESENT.md | 101 ------------------- home/Overview/CHECKOUT_BUTTON.md | 100 ------------------ home/Overview/EMAIL_RECEIPTS.md | 46 --------- home/Overview/MAIN.md | 94 ----------------- home/Overview/PAYMENT_PARAMETERS.md | 67 ------------ home/Overview/_category_.json | 8 -- 12 files changed, 68 insertions(+), 474 deletions(-) delete mode 100644 home/Overview/CARD_PRESENT.md delete mode 100644 home/Overview/CHECKOUT_BUTTON.md delete mode 100644 home/Overview/EMAIL_RECEIPTS.md delete mode 100644 home/Overview/MAIN.md delete mode 100644 home/Overview/PAYMENT_PARAMETERS.md delete mode 100644 home/Overview/_category_.json diff --git a/docs/api/main.md b/docs/api/main.md index 0a8a2e4..7037535 100644 --- a/docs/api/main.md +++ b/docs/api/main.md @@ -106,12 +106,10 @@ This key should be stored securely and not shared with anyone. It should be used ## POST GraphQL Query -Queries are then executed by sending POST HTTP requests to the endpoint: - -***POST `https://api.PARTNER_NAME.STAGE.com/graphql`*** +Queries are then executed by sending POST HTTP requests to the endpoint. You can find the API endpoint in the Pay Theory Portal under the Settings tab. ```commandline -curl --location --request POST 'https://api.PARTNER_NAME.STAGE.com/graphql' +curl --location --request POST '{GraphQL API URL}' --header 'Authorization: MERCHANT_UID;SECRET_KEY' --header 'Content-Type: application/graphql' --data '{"query":"{transactions(limit: 3) { items { transaction_id }}}"}' diff --git a/docs/api/payment_links.md b/docs/api/payment_links.md index 6b4f159..4466337 100644 --- a/docs/api/payment_links.md +++ b/docs/api/payment_links.md @@ -2,6 +2,7 @@ sidebar_position: 14 sidebar_label: 'Payment Links' title: "Payment Links" +description: "Payment Links are a used to create a checkout page without having to write any code. You can create a payment link and send it to your customers to pay for your products or services." --- # Payment Links @@ -34,28 +35,28 @@ Payment links are a used to create a checkout page without having to write any c require_phone: Boolean } ``` -|Key | type | description | -|-------------------|-----------------------------------------------------------|---------------------------------------| -|accepted_payment_methods| [AcceptedPaymentMethodsEnum](#acceptedpaymentmethodsenum) |The payment methods that will be available to a payor when making a payment.| -|account_code | String |Account Code that will be passed in to every transaction made with this payment link.| -|amount | Int |The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount.| -|amount_is_variable | Boolean |If set to `true` the payor will be able to enter the amount they want to pay.| -|call_to_action | [CallToActionType](#calltoactiontype) |The call to action that will be displayed on the button at the time of checkout.| -|created_date | AWSDateTime |The date and time the payment link was created.| -|currency | String |The type of currency for the payment.| -|custom_success_message| String |The message that will be displayed to the payor after a successful payment.| -|fee_mode | FeeMode |The fee mode of the payments that will be made with the payment link.| -|is_active | Boolean |If set to `true` the payment link will be active and available to payors. If set to `false` the payment link will not be available to payors.| -|link_id | String |The unique id of the payment link.| -|link_name | String |The name you give to the payment link for internal tracking purposes.| -|link_url | String |The url of the payment link.| -|max_amount | Int |The maximum amount the payor can pay if `amount_is_variable` is set to `true`.| -|merchant_uid | String |The Pay Theory unique identifier assigned to the merchant that the transaction belongs to.| -|min_amount | Int |The minimum amount the payor can pay if `amount_is_variable` is set to `true`.| -|payment_name | String |The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction.| -|payment_description| String |The description of the payment that will be displayed to the customer.| -|redirect_url | String |The url that the payor will be redirected to after a successful payment.| -|require_phone | Boolean |If set to `true` the payor will be required to enter their phone number before making the payment.| +| Key | type | description | +|--------------------------|-----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| +| accepted_payment_methods | [AcceptedPaymentMethodsEnum](#acceptedpaymentmethodsenum) | The payment methods that will be available to a payor when making a payment. | +| account_code | String | Account Code that will be passed in to every transaction made with this payment link. | +| amount | Int | The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount. | +| amount_is_variable | Boolean | If set to `true` the payor will be able to enter the amount they want to pay. | +| call_to_action | [CallToActionType](#calltoactiontype) | The call to action that will be displayed on the button at the time of checkout. | +| created_date | AWSDateTime | The date and time the payment link was created. | +| currency | String | The type of currency for the payment. | +| custom_success_message | String | The message that will be displayed to the payor after a successful payment. | +| fee_mode | FeeMode | The fee mode of the payments that will be made with the payment link. | +| is_active | Boolean | If set to `true` the payment link will be active and available to payors. If set to `false` the payment link will not be available to payors. | +| link_id | String | The unique id of the payment link. | +| link_name | String | The name you give to the payment link for internal tracking purposes. | +| link_url | String | The url of the payment link. | +| max_amount | Int | The maximum amount the payor can pay if `amount_is_variable` is set to `true`. | +| merchant_uid | String | The Pay Theory unique identifier assigned to the merchant that the transaction belongs to. | +| min_amount | Int | The minimum amount the payor can pay if `amount_is_variable` is set to `true`. | +| payment_name | String | The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction. | +| payment_description | String | The description of the payment that will be displayed to the customer. | +| redirect_url | String | The url that the payor will be redirected to after a successful payment. | +| require_phone | Boolean | If set to `true` the payor will be required to enter their phone number before making the payment. | *** ### AcceptedPaymentMethodsEnum @@ -138,10 +139,10 @@ The call to action that will be displayed on the button at the time of checkout. } } ``` -|Key |type | description | -|-------------------|-------------|---------------------------------------| -|items |[PaymentLink] |The list of payment links that are returned from the query.| -|total_row_count |Int |The total number of payment links that match the query. Used to help with pagination.| +| Key | type | description | +|-----------------|---------------|---------------------------------------------------------------------------------------| +| items | [PaymentLink] | The list of payment links that are returned from the query. | +| total_row_count | Int | The total number of payment links that match the query. Used to help with pagination. | *** ## Create a Payment Link @@ -191,29 +192,31 @@ mutation { ``` **Parameters** -|Key |type | description | -|-------------------|-------------|---------------------------------------| -|input |PaymentLinkInput|This object contains all the details needed to create a payment link.| + +| Key | type | description | +|-------|------------------|-----------------------------------------------------------------------| +| input | PaymentLinkInput | This object contains all the details needed to create a payment link. | **PaymentLinkInput** -|Key | type | description | -|-------------------|-----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| -|accepted_payment_methods| [AcceptedPaymentMethodsEnum](#acceptedpaymentmethodsenum) | The payment methods that will be available to a payor when making a payment. | -|account_code | String | Account Code that will be passed in to every transaction made with this payment link. | -|amount | Int! | The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount. | -|amount_is_variable | Boolean | If set to `true` the payor will be able to enter the amount they want to pay. | -|call_to_action | [CallToActionType](#calltoactiontype) | The call to action that will be displayed on the button at the time of checkout. | -|currency | String | The currency of the payment. | -|custom_success_message| String | The message that will be displayed to the payor after they have successfully paid. | -|fee_mode | FeeMode | The fee mode of the payments that will be made with the payment link. | -|link_name | String! | The name you give to the payment link for internal tracking purposes. | -|max_amount | Int | The maximum amount the payor can pay if `amount_is_variable` is set to `true`. | -|merchant_uid | String! | The merchant uid of the merchant that will be creating the payment link. | -|min_amount | Int | The minimum amount the payor can pay if `amount_is_variable` is set to `true`. | -|payment_description| String | The description of the payment that will be displayed to the customer. | -|payment_name | String! | The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction. | -|redirect_url | String | The url that the payor will be redirected to after they have successfully paid. | -|require_phone | Boolean | If set to `true` the payor will be required to enter their phone number before making the payment. | + +| Key | type | description | +|--------------------------|-----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| +| accepted_payment_methods | [AcceptedPaymentMethodsEnum](#acceptedpaymentmethodsenum) | The payment methods that will be available to a payor when making a payment. | +| account_code | String | Account Code that will be passed in to every transaction made with this payment link. | +| amount | Int! | The amount of the payment that the payor will be asked to pay or if `amount_is_variable` is set to the amount that will be the default amount. | +| amount_is_variable | Boolean | If set to `true` the payor will be able to enter the amount they want to pay. | +| call_to_action | [CallToActionType](#calltoactiontype) | The call to action that will be displayed on the button at the time of checkout. | +| currency | String | The currency of the payment. | +| custom_success_message | String | The message that will be displayed to the payor after they have successfully paid. | +| fee_mode | FeeMode | The fee mode of the payments that will be made with the payment link. | +| link_name | String! | The name you give to the payment link for internal tracking purposes. | +| max_amount | Int | The maximum amount the payor can pay if `amount_is_variable` is set to `true`. | +| merchant_uid | String! | The merchant uid of the merchant that will be creating the payment link. | +| min_amount | Int | The minimum amount the payor can pay if `amount_is_variable` is set to `true`. | +| payment_description | String | The description of the payment that will be displayed to the customer. | +| payment_name | String! | The name of the payment that will be displayed to the customer. This will be passed in as the `reference` at the time of the transaction. | +| redirect_url | String | The url that the payor will be redirected to after they have successfully paid. | +| require_phone | Boolean | If set to `true` the payor will be required to enter their phone number before making the payment. | diff --git a/docs/main/getting_started/quickstart.mdx b/docs/main/getting_started/quickstart.mdx index 9b71f48..db6109a 100644 --- a/docs/main/getting_started/quickstart.mdx +++ b/docs/main/getting_started/quickstart.mdx @@ -30,8 +30,10 @@ You will need access to your Pay Theory Sandbox. If you do not have a sandbox ac ## 1. Importing the SDK In order to import your SDK, you will need to copy and paste your Import URL into the header of your code editor. +The SDK URL can be found in the Pay Theory portal under the settings tab as the SDK Import URL. + ``` - + ``` *** diff --git a/docs/main/online_payments/ach_payments.mdx b/docs/main/online_payments/ach_payments.mdx index 283a7f6..74964f9 100644 --- a/docs/main/online_payments/ach_payments.mdx +++ b/docs/main/online_payments/ach_payments.mdx @@ -31,8 +31,11 @@ You will need access to your Pay Theory Sandbox. If you do not have a sandbox ac ## 1. Importing the SDK In order to import your SDK, you will need to copy and paste your Import URL into the header of your code editor. +The SDK URL can be found in the Pay Theory portal under the settings tab as the SDK Import URL. + + ``` - + ``` *** diff --git a/docs/main/online_payments/payment_button.mdx b/docs/main/online_payments/payment_button.mdx index 48a4c68..e57f445 100644 --- a/docs/main/online_payments/payment_button.mdx +++ b/docs/main/online_payments/payment_button.mdx @@ -15,16 +15,18 @@ This guide will walk you through the steps to create a payment button that will ## 1. Import the SDK You need to use the Pay Theory Web SDK. This is available by adding the below script into your web header. This button will open a hosted checkout page that will allow the user to select a payment method and complete the payment. -```jsx title="javascript" - +The SDK URL can be found in the Pay Theory portal under the settings tab as the SDK Import URL. + +``` + ``` *** ## 2. Add Pay Theory element to your Html This div is used to mount an iframe that will include a checkout button. You need to add the Pay Theory elements to your HTML. You can place these elements anywhere in your HTML and the SDK will place the button in the correct place. -```jsx title="javascript" -
+```html +
``` *** diff --git a/docs/sdk/javascript/main.md b/docs/sdk/javascript/main.md index a1ba149..a64f509 100644 --- a/docs/sdk/javascript/main.md +++ b/docs/sdk/javascript/main.md @@ -14,8 +14,10 @@ Here is some steps to get you started with a basic implementation. To use the Pay Theory Web SDK, you need to add this script to your web header: +The SDK URL can be found in the Pay Theory portal under the settings tab as the SDK Import URL. + ```html - + ``` The SDK will be available on the window object as `paytheory`. diff --git a/home/Overview/CARD_PRESENT.md b/home/Overview/CARD_PRESENT.md deleted file mode 100644 index 32e55eb..0000000 --- a/home/Overview/CARD_PRESENT.md +++ /dev/null @@ -1,101 +0,0 @@ -# Card Present Quick Start - -This guide will walk you through the steps to activate a card present device to accept in person card payments with a device. - -If you are looking to accept card present payments with a device please reach out to [support@paytheory.com](mailto:support@paytheory.com) to get started. - -## Step 1: Find the Device ID - -You will need to know the device ID of the device you want to activate. You can find the device ID by querying the GraphQL API. - -```graphql -{ - devices(query: { query_list: [ - { - key: "merchant_uid", - value: "YOUR_MERCHANT_UID", - operator: EQUAL, - conjunctive_operator: AND_NEXT - }, - { - key: "device_description", - value: "DEVICE_DESCRIPTION", - operator: EQUAL - } - ] - }) { - items { - device_description - device_id - device_name - is_active - merchant_uid - } - } -} -``` - -## Step 2: Set Up Pay Theory Web SDK - -Once you have the device ID you need to set up the Pay Theory Web SDK. - -```javascript -let payTheory = window.paytheory - -payTheory.create("YOUR_API_KEY") - .then(ptObject => { - ptObject.mount() - - ptObject.cardPresentObserver(message => { - // Handle card present messages - }) - }) -``` - -You will need to call the `cardPresentObserver` function to handle messages from the card present iframe. - -## Step 3: Activate the Device - -Once you have received a `READY` message from the card present iframe you can activate the device to accept a payment. - -```javascript -//Amount passed in is in cents -const AMOUNT = 1000 - -// optionally provide details about the payor -const PAYOR_INFO = { - "first_name": "Some", - "last_name": "Body", - "email": "somebody@gmail.com", - "phone": "3335554444", - "personal_address": { - "city": "Somewhere", - "country": "USA", - "region": "OH", - "line1": "123 Street St", - "line2": "Apartment 17", - "postal_code": "12345" - } -} - -// Parameters that you will pass into the transact function. More details below. -const CARD_PRESENT_PARAMS = { - amount: AMOUNT, - deviceId: "pt_dev_XXXXXXXXX", // The device ID you received from the GraphQL query in Step 1 - payorInfo: PAYOR_INFO, // optional -} - -// Function is available on the ptObject returned from the create function in Step 2 -ptObject.activateCardPresentDevice(CARD_PRESENT_PARAMS) -``` - -## Step 4: Handle responses In the cardPresentObserver - -You should receive two responses after calling the `activateCardPresentDevice` function. - -The first response will be a `ACTIVATED` message. This will let you know that the device is ready to accept a payment. - -The second response will be a `COMPLETE` message. This will let you know that the device has completed the payment session, but it could be either a `SUCCEEDED` or `FAILURE` message. You will need to check the `status` field to see if the payment was successful. - - - diff --git a/home/Overview/CHECKOUT_BUTTON.md b/home/Overview/CHECKOUT_BUTTON.md deleted file mode 100644 index ba957ec..0000000 --- a/home/Overview/CHECKOUT_BUTTON.md +++ /dev/null @@ -1,100 +0,0 @@ -# Checkout Button Quick Start - -This guide will walk you through the steps to create a payment button to enable a PayTheory Hosted Checkout experience for your Payors. - -## Step 1: Import the SDK - -You need to use the Pay Theory Web SDK. This is available by adding this script to your web header: - -```html - -``` - -## Step 2: Add Pay Theory Element to your HTML - -You need to add the Pay Theory elements to your HTML. You can place this elements anywhere in your HTML and the SDK will place the button in the correct place. - -```html -
-``` - -## Step 3: Prepare the Checkout Details - -You need to put together the details of the checkout. This includes the amount, payment name, and any other details you want to pass to the checkout. - -```javascript -//Amount passed in is in cents -const AMOUNT = 1000 - -const PAYMENT_METADATA = { - "student-name": "Jane Doe" -}; - -// Parameters that you will pass in to configure the checkout page that opens when the button is clicked. -const CHECKOUT_DETAILS = { - amount: AMOUNT, - paymentName: "School Technology Fees", - paymentDescription: "Technology Fee for the 2019-2020 school year", - requirePhone: true, - callToAction: paytheory.DONATE, - acceptedPaymentMethods: paytheory.CARD_ONLY, - payorId: "pt_pay_XXXXXXXXX", - metadata: PAYMENT_METADATA, - feeMode: paytheory.MERCHANT_FEE, - accountCode: "code-123456789", - paymentParameters: "expires-in-30-days", - invoiceId: "pt_inv_XXXXXXXXX", - recurringId: "pt_rec_XXXXXXXXX", -} -``` - -Further details on the checkout details can be found in the [button](../web/functions#button) function details. - -## Step 4: Style the Button - -You can select styles for the button to match your website. - -```javascript -// Object that will style the payment button -const STYLE_OBJECT = { - color: paytheory.WHITE, - callToAction: paytheory.DONATE, - pill: true, - height: "48px" -} -``` - -Further details on the style object can be found in the [button](../web/functions#button) function details. - -## Step 5: Create functions to handle actions from the button - -You can create functions to handle the actions from the button. These include `onReady`, `onClick`, `onSuccess`, `onError`, and `onCancel`. - -```javascript -// Function that will be called when a payment is successful -const ON_SUCCESS = (response) => { - console.log("Payment Successful") - console.log(response) -} -``` - - -## Step 6: Create the Button - -You can create the button using the `button` function. Pass in the checkout details, style object, and functions to handle the actions. - -```javascript -// Create the button -paytheory.button({ - apiKey: "PT_API_KEY", - checkoutDetails: CHECKOUT_DETAILS, - style: STYLE_OBJECT, - onReady: ON_READY, - onClick: ON_CLICK, - onSuccess: ON_SUCCESS, - onError: ON_ERROR, - onCancel: ON_CANCEL -}) -``` - -The button session will only enable a single payment. If you want to enable multiple payments, you will need to clear the button from the DOM and create a new button. diff --git a/home/Overview/EMAIL_RECEIPTS.md b/home/Overview/EMAIL_RECEIPTS.md deleted file mode 100644 index 722682f..0000000 --- a/home/Overview/EMAIL_RECEIPTS.md +++ /dev/null @@ -1,46 +0,0 @@ -# Email Receipts - -Email receipts are available to be sent at the time of a payment and refund. - -## Payment Receipt - -There are two requirements for sending an email receipt with a payment. - -* Pass an `email` into the payor info or a `payorId` with an email tied to it. -* Pass `sendReceipt` into the transact arguments. - -You can optionally include a receipt description. -* Pass `receiptDescription` into the transactArguments. Defaults to "Payment from {Merchant Name}". - -```javascript -const AMOUNT = 1000 - -// email is required for a receipt to send -const PAYOR_INFO = { - "first_name": "Some", - "last_name": "Body", - "email": "somebody@paytheory.com" -} - - -myPayTheory.transact({ - amount: AMOUNT, - payorInfo: PAYOR_INFO, - sendReceipt: true, - receiptDescription: "School Technology Fees" -}) -``` - -As long as `email` and `sendReceipt` are included when calling the transact function it will send an email receipt. - -## Refund Receipts - -For sending an email with a refund you will be prompted to enter an email in the portal at the time of the refund. - -The prompt will auto-populate the email from the customer info. It can be changed before sending the receipt. - -![Refund Receipt Email](https://books-ui-assets.s3.amazonaws.com/refund-receipt.png) - -If you select `NO` it will process the refund with no receipt. - -If you include an email and select `SEND` it will send a receipt to the email address. diff --git a/home/Overview/MAIN.md b/home/Overview/MAIN.md deleted file mode 100644 index 646f5b9..0000000 --- a/home/Overview/MAIN.md +++ /dev/null @@ -1,94 +0,0 @@ -## Our Platform - -Pay Theory provides three environments for your integration: - -- **PayTheory.com** - - live integration for accepting payments -- **PayTheoryStudy.com** - - sandbox integration for testing _new versions of your software_ against Pay Theory -- **PayTheoryLab.com** - - acceptance integration for testing _new versions of Pay Theory_ against your software - -We understand how important the stability of your platform is. - -Our platform is designed from the ground up to support yours by providing a flexible infrastructure for deployment of both your changes and ours. - -Your instance of our platform lives in your own personal cloud space with its own collection of tables and security policies. - -You determine when changes from PayTheoryLab.com are deployed to PayTheory.com and PayTheoryStudy.com. - -## Features - -### Pay Theory Payments - -Provide safe and secure access to payments with hosted inputs for: - -- Credit card -- Debit card -- ACH -- Cash - -For basic [HTML Examples](https://PARTNER_NAME.html.example.STAGE.com/index.html) check here. _make sure you have an API key ready first_ - - -### Pay Theory Sockets - -Sockets provide a secure, consistent experience regardless of internet speed - -- No public facing payment API endpoints -- End to end encryption of messages using [NaCl](https://nacl.cr.yp.to/) (external link) -- Gated payment process -- Fine-grained rate limiting -- Improved API performance on slow connections - - -### Pay Theory Detective - -Actively detects bots & malicious actors - -- Anonymized fingerprinting -- Behavioral analysis -- Device / Website attestation -- Machine learning (coming soon) - -## Platforms - -- Pay Theory provides SDKs for the following platforms - - [Web / JavaScript](/web) - - iOS - - Android (coming soon) - - WooCommerce (coming soon) - - -## Partner Application Environment - -- Partner applications run as isolated instances -- Pay Theory maps upstream processor data feeds providing: - - Payment summaries - - Settlement summaries - - Chargeback / Dispute management - -### Merchant Portal -- Merchants can manage SDK in the [merchant portal](https://PARTNER_NAME.merchant.dashboard.STAGE.com) -- Account details are on the [settings page](https://PARTNER_NAME.merchant.dashboard.STAGE.com/settings) -- Access to Payments, Settlements, and Chargeback details -- Issue refunds on payments - -### System Portal -_Not available in start sandbox accounts_ -- Systems are merchants who also have other merchants they manage -- Systems manage their merchants in the [system portal](https://PARTNER_NAME.system.dashboard.STAGE.com) - - Assign merchant user accounts - - View merchant transactions - - Manage merchant credentials - - Issue refunds on payments for all system merchants - -### Partner Portal -_Not available in start sandbox accounts_ -- Partners manage merchants in the [partner portal](https://PARTNER_NAME.partner.dashboard.STAGE.com) - - Assign merchant user accounts - - View merchant transactions - - Manage merchant credentials - - Mobile application registration (coming soon) - - Website registration (coming soon) - - Onboard new merchants to live accounts (coming soon) \ No newline at end of file diff --git a/home/Overview/PAYMENT_PARAMETERS.md b/home/Overview/PAYMENT_PARAMETERS.md deleted file mode 100644 index ed5fe84..0000000 --- a/home/Overview/PAYMENT_PARAMETERS.md +++ /dev/null @@ -1,67 +0,0 @@ -# Payment Parameters - -Payment Parameters can be used to set parameters for a specific payment. - -These profiles are able to be set in the Partner Portal. - -![Payment Parameters List](https://books-ui-assets.s3.amazonaws.com/payment-parameters-list.png) - -They can be used to make a sure a specific payment meets certain requirements before it is processed. - -![Payment Parameters List](https://books-ui-assets.s3.amazonaws.com/payment-parameters-details.png) - -Upon initialization of a transaction it will use these payment parameters to create a payment intent. The payment intent will immediately be charged in the case of a card or ACH payment. In the case of a cash payment the barcode will represent the payment intent, and it will not be charged until the barcode is redeemed at a participating retailer. - -## Payment Parameters Properties - -These are the properties you will be able to configure for a set of payment parameters. - -**Payment Parameters Name**: The name of the payment parameters. -* Alphanumeric characters and dashes only. -* Must be unique for these parameters. - -**Days Until Expiry**: Days until the payment intent expires and is no longer valid. - -**Payment Activation Date**: Date that a payment using these parameters will begin being valid. - -**Payment Expiration Date**: Date that a payment using these parameters will stop being valid. - -**Minimum Amount Limit**: Amount the payment must be greater than to be a valid payment. -* This will default to $1 if left blank. - -**Maximum Amount Limit**: Amount the payment must be less than to be a valid payment. -* This will default to $5000 if left blank. - -**Enabled**: Payments using these parameters will only be valid if the parameters are enabled. -* This allows you to disable a group of payment intents by disabling a set of payment parameters. - -## Card, ACH and Cash details - -### Card and ACH Payments - -* Payment Parameters will be checked at the time of the transaction. If the payment parameters are invalid it will fail and return an error message. - -* Payment Parameters will be most beneficial in ensuring that a transaction falls within a certain date and price range for Card and ACH payments. -### Cash Payments - -* Payment Parameters will be checked both at the time of barcode creation and at the time of the transaction. - -* Payment Parameters will be most beneficial in ensuring that a transaction falls within a certain date and price range just like Card and ACH payments. - -* They will also be beneficial in disabling barcodes that a merchant no longer wants to collect on. - -## Example Use Case - -### Expiring Payment - -Payments received after a certain date need to be invalid and not be charged. -* Stale links should not be able to process ACH or Card payments or create Cash barcodes. -* Previously generated barcodes should not be able to be used to make payments at retailers. - -Create a new set of parameters and set these attributes: - -**Payment Parameters Name**: pay-before-end-of-year - -**Payment Expiration Date**: 12/31/2022 - -The minimum amount limit will be set to the $1 and the maximum amount limit will be set to $5000 which is our standard default. diff --git a/home/Overview/_category_.json b/home/Overview/_category_.json deleted file mode 100644 index 4b4c85b..0000000 --- a/home/Overview/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Overview", - "position": 2, - "link": { - "type": "generated-index", - "description": "Here are PT Reference guides." - } -}