
com.squareup.square.legacy.SquareClient Maven / Gradle / Ivy
package com.squareup.square.legacy;
import com.squareup.square.legacy.api.ApplePayApi;
import com.squareup.square.legacy.api.BankAccountsApi;
import com.squareup.square.legacy.api.BookingCustomAttributesApi;
import com.squareup.square.legacy.api.BookingsApi;
import com.squareup.square.legacy.api.CardsApi;
import com.squareup.square.legacy.api.CashDrawersApi;
import com.squareup.square.legacy.api.CatalogApi;
import com.squareup.square.legacy.api.CheckoutApi;
import com.squareup.square.legacy.api.CustomerCustomAttributesApi;
import com.squareup.square.legacy.api.CustomerGroupsApi;
import com.squareup.square.legacy.api.CustomerSegmentsApi;
import com.squareup.square.legacy.api.CustomersApi;
import com.squareup.square.legacy.api.DefaultApplePayApi;
import com.squareup.square.legacy.api.DefaultBankAccountsApi;
import com.squareup.square.legacy.api.DefaultBookingCustomAttributesApi;
import com.squareup.square.legacy.api.DefaultBookingsApi;
import com.squareup.square.legacy.api.DefaultCardsApi;
import com.squareup.square.legacy.api.DefaultCashDrawersApi;
import com.squareup.square.legacy.api.DefaultCatalogApi;
import com.squareup.square.legacy.api.DefaultCheckoutApi;
import com.squareup.square.legacy.api.DefaultCustomerCustomAttributesApi;
import com.squareup.square.legacy.api.DefaultCustomerGroupsApi;
import com.squareup.square.legacy.api.DefaultCustomerSegmentsApi;
import com.squareup.square.legacy.api.DefaultCustomersApi;
import com.squareup.square.legacy.api.DefaultDevicesApi;
import com.squareup.square.legacy.api.DefaultDisputesApi;
import com.squareup.square.legacy.api.DefaultEmployeesApi;
import com.squareup.square.legacy.api.DefaultEventsApi;
import com.squareup.square.legacy.api.DefaultGiftCardActivitiesApi;
import com.squareup.square.legacy.api.DefaultGiftCardsApi;
import com.squareup.square.legacy.api.DefaultInventoryApi;
import com.squareup.square.legacy.api.DefaultInvoicesApi;
import com.squareup.square.legacy.api.DefaultLaborApi;
import com.squareup.square.legacy.api.DefaultLocationCustomAttributesApi;
import com.squareup.square.legacy.api.DefaultLocationsApi;
import com.squareup.square.legacy.api.DefaultLoyaltyApi;
import com.squareup.square.legacy.api.DefaultMerchantCustomAttributesApi;
import com.squareup.square.legacy.api.DefaultMerchantsApi;
import com.squareup.square.legacy.api.DefaultMobileAuthorizationApi;
import com.squareup.square.legacy.api.DefaultOAuthApi;
import com.squareup.square.legacy.api.DefaultOrderCustomAttributesApi;
import com.squareup.square.legacy.api.DefaultOrdersApi;
import com.squareup.square.legacy.api.DefaultPaymentsApi;
import com.squareup.square.legacy.api.DefaultPayoutsApi;
import com.squareup.square.legacy.api.DefaultRefundsApi;
import com.squareup.square.legacy.api.DefaultSitesApi;
import com.squareup.square.legacy.api.DefaultSnippetsApi;
import com.squareup.square.legacy.api.DefaultSubscriptionsApi;
import com.squareup.square.legacy.api.DefaultTeamApi;
import com.squareup.square.legacy.api.DefaultTerminalApi;
import com.squareup.square.legacy.api.DefaultTransactionsApi;
import com.squareup.square.legacy.api.DefaultV1TransactionsApi;
import com.squareup.square.legacy.api.DefaultVendorsApi;
import com.squareup.square.legacy.api.DefaultWebhookSubscriptionsApi;
import com.squareup.square.legacy.api.DevicesApi;
import com.squareup.square.legacy.api.DisputesApi;
import com.squareup.square.legacy.api.EmployeesApi;
import com.squareup.square.legacy.api.EventsApi;
import com.squareup.square.legacy.api.GiftCardActivitiesApi;
import com.squareup.square.legacy.api.GiftCardsApi;
import com.squareup.square.legacy.api.InventoryApi;
import com.squareup.square.legacy.api.InvoicesApi;
import com.squareup.square.legacy.api.LaborApi;
import com.squareup.square.legacy.api.LocationCustomAttributesApi;
import com.squareup.square.legacy.api.LocationsApi;
import com.squareup.square.legacy.api.LoyaltyApi;
import com.squareup.square.legacy.api.MerchantCustomAttributesApi;
import com.squareup.square.legacy.api.MerchantsApi;
import com.squareup.square.legacy.api.MobileAuthorizationApi;
import com.squareup.square.legacy.api.OAuthApi;
import com.squareup.square.legacy.api.OrderCustomAttributesApi;
import com.squareup.square.legacy.api.OrdersApi;
import com.squareup.square.legacy.api.PaymentsApi;
import com.squareup.square.legacy.api.PayoutsApi;
import com.squareup.square.legacy.api.RefundsApi;
import com.squareup.square.legacy.api.SitesApi;
import com.squareup.square.legacy.api.SnippetsApi;
import com.squareup.square.legacy.api.SubscriptionsApi;
import com.squareup.square.legacy.api.TeamApi;
import com.squareup.square.legacy.api.TerminalApi;
import com.squareup.square.legacy.api.TransactionsApi;
import com.squareup.square.legacy.api.V1TransactionsApi;
import com.squareup.square.legacy.api.VendorsApi;
import com.squareup.square.legacy.api.WebhookSubscriptionsApi;
import com.squareup.square.legacy.authentication.BearerAuthManager;
import com.squareup.square.legacy.authentication.BearerAuthModel;
import com.squareup.square.legacy.http.Headers;
import com.squareup.square.legacy.http.client.HttpCallback;
import com.squareup.square.legacy.http.client.HttpClientConfiguration;
import com.squareup.square.legacy.http.client.ReadonlyHttpClientConfiguration;
import io.apimatic.core.GlobalConfiguration;
import io.apimatic.coreinterfaces.authentication.Authentication;
import io.apimatic.coreinterfaces.compatibility.CompatibilityFactory;
import io.apimatic.coreinterfaces.http.HttpClient;
import io.apimatic.okhttpclient.adapter.OkClient;
import java.util.AbstractMap.SimpleEntry;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Supplier;
/**
* Gateway class for the library.
* This class acts as a factory for Apis.
* It holds the state of the SDK.
*/
public final class SquareClient implements SquareClientInterface {
/**
* Private store for controllers.
*/
private MobileAuthorizationApi mobileAuthorization;
private OAuthApi oAuth;
private V1TransactionsApi v1Transactions;
private ApplePayApi applePay;
private BankAccountsApi bankAccounts;
private BookingsApi bookings;
private BookingCustomAttributesApi bookingCustomAttributes;
private CardsApi cards;
private CashDrawersApi cashDrawers;
private CatalogApi catalog;
private CustomersApi customers;
private CustomerCustomAttributesApi customerCustomAttributes;
private CustomerGroupsApi customerGroups;
private CustomerSegmentsApi customerSegments;
private DevicesApi devices;
private DisputesApi disputes;
private EmployeesApi employees;
private EventsApi events;
private GiftCardsApi giftCards;
private GiftCardActivitiesApi giftCardActivities;
private InventoryApi inventory;
private InvoicesApi invoices;
private LaborApi labor;
private LocationsApi locations;
private LocationCustomAttributesApi locationCustomAttributes;
private CheckoutApi checkout;
private TransactionsApi transactions;
private LoyaltyApi loyalty;
private MerchantsApi merchants;
private MerchantCustomAttributesApi merchantCustomAttributes;
private OrdersApi orders;
private OrderCustomAttributesApi orderCustomAttributes;
private PaymentsApi payments;
private PayoutsApi payouts;
private RefundsApi refunds;
private SitesApi sites;
private SnippetsApi snippets;
private SubscriptionsApi subscriptions;
private TeamApi team;
private TerminalApi terminal;
private VendorsApi vendors;
private WebhookSubscriptionsApi webhookSubscriptions;
private static final CompatibilityFactory compatibilityFactory = new CompatibilityFactoryImpl();
private static String userAgent =
"Square-Java-SDK/44.0.0.20250319 ({api-version}) {engine}/{engine-version} ({os-info}) {detail}";
/**
* Current API environment.
*/
private final Environment environment;
/**
* Sets the base URL requests are made to. Defaults to `https://connect.squareup.com`
*/
private final String customUrl;
/**
* Square Connect API versions.
*/
private final String squareVersion;
/**
* The HTTP Client instance to use for making HTTP requests.
*/
private final HttpClient httpClient;
/**
* Http Client Configuration instance.
*/
private final ReadonlyHttpClientConfiguration httpClientConfig;
/**
* Additional headers to add to each API request.
*/
private final Headers additionalHeaders;
/**
* Additional detail which can be appended with User-Agent header.
*/
private final String userAgentDetail;
/**
* BearerAuthManager.
*/
private BearerAuthManager bearerAuthManager;
/**
* The instance of BearerAuthModel.
*/
private BearerAuthModel bearerAuthModel;
/**
* Map of authentication Managers.
*/
private Map authentications = new HashMap();
/**
* Callback to be called before and after the HTTP call for an endpoint is made.
*/
private final HttpCallback httpCallback;
private SquareClient(
Environment environment,
String customUrl,
String squareVersion,
HttpClient httpClient,
ReadonlyHttpClientConfiguration httpClientConfig,
Headers additionalHeaders,
String userAgentDetail,
BearerAuthModel bearerAuthModel,
HttpCallback httpCallback) {
this.environment = environment;
this.customUrl = customUrl;
this.squareVersion = squareVersion;
this.httpClient = httpClient;
this.httpClientConfig = httpClientConfig;
this.additionalHeaders = additionalHeaders;
this.userAgentDetail = userAgentDetail;
this.httpCallback = httpCallback;
Map userAgentConfig = new HashMap<>();
userAgentConfig.put("{api-version}", squareVersion != null ? squareVersion : "");
userAgentConfig.put("{detail}", userAgentDetail != null ? ApiHelper.tryUrlEncode(userAgentDetail, true) : "");
this.bearerAuthModel = bearerAuthModel;
this.bearerAuthManager = new BearerAuthManager(bearerAuthModel);
this.authentications.put("global", bearerAuthManager);
GlobalConfiguration globalConfig = new GlobalConfiguration.Builder()
.httpClient(httpClient)
.baseUri(server -> getBaseUri(server))
.compatibilityFactory(compatibilityFactory)
.authentication(this.authentications)
.callback(httpCallback)
.userAgent(userAgent)
.userAgentConfig(userAgentConfig)
.additionalHeaders(additionalHeaders)
.globalHeader("Square-Version", squareVersion)
.build();
mobileAuthorization = new DefaultMobileAuthorizationApi(globalConfig);
oAuth = new DefaultOAuthApi(globalConfig);
v1Transactions = new DefaultV1TransactionsApi(globalConfig);
applePay = new DefaultApplePayApi(globalConfig);
bankAccounts = new DefaultBankAccountsApi(globalConfig);
bookings = new DefaultBookingsApi(globalConfig);
bookingCustomAttributes = new DefaultBookingCustomAttributesApi(globalConfig);
cards = new DefaultCardsApi(globalConfig);
cashDrawers = new DefaultCashDrawersApi(globalConfig);
catalog = new DefaultCatalogApi(globalConfig);
customers = new DefaultCustomersApi(globalConfig);
customerCustomAttributes = new DefaultCustomerCustomAttributesApi(globalConfig);
customerGroups = new DefaultCustomerGroupsApi(globalConfig);
customerSegments = new DefaultCustomerSegmentsApi(globalConfig);
devices = new DefaultDevicesApi(globalConfig);
disputes = new DefaultDisputesApi(globalConfig);
employees = new DefaultEmployeesApi(globalConfig);
events = new DefaultEventsApi(globalConfig);
giftCards = new DefaultGiftCardsApi(globalConfig);
giftCardActivities = new DefaultGiftCardActivitiesApi(globalConfig);
inventory = new DefaultInventoryApi(globalConfig);
invoices = new DefaultInvoicesApi(globalConfig);
labor = new DefaultLaborApi(globalConfig);
locations = new DefaultLocationsApi(globalConfig);
locationCustomAttributes = new DefaultLocationCustomAttributesApi(globalConfig);
checkout = new DefaultCheckoutApi(globalConfig);
transactions = new DefaultTransactionsApi(globalConfig);
loyalty = new DefaultLoyaltyApi(globalConfig);
merchants = new DefaultMerchantsApi(globalConfig);
merchantCustomAttributes = new DefaultMerchantCustomAttributesApi(globalConfig);
orders = new DefaultOrdersApi(globalConfig);
orderCustomAttributes = new DefaultOrderCustomAttributesApi(globalConfig);
payments = new DefaultPaymentsApi(globalConfig);
payouts = new DefaultPayoutsApi(globalConfig);
refunds = new DefaultRefundsApi(globalConfig);
sites = new DefaultSitesApi(globalConfig);
snippets = new DefaultSnippetsApi(globalConfig);
subscriptions = new DefaultSubscriptionsApi(globalConfig);
team = new DefaultTeamApi(globalConfig);
terminal = new DefaultTerminalApi(globalConfig);
vendors = new DefaultVendorsApi(globalConfig);
webhookSubscriptions = new DefaultWebhookSubscriptionsApi(globalConfig);
}
/**
* Shutdown the underlying HttpClient instance.
*/
public static void shutdown() {
OkClient.shutdown();
}
/**
* Get the instance of MobileAuthorizationApi.
* @return mobileAuthorization
*/
public MobileAuthorizationApi getMobileAuthorizationApi() {
return mobileAuthorization;
}
/**
* Get the instance of OAuthApi.
* @return oAuth
*/
public OAuthApi getOAuthApi() {
return oAuth;
}
/**
* Get the instance of V1TransactionsApi.
* @return v1Transactions
*/
public V1TransactionsApi getV1TransactionsApi() {
return v1Transactions;
}
/**
* Get the instance of ApplePayApi.
* @return applePay
*/
public ApplePayApi getApplePayApi() {
return applePay;
}
/**
* Get the instance of BankAccountsApi.
* @return bankAccounts
*/
public BankAccountsApi getBankAccountsApi() {
return bankAccounts;
}
/**
* Get the instance of BookingsApi.
* @return bookings
*/
public BookingsApi getBookingsApi() {
return bookings;
}
/**
* Get the instance of BookingCustomAttributesApi.
* @return bookingCustomAttributes
*/
public BookingCustomAttributesApi getBookingCustomAttributesApi() {
return bookingCustomAttributes;
}
/**
* Get the instance of CardsApi.
* @return cards
*/
public CardsApi getCardsApi() {
return cards;
}
/**
* Get the instance of CashDrawersApi.
* @return cashDrawers
*/
public CashDrawersApi getCashDrawersApi() {
return cashDrawers;
}
/**
* Get the instance of CatalogApi.
* @return catalog
*/
public CatalogApi getCatalogApi() {
return catalog;
}
/**
* Get the instance of CustomersApi.
* @return customers
*/
public CustomersApi getCustomersApi() {
return customers;
}
/**
* Get the instance of CustomerCustomAttributesApi.
* @return customerCustomAttributes
*/
public CustomerCustomAttributesApi getCustomerCustomAttributesApi() {
return customerCustomAttributes;
}
/**
* Get the instance of CustomerGroupsApi.
* @return customerGroups
*/
public CustomerGroupsApi getCustomerGroupsApi() {
return customerGroups;
}
/**
* Get the instance of CustomerSegmentsApi.
* @return customerSegments
*/
public CustomerSegmentsApi getCustomerSegmentsApi() {
return customerSegments;
}
/**
* Get the instance of DevicesApi.
* @return devices
*/
public DevicesApi getDevicesApi() {
return devices;
}
/**
* Get the instance of DisputesApi.
* @return disputes
*/
public DisputesApi getDisputesApi() {
return disputes;
}
/**
* Get the instance of EmployeesApi.
* @return employees
*/
public EmployeesApi getEmployeesApi() {
return employees;
}
/**
* Get the instance of EventsApi.
* @return events
*/
public EventsApi getEventsApi() {
return events;
}
/**
* Get the instance of GiftCardsApi.
* @return giftCards
*/
public GiftCardsApi getGiftCardsApi() {
return giftCards;
}
/**
* Get the instance of GiftCardActivitiesApi.
* @return giftCardActivities
*/
public GiftCardActivitiesApi getGiftCardActivitiesApi() {
return giftCardActivities;
}
/**
* Get the instance of InventoryApi.
* @return inventory
*/
public InventoryApi getInventoryApi() {
return inventory;
}
/**
* Get the instance of InvoicesApi.
* @return invoices
*/
public InvoicesApi getInvoicesApi() {
return invoices;
}
/**
* Get the instance of LaborApi.
* @return labor
*/
public LaborApi getLaborApi() {
return labor;
}
/**
* Get the instance of LocationsApi.
* @return locations
*/
public LocationsApi getLocationsApi() {
return locations;
}
/**
* Get the instance of LocationCustomAttributesApi.
* @return locationCustomAttributes
*/
public LocationCustomAttributesApi getLocationCustomAttributesApi() {
return locationCustomAttributes;
}
/**
* Get the instance of CheckoutApi.
* @return checkout
*/
public CheckoutApi getCheckoutApi() {
return checkout;
}
/**
* Get the instance of TransactionsApi.
* @return transactions
*/
public TransactionsApi getTransactionsApi() {
return transactions;
}
/**
* Get the instance of LoyaltyApi.
* @return loyalty
*/
public LoyaltyApi getLoyaltyApi() {
return loyalty;
}
/**
* Get the instance of MerchantsApi.
* @return merchants
*/
public MerchantsApi getMerchantsApi() {
return merchants;
}
/**
* Get the instance of MerchantCustomAttributesApi.
* @return merchantCustomAttributes
*/
public MerchantCustomAttributesApi getMerchantCustomAttributesApi() {
return merchantCustomAttributes;
}
/**
* Get the instance of OrdersApi.
* @return orders
*/
public OrdersApi getOrdersApi() {
return orders;
}
/**
* Get the instance of OrderCustomAttributesApi.
* @return orderCustomAttributes
*/
public OrderCustomAttributesApi getOrderCustomAttributesApi() {
return orderCustomAttributes;
}
/**
* Get the instance of PaymentsApi.
* @return payments
*/
public PaymentsApi getPaymentsApi() {
return payments;
}
/**
* Get the instance of PayoutsApi.
* @return payouts
*/
public PayoutsApi getPayoutsApi() {
return payouts;
}
/**
* Get the instance of RefundsApi.
* @return refunds
*/
public RefundsApi getRefundsApi() {
return refunds;
}
/**
* Get the instance of SitesApi.
* @return sites
*/
public SitesApi getSitesApi() {
return sites;
}
/**
* Get the instance of SnippetsApi.
* @return snippets
*/
public SnippetsApi getSnippetsApi() {
return snippets;
}
/**
* Get the instance of SubscriptionsApi.
* @return subscriptions
*/
public SubscriptionsApi getSubscriptionsApi() {
return subscriptions;
}
/**
* Get the instance of TeamApi.
* @return team
*/
public TeamApi getTeamApi() {
return team;
}
/**
* Get the instance of TerminalApi.
* @return terminal
*/
public TerminalApi getTerminalApi() {
return terminal;
}
/**
* Get the instance of VendorsApi.
* @return vendors
*/
public VendorsApi getVendorsApi() {
return vendors;
}
/**
* Get the instance of WebhookSubscriptionsApi.
* @return webhookSubscriptions
*/
public WebhookSubscriptionsApi getWebhookSubscriptionsApi() {
return webhookSubscriptions;
}
/**
* Current API environment.
* @return environment
*/
public Environment getEnvironment() {
return environment;
}
/**
* Sets the base URL requests are made to. Defaults to `https://connect.squareup.com`
* @return customUrl
*/
public String getCustomUrl() {
return customUrl;
}
/**
* Square Connect API versions.
* @return squareVersion
*/
public String getSquareVersion() {
return squareVersion;
}
/**
* The HTTP Client instance to use for making HTTP requests.
* @return httpClient
*/
private HttpClient getHttpClient() {
return httpClient;
}
/**
* Http Client Configuration instance.
* @return httpClientConfig
*/
public ReadonlyHttpClientConfiguration getHttpClientConfig() {
return httpClientConfig;
}
/**
* Additional headers to add to each API request.
* @return a copy of additionalHeaders
*/
public Headers getAdditionalHeaders() {
return new Headers(additionalHeaders);
}
/**
* Additional detail which can be appended with User-Agent header.
* @return userAgentDetail
*/
public String getUserAgentDetail() {
return userAgentDetail;
}
/**
* The credentials to use with BearerAuth.
* @return bearerAuthCredentials
*/
public BearerAuthCredentials getBearerAuthCredentials() {
return bearerAuthManager;
}
/**
* The auth credential model for BearerAuth.
* @return the instance of BearerAuthModel
*/
public BearerAuthModel getBearerAuthModel() {
return bearerAuthModel;
}
/**
* OAuth 2.0 Access Token.
* @return accessToken
*/
public String getAccessToken() {
return getBearerAuthCredentials().getAccessToken();
}
/**
* Current SDK Version.
* @return sdkVersion
*/
public String getSdkVersion() {
return "44.0.0.20250319";
}
/**
* The timeout to use for making HTTP requests.
* @deprecated This method will be removed in a future version. Use
* {@link #getHttpClientConfig()} instead.
*
* @return timeout
*/
@Deprecated
public long timeout() {
return httpClientConfig.getTimeout();
}
/**
* Get base URI by current environment.
* @param server Server for which to get the base URI
* @return Processed base URI
*/
public String getBaseUri(Server server) {
Map> parameters = new HashMap<>();
parameters.put("custom_url", new SimpleEntry
© 2015 - 2025 Weber Informatics LLC | Privacy Policy