diff --git a/_data/taps/schemas/braintree/v2/braintree-v2-tables.yml b/_data/taps/schemas/braintree/v2/braintree-v2-tables.yml new file mode 100644 index 000000000..54ee3ceca --- /dev/null +++ b/_data/taps/schemas/braintree/v2/braintree-v2-tables.yml @@ -0,0 +1,22 @@ +tap: braintree +version: '2' +tables: +- name: transactions + description: 'The `transactions` table contains info about the transactions in your + Braintree account, including the transaction''s status. + + + **Note**: Our Braintree integration will only replicate transactions for the **default + merchant account** in your Braintree instance. You can verify the merchant account + set as the default by going to **Settings > Processing > Merchant Accounts** when + signed into Braintree. + + ' + links: + doc-link: https://developers.braintreepayments.com/reference/request/transaction/search/java + singer-schema: https://github.com/singer-io/tap-braintree/blob/master/tap_braintree/schemas/transactions.json + table-details: + replication-method: Key-based Incremental + primary-key: id + replication-key: created_at +tap-repo-schemas: true diff --git a/_data/taps/schemas/braintree/v2/json/transactions.json b/_data/taps/schemas/braintree/v2/json/transactions.json new file mode 100644 index 000000000..a68454622 --- /dev/null +++ b/_data/taps/schemas/braintree/v2/json/transactions.json @@ -0,0 +1,205 @@ +{ + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "settlement_batch_id": { + "type": ["null", "string"] + }, + "status": { + "type": ["null", "string"] + }, + "type": { + "type": ["null", "string"] + }, + "amount": { + "type": ["null", "number"] + }, + "payment_instrument_type": { + "type": ["null", "string"] + }, + "service_fee_amount": { + "type": ["null", "number"] + }, + "order_id": { + "type": ["null", "string"] + }, + "plan_id": { + "type": ["null", "string"] + }, + "gateway_rejection_reason": { + "type": ["null", "string"] + }, + "processor_authorization_code": { + "type": ["null", "string"] + }, + "processor_response_code": { + "type": ["null", "string"] + }, + "processor_response_text": { + "type": ["null", "string"] + }, + "recurring": { + "type": ["null", "boolean"] + }, + "refunded_transaction_id": { + "type": ["null", "string"] + }, + "currency_iso_code": { + "type": ["null", "string"] + }, + "merchant_account_id": { + "type": ["null", "string"] + }, + "subscription_id": { + "type": ["null", "string"] + }, + "customer_details": { + "type": "object", + "properties": { + "id": { + "type": ["null", "string"] + }, + "email": { + "type": ["null", "string"] + }, + "first_name": { + "type": ["null", "string"] + }, + "last_name": { + "type": ["null", "string"] + }, + "company": { + "type": ["null", "string"] + }, + "phone": { + "type": ["null", "string"] + }, + "website": { + "type": ["null", "string"] + } + } + }, + "credit_card_details": { + "type": "object", + "properties": { + "customer_location": { + "type": ["null", "string"] + }, + "card_type": { + "type": ["null", "string"] + } + } + }, + "subscription_details":{ + "type": "object", + "properties": { + "billing_period_start_date": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ] + }, + "billing_period_end_date": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ] + } + } + }, + "disbursement_details": { + "anyOf": [ + { + "type": "object", + "properties": { + "disbursement_date": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ] + }, + "success": { + "type": ["null", "boolean"] + } + } + }, + { + "type": "null" + } + ] + }, + "paypal_details": { + "anyOf": [ + { + "type": "object", + "properties": { + "authorization_id" : { + "type": ["null", "string"] + }, + "capture_id": { + "type": ["null", "string"] + }, + "payer_email": { + "type": ["null", "string"] + }, + "payer_id": { + "type": ["null", "string"] + }, + "payer_status": { + "type": ["null", "string"] + }, + "payment_id": { + "type": ["null", "string"] + }, + "refund_id": { + "type": ["null", "string"] + }, + "seller_protection_status": { + "type": ["null", "string"] + }, + "tax_id": { + "type": ["null", "string"] + }, + "tax_id_type": { + "type": ["null", "string"] + }, + "transaction_fee_amount": { + "type": ["null", "string"] + }, + "transaction_fee_currency_iso_code": { + "type": ["null", "string"] + } + } + }, + { + "type": "null" + } + ] + } + } +} diff --git a/_data/taps/versions/braintree.yml b/_data/taps/versions/braintree.yml index ed1f94430..3aa162b47 100644 --- a/_data/taps/versions/braintree.yml +++ b/_data/taps/versions/braintree.yml @@ -2,9 +2,11 @@ # BRAINTREE VERSIONS # # -------------------------- # -latest-version: "1" +latest-version: "2" released-versions: + - number: "2" + date-released: "February 11, 2026" - number: "1" date-released: "March 1, 2017" - # date-last-connection: \ No newline at end of file + date-deprecated: "February 11, 2026" diff --git a/_saas-integrations/braintree/braintree-latest.md b/_saas-integrations/braintree/v1/braintree-v1.md old mode 100755 new mode 100644 similarity index 99% rename from _saas-integrations/braintree/braintree-latest.md rename to _saas-integrations/braintree/v1/braintree-v1.md index 2ec5f75d8..3c0816ed0 --- a/_saas-integrations/braintree/braintree-latest.md +++ b/_saas-integrations/braintree/v1/braintree-v1.md @@ -1,9 +1,10 @@ --- title: Braintree (v1) -permalink: /integrations/saas/braintree +permalink: /integrations/saas/braintree/v1 keywords: braintree, integration, schema, etl braintree, braintree etl, braintree schema summary: "Connection instructions, replication info, and schema details for Stitch's Braintree integration." layout: singer +input: false key: "braintree-setup" diff --git a/_saas-integrations/braintree/v2/braintree-v2.md b/_saas-integrations/braintree/v2/braintree-v2.md new file mode 100644 index 000000000..dd8ab05ee --- /dev/null +++ b/_saas-integrations/braintree/v2/braintree-v2.md @@ -0,0 +1,149 @@ +--- +title: Braintree (v2) +permalink: /integrations/saas/braintree +keywords: braintree, integration, schema, etl braintree, braintree etl, braintree schema +summary: "Connection instructions, replication info, and schema details for Stitch's Braintree integration." +layout: singer + +key: "braintree-setup" + +# -------------------------- # +# Tap Details # +# -------------------------- # + +name: "braintree" +display_name: "Braintree" + +singer: true +repo-url: https://github.com/singer-io/tap-braintree + +this-version: "2" + +api: | + [{{ integration.display_name }} API](https://developers.braintreepayments.com/start/overview){:target="new"} + +# -------------------------- # +# Stitch Details # +# -------------------------- # + +certified: false # Community-supported integration + +historical: "1 year" +frequency: "30 minutes" +tier: "Standard" +status-url: https://status.braintreepayments.com/ +whitelist-ips: true + +api-type: "platform.braintree" + +table-selection: false +column-selection: false +select-all: false +select-all-reason: | + As this integration doesn't support table or column selection, all available tables and columns are automatically replicated. + +anchor-scheduling: true +cron-scheduling: true + +extraction-logs: true +loading-reports: true + +# -------------------------- # +# Feature Summary # +# -------------------------- # + +feature-summary: | + Stitch's {{ integration.display_name }} integration replicates data using the {{ integration.api | flatify }}. Refer to the [Schema](#schema) section for a list of objects available for replication. + + +# -------------------------- # +# Setup Instructions # +# -------------------------- # + +requirements-list: + - item: "**Access to a Production Braintree account**. Stitch does not currently support connecting to Sandbox accounts." + - item: "**Super Admin and API Access permissions in Braintree.** This is required to create the API access token in Braintree. [You can find info on Braintree user roles and permissions here](https://articles.braintreepayments.com/control-panel/basics/users-roles)." + +requirements-info: | + Additionally, Stitch's Braintree integration will only replicate transactions for the **default merchant account** in your Braintree instance. You can verify the merchant account set as the default by going to **Settings > Processing > Merchant Accounts** when signed into Braintree. + +setup-steps: + - title: "Whitelist Stitch's IP addresses in {{ integration.display_name }}" + anchor: "whitelist-stitch-ips" + content: | + {% capture ip-restriction %} + This step is only required if you [restrict IP access to your {{ integration.display_name }} account](https://articles.braintreepayments.com/reference/security/control-panel-whitelisting). + + If you don't use this feature, [skip to the next section](#retrieve-api-credentials). + {% endcapture %} + + {% include note.html first-line="This step may not be required." content=ip-restriction %} + + {% for substep in step.substeps %} + - [Step 1.{{ forloop.index }}: {{ substep.title }}](#{{ substep.anchor }}) + {% endfor %} + + substeps: + - title: "Verify your Stitch account's data pipeline region" + anchor: "verify-stitch-account-region" + content: | + {% include shared/whitelisting-ips/locate-region-ip-addresses.html %} + + - title: "Whitelist Stitch's IP addresses" + anchor: "whitelist-stitch-ips-braintree" + content: | + 1. Sign into your {{ integration.display_name }} account. + 2. Click **Settings > Security**. + 3. In the **Security Options** page, click **Edit** in the **IP and Hostname Restrictions** section. + 4. In the **IP Address or Hostname** field, paste one of the data pipeline region IP addresses you retrieved in the [previous step](#verify-stitch-account-region). + 5. Check the **Allow API Access** box. + 6. Click **Add Allowed Host**. + 7. Repeat steps 4-6 **for each Stitch IP address for your data pipeline region**. + 8. After all of Stitch's IP addresses have been added, click **Enable Restrictions**. + + - title: "Retrieve your {{ integration.display_name }} API credentials" + anchor: "retrieve-api-credentials" + content: | + 1. If you haven't already, sign into your Braintree account. + 2. Click **Account > My User**. + 3. Scroll down to the **API Keys, Tokenization Keys, Encryption Keys** section and click **View Authorizations**. + 4. In the **API Keys** section, click **Generate New API Key**. + 5. After the key has been generated, click the **View** link in the **Private Key** column. + 6. This will display the **Client Library Key** page, which contains your Braintree API credentials: + + ![Braintree API credentials.]({{ site.baseurl }}/images/integrations/braintree-api-credentials.png) + + Leave the Braintree Client Library Key page open for now - you'll need the **Public Key**, **Private Key**, and **Merchant ID** to complete the setup in Stitch. + + - title: "Add {{ integration.display_name }} as a Stitch data source" + anchor: "add-stitch-data-source" + content: | + {% include integrations/shared-setup/connection-setup.html %} + 4. In the **Merchant ID** field, paste your Braintree Merchant ID. + 5. In the **Public Key** field, paste your Braintree Public Key. + 6. In the **Private Key** field, paste your Braintree Private Key. + - title: "Define the historical replication start date" + anchor: "define-historical-sync" + content: | + {% include integrations/saas/setup/historical-sync.html %} + + - title: "Create a replication schedule" + anchor: "define-rep-frequency" + content: | + {% include integrations/shared-setup/replication-frequency.html %} + + - title: "Set objects to replicate" + anchor: "setting-data-to-replicate" + content: | + {% include integrations/shared-setup/data-selection/object-selection.html %} + +# -------------------------- # +# Table Schemas # +# -------------------------- # + +# Looking for the table schemas & info? +# Each table has a its own .md file in /_integration-schemas/braintree + +--- +{% assign integration = page %} +{% include misc/data-files.html %}