• Resolved maltfield

    (@maltfield)


    Does this plugin support for Stripe Restricted API Keys?

    * https://docs.stripe.com/keys-best-practices#limit-access

    For security reasons, it’s important to me that my server authenticates to Stripe using a Restricted API Key. This would, for example, ensure that if my server is compromised, then the attacker wouldn’t be able to change my Stripe account’s information — such as the payout address (allowing them to steal all my funds).

    Does this plugin support authentication with the Stripe API using Restricted API Keys?

    • This topic was modified 1 year, 4 months ago by maltfield.
Viewing 10 replies - 1 through 10 (of 10 total)
  • Plugin Support Daman from FunnelKit

    (@supportfunnelkit)

    Hi @maltfield,

    We highly recommend using Stripe Connect to set up your payment gateway, as it offers a seamless integration and handles most of the process automatically.

    However, if you prefer, you can manually enter your API keys from the Settings page here https://tinyurl.com/26mxl4wa. Please ensure that your restricted key is entered in the Secret Key field.

    Since this is not the standard process please be sure while creating your API key you provide the necessary permissions for all required resources listed here: https://tinyurl.com/294afvrv. This will help ensure your Stripe gateway functions smoothly.

    Let us know if you have any questions or need assistance.

    Thanks
    Team Funnelkit

    Thread Starter maltfield

    (@maltfield)

    Fantastic news, thanks!

    We highly recommend using Stripe Connect to set up your payment gateway, as it offers a seamless integration and handles most of the process automatically.

    While it’s true that it’s a simper UX, Stripe Connect is less secure. The OAuth flow implemented by Stripe requires your users to leak the OAuth Access Tokens (with read/write access to their Stripe merchant account) to a third party.

    This is why using a Restricted API Key is more secure than using Stripe Connect.

    Since this is not the standard process please be sure while creating your API key you provide the necessary permissions for all required resources listed here: https://tinyurl.com/294afvrv.

    Thanks, but that screenshot doesn’t list all of the permissions. Can you please document the minimum permissions in text in your documentation?

    Edit: if you click on the image, then it does show the full page with all the permissions. But I would still appreciate it if it was typed-out and added to your documentation as a new KB article titled “What are the minimum permissions for Restricted API Keys?”

    Thank you

    • This reply was modified 1 year, 4 months ago by maltfield.
    • This reply was modified 1 year, 4 months ago by maltfield.
    Thread Starter maltfield

    (@maltfield)

    Here’s a transcription of the screenshot showing the minimum permissions required for this plugin’s Restricted API Key:

    <h2>Core</h2>

    Apple Pay Domains: Write
    Balance: Read
    Balance transaction sources: Read
    Balance Transfers: Write
    Test clocks: Unintelligible
    Charges: Write
    Confirmation token: None
    Confirmation token (client): None
    Customers: Write
    Customer session: None
    Disputes: Write
    Events: Read
    Ephemeral keys: None
    Files: Write
    Funding Instructions: None
    Payment Intents: Write
    Payment Methods: Write
    Payment Method Domains: Write
    Payouts: Write
    Products: Write
    Shipping Rates: Write
    Setup Intents: Write
    Sources: Write
    Tokens: None

    <h2>Checkout</h2>
    Checkout: Write

    <h2>Billing</h2>
    Coupons: Write
    Promotion Codes: Write
    Credit notes: Write
    Customer portal: Write
    Invoices: Write
    Prices: Write
    Subscriptions: Write
    Quote: Write
    Tax IDs: Write
    Tax Rates: Write
    Usage Records: Write
    Meters: Write
    Meter Events: Write
    Meter Event Adjustments: Write
    Features: Write
    Entitlements: Read
    Credit grants: Write
    Credit balances: Read
    Alerts: : Write

    <h2>Connect</h2>
    (None for all)

    <h2>Orders</h2>
    Orders: Write
    SKUs: Write

    <h2>Issuing</h2>
    (None for all)

    <h2>Reporting</h2>
    (Read for all)

    <h2>Sigma</h2>
    (None for all)

    <h2>Financial Connections</h2>
    (None for all)

    <h2>Identity</h2>
    (None for all)

    <h2>All webhook</h2>
    (Write for all)

    <h2>Stripe CLI permissions</h2>
    (None for all)

    <h2>Payment Links</h2>
    Payment Links: Write

    <h2>Terminal</h2>
    Configurations: Write
    Locations: Write
    Readers: Write
    Connection Tokens: Write

    <h2>Tax</h2>
    Tax Calculations and Transactions: Write
    Tax Settings and Registrations: Write

    <h2>Radar</h2>
    (None for all)

    <h2>Climate</h2>
    (None for all)

    • This reply was modified 1 year, 4 months ago by maltfield.
    Thread Starter maltfield

    (@maltfield)

    Please also update this page:

    * https://funnelkit.com/docs/stripe-gateway-for-woocommerce/troubleshooting/manually-add-api-keys/

    It’s not very secure to use the standard (non-restricted) API keys because then a compromise of the website would permit the attacker to change the payout address and steal the merchant’s current (and future) funds.

    * https://webdesigneracademy.com/my-stripe-account-was-hacked-and-stripe-said-i-have-to-repay-70k/

    Please update the above article to describe how to setup Restricted API Keys with the minimum permissions, to avoid this from happening to others.

    Thread Starter maltfield

    (@maltfield)

    > https://www.awesomescreenshot.com/image/53883486?key=92b3d62ae0e764bcecd481bd2c46b7c6

    It looks like the awesome screenshot you took is corrupt as the page was scrolling down in your browser.

    Can you please clarify what should be the permission for Core -> Test clocks?

    Thank you

    Thread Starter maltfield

    (@maltfield)

    Are you sure that this plugin requires Write permission to Core -> Payouts?

    * https://docs.stripe.com/api/payouts/create
    * https://webdesigneracademy.com/my-stripe-account-was-hacked-and-stripe-said-i-have-to-repay-70k/

    That seems like the most important permission to be None, no?

    • This reply was modified 1 year, 4 months ago by maltfield.
    • This reply was modified 1 year, 4 months ago by maltfield.
    Thread Starter maltfield

    (@maltfield)

    Plugin Support Daman from FunnelKit

    (@supportfunnelkit)

    Hi @maltfield,

    You can keep payouts, test-clocks to none. 

    Updated the permissions below.

    <h2>Core</h2>

    Apple Pay Domains: Write

    Balance: Read

    Balance transaction sources: Read

    Balance Transfers: Write

    Test clocks: None

    Charges: Write

    Confirmation token: None

    Confirmation token (client): None

    Customers: Write

    Customer session: None

    Disputes: Write

    Events: Read

    Ephemeral keys: None

    Files: Write

    Funding Instructions: None

    Payment Intents: Write

    Payment Methods: Write

    Payment Method Domains: Write

    Payouts: None

    Products: None

    Shipping Rates: Write

    Setup Intents: Write

    Sources: Write

    Tokens: None

    <h2>Checkout</h2>

    Checkout: Write

    <h2>Billing</h2>

    Coupons: Write

    Promotion Codes: Write

    Credit notes: Write

    Customer portal: Write

    Invoices: Write

    Prices: Write

    Subscriptions: Write

    Quote: Write

    Tax IDs: Write

    Tax Rates: Write

    Usage Records: Write

    Meters: Write

    Meter Events: Write

    Meter Event Adjustments: Write

    Features: Write

    Entitlements: Read

    Credit grants: Write

    Credit balances: Read

    Alerts: : Write

    <h2>Connect</h2>

    (None for all)

    <h2>Orders</h2>

    Orders: Write

    SKUs: Write

    <h2>Issuing</h2>

    (None for all)

    <h2>Reporting</h2>

    (Read for all)

    <h2>Sigma</h2>

    (None for all)

    <h2>Financial Connections</h2>

    (None for all)

    <h2>Identity</h2>

    (None for all)

    <h2>All webhook</h2>

    (Write for all)

    <h2>Stripe CLI permissions</h2>

    (None for all)

    <h2>Payment Links</h2>

    Payment Links: Write

    <h2>Terminal</h2>

    Configurations: Write

    Locations: Write

    Readers: Write

    Connection Tokens: Write

    <h2>Tax</h2>

    Tax Calculations and Transactions: Write

    Tax Settings and Registrations: Write

    <h2>Radar</h2>

    (None for all)

    <h2>Climate</h2>

    (None for all)

     if you want for swifter response, please raise a support ticket here

    Thanks
    Team Funnelkit

    Plugin Support Daman from FunnelKit

    (@supportfunnelkit)

    Hi @maltfield,

    Thanks for your follow-up queries.

    We haven’t heard back. So marking this as resolved.

    Feel free to create a new thread for any other query.

    Thanks
    Team Funnelkit

    Thread Starter maltfield

    (@maltfield)

Viewing 10 replies - 1 through 10 (of 10 total)

The topic ‘Support for Stripe Restricted API Keys?’ is closed to new replies.