Square payment
Square payment provider for Medusa
Medusa Square Payment
What is it?
Medusa Square Payment is a basic integration of payment provider for Square Payment.
Installation
- Install plugin by adding to your :
Warning
..."@rsc-labs/medusa-square-payment": "0.0.1" // or other available version...
and execute install, e.g. .
- Add plugin to your (Note - please notice that you need to add it to payment plugin):
...plugins: [{resolve: "@rsc-labs/medusa-square-payment",options: {token: <app-token>,environment: <env-definition>,},}],modules: [{resolve: "@medusajs/medusa/payment",options: {providers: [{resolve: "@rsc-labs/medusa-square-payment/providers/square-payment",id: "square-payment",options: {token: <app-token>,environment: <env-definition>,},}]},},...
Overview
The basic implementation of Square payment provider gives the possibility to make a payment in your storefront.
Configuration
Plugin uses 1 required parameter and 1 optional:
- - required parameter which you can find in your Square Developer Dashboard
- - optional parameter - it can be set to , or not set at all. You can use it to test with your environment.
After above configuration, you can then add the payment provider to your reqion.
Storefront
We recommend using package on your storefront as it simplifies the implementation a lot. Here is the example of using credit card as payment:
import { PaymentForm, CreditCard as SquareCreditCard } from 'react-square-web-payments-sdk';...const handleSquareSubmit = async (token: string) => {setIsLoading(true)try {if (!activeSession) {await initiatePaymentSession(cart,{provider_id: selectedPaymentMethod,data: {cartId: cart?.id,token: token}})}return router.push(pathname + "?" + createQueryString("step", "review"),{scroll: false,})} catch (err: any) {setError(err.message)} finally {setIsLoading(false)}}{isSquare(selectedPaymentMethod) &&<div><PaymentFormapplicationId="<application-id>"cardTokenizeResponseReceived={(token, verifiedBuyer) => {handleSquareSubmit(token.token!);}}locationId='XXXXXXXXXX'><SquareCreditCard/></PaymentForm></div>}
- you can retrieve it from your Square Developer Dashboard.
Limitations
Plugin does not support refunds and cancels. It has been tested using only credit card - when authorized, it captures money automatically.
License
MIT
© 2025 RSC https://rsoftcon.com/