Java client library for the Square Connect v2 API

Overview

Square logo

Square Connect Java SDK - RETIRED


Maven Central Apache-2 license

NOTICE: Square Connect Java SDK retired

The Square Connect Java SDK is retired (EOL) as of 2019-12-17 and will no longer receive bug fixes or product updates. To continue receiving API and SDK improvements, please follow the instructions below to migrate to the new Square Java SDK.

The old Connect SDK documentation is available under the /docs folder.





Migrate to the Square Java SDK

Follow the instructions below to migrate your apps from the deprecated com.squareup.connect library to the new com.squareup.square library.

Update your project

Update the dependency in your Maven or Gradle project.

Update Maven

Update the Square dependency in the POM for your project:

<dependency>
    <groupId>com.squareup</groupId>
    <artifactId>square</artifactId>
    <version>4.0.0.20191217</version>
    <scope>compile</scope>
</dependency>

Update Gradle

Replace the com.squareup.connect dependency in the build file of your project:

implementation "com.squareup:square:4.0.0.20191217"

Update your code

  1. Change all instances of import com.squareup.connect' to import com.squareup.square.
  2. Update client instantiation to follow the method outlined below.
  3. Use thenAccept and exceptionally rather than try and catch for flow control.

To simplify your code, we also recommend that you use method chaining to access APIs instead of explicitly instantiating multiple clients.

Client instantiation

import com.squareup.square.SquareClient;
import com.squareup.square.Environment;

SquareClient square = new SquareClient.Builder()
    .environment(Environment.SANDBOX)
    .accessToken("YOUR_SANDBOX_ACCESS_TOKEN")
    .build();

Accessing response data

Using listLocations as an example

square.getLocationsApi().listLocationsAsync().thenAccept(result -> {
    // Business logic
    }).exceptionally(exception -> {
    // Exception handling
    return null;
});



Example code migration

As a specific example, consider the code used to create a new customer profile with the following CreateCustomerRequest object:

Address bodyAddress = new Address.Builder()
    .addressLine1("500 Electric Ave")
    .addressLine2("Suite 600")
    .locality("New York")
    .administrativeDistrictLevel1("NY")
    .postalCode("10003")
    .country("US")
    .build();

CreateCustomerRequest body = new CreateCustomerRequest.Builder()
    .givenName("Amelia")
    .familyName("Earhart")
    .emailAddress("[email protected]")
    .address(bodyAddress)
    .phoneNumber("1-212-555-4240")
    .referenceId("YOUR_REFERENCE_ID")
    .note("a customer")
    .build();

With the deprecated squareup.connect library, this is how you instantiate a client for the Customers API, format the request, and call the endpoint:

ApiClient defaultClient = Configuration.getDefaultApiClient();
CustomersApi customersApi = new CustomersApi();

try {
    CreateCustomerResponse result = customersApi.createCustomer(body);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling CustomersApi.createCustomer");
    e.printStackTrace();
}

Now consider equivalent code using the new squareup.square library:

// Instantiate the client
SquareClient square = new SquareClient.Builder()
    .environment(Environment.SANDBOX)
    .accessToken("YOUR_SANDBOX_ACCESS_TOKEN")
    .build();

// Call the endpoint
square.getCustomersApi().createCustomerAsync(body).thenAccept(result -> {
    System.out.println("Successfully created customer with id:"+ result.getCustomer().getId());
}).exceptionally(e -> {
    System.err.println("Exception when calling CustomersApi.createCustomer");
    e.printStackTrace();
    return null;
});

That's it!

What was once a multi-object process can be handled asynchronously with a single client. Migrating to the com.squareup.square library reduces boilerplate and lets you focus on the parts of your code that really matter.




Ask the community

Please join us in our Square developer community if you have any questions!

Issues
  • i keep on getting an out of state error when ever i run the copy and paste example code

    i keep on getting an out of state error when ever i run the copy and paste example code

    I have changed the setAccessToken to my token on my dev portal. Sorry very new to this. Is there something i need to replace "oauth2" with?

    opened by noname1997 6
  • Employee API : null data returns.

    Employee API : null data returns.

    while using employee api no data returns,

            V1EmployeesApi roles = new V1EmployeesApi();
            CompleteResponse<List<V1EmployeeRole>> employeeRolesResponse;
            List<V1EmployeeRole> employeeRolesList = new ArrayList<>();
            String batchToken = null;
            do {
                employeeRolesResponse = roles.listEmployeeRolesWithHttpInfo(SortOrder.ASC.name(), 100, batchToken);
                employeeRolesList.addAll(employeeRolesResponse.getData());
                batchToken = employeeRolesResponse.getBatchToken();
            } while (batchToken != null);
    

    I don't know if I am doing something wrong. Thank you.

    opened by purvathakkar 4
  • missing location status

    missing location status

    missing location status (active, inactive)

    opened by matthewlent 3
  • Issue using Api in Android

    Issue using Api in Android

    i add sqaure point of sale api in android from this compile 'com.squareup:connect:2.2.0' and use Retrolamda with Java 8 butt i got this error on run .

    com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: javax/inject/Inject.class

    opened by kashifiqbal112 3
  • issue when build

    issue when build

    Results :

    Tests in error: com.squareup.connect.api.CatalogApiTest: .\travis-ci\accounts.json com.squareup.connect.api.CheckoutApiTest: .\travis-ci\accounts.json com.squareup.connect.api.CustomersApiTest: .\travis-ci\accounts.json com.squareup.connect.api.LocationsApiTest: .\travis-ci\accounts.json com.squareup.connect.api.ReportingApiTest: .\travis-ci\accounts.json com.squareup.connect.api.TransactionsApiTest: .\travis-ci\accounts.json

    Tests run: 17, Failures: 0, Errors: 6, Skipped: 9

    [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 12.389 s [INFO] Finished at: 2019-02-28T17:26:03+07:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project connect: There are test failures. [ERROR] [ERROR] Please refer to D:\data\mydoforms\connect-java-sdk-master\target\surefire-reports for the individual test results. [ERROR] -> [Help 1] com.squareup.connect.api.LocationsApiTest.txt com.squareup.connect.api.CustomersApiTest.txt com.squareup.connect.api.ReportingApiTest.txt com.squareup.connect.api.TransactionsApiTest.txt com.squareup.connect.api.CheckoutApiTest.txt com.squareup.connect.api.CatalogApiTest.txt

    opened by hqkhanh9600196 2
  • Timecard events throws exception.

    Timecard events throws exception.

            V1EmployeesApi v1EmployeesApi  = new V1EmployeesApi();
           V1EmployeesApi v1EmployeesApi  = new V1EmployeesApi();
            List<V1TimecardEvent> timeCardEvents = new ArrayList<>();
            for(String id : timeCardIds){
                timeCardEvents.addAll(v1EmployeesApi.listTimecardEvents(id));
            }
    

    I have timecard Ids , this used to work with earlier versions. I have recently updated SDK.

    Now it gives me this error.

    java.lang.IllegalStateException: The template variable 'timecard_id' has no value
    	at org.glassfish.jersey.client.JerseyWebTarget.getUri(JerseyWebTarget.java:135)
    	at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:215)
    	at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:60)
    	at com.squareup.connect.ApiClient.invokeAPI(ApiClient.java:649)
    

    Thank you :)

    opened by purvathakkar 2
  • Latest SDK version does not exist on Maven central

    Latest SDK version does not exist on Maven central

    The version (2.20190814.1) you are referencing in the docs is not on maven central. When do you think you'll upload it?

    Thank you!

    bug 
    opened by wuiidl 1
  • Issue with create Order for OrderApi for sandbox.

    Issue with create Order for OrderApi for sandbox.

    I am trying to create order with sandbox , simply copy pasted code from Documentation.

    {"errors":[{"category":"INVALID_REQUEST_ERROR","code":"NOT_FOUND","detail":"API endpoint for URL path /v2/locations/orders and HTTP method GET is not found."}]}

    opened by purvathakkar 1
  • account.json

    account.json

    hi, I am new to java. I try to run the test case it shows the error there is no account.json. but that file location there is another file that is account.enc which is encrypted. so I need the structure of the account so I can replace my key to that account.json plz any one send that JSON

    opened by sathish-27 1
  • Bump jackson-version from 2.9.10 to 2.12.0

    Bump jackson-version from 2.9.10 to 2.12.0

    Bumps jackson-version from 2.9.10 to 2.12.0. Updates jackson-core from 2.9.10 to 2.12.0

    Commits
    • ddd8d4e [maven-release-plugin] prepare release jackson-core-2.12.0
    • 9d3c620 Prepare for 2.12.0 release
    • 91f211e Add missing @Override annotations (compiler warning clean up)
    • 9f25b35 Addendum to #653: make related constants public too
    • ac00174 back to them snapshots
    • d77d681 [maven-release-plugin] prepare for next development iteration
    • 33201ac [maven-release-plugin] prepare release jackson-core-2.12.0-rc2
    • 1073c15 Prepare for 2.12.0-rc2 release
    • 67c48f7 Fix #653
    • 9f2ca7f warnings cleanup
    • Additional commits viewable in compare view

    Updates jackson-annotations from 2.9.10 to 2.12.0

    Commits

    Updates jackson-databind from 2.9.10 to 2.12.0

    Commits

    Updates jackson-datatype-jsr310 from 2.9.10 to 2.12.0

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump jackson-version from 2.9.10 to 2.12.1

    Bump jackson-version from 2.9.10 to 2.12.1

    Bumps jackson-version from 2.9.10 to 2.12.1. Updates jackson-core from 2.9.10 to 2.12.1

    Commits

    Updates jackson-annotations from 2.9.10 to 2.12.1

    Commits

    Updates jackson-databind from 2.9.10 to 2.12.1

    Commits

    Updates jackson-datatype-jsr310 from 2.9.10 to 2.12.1

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump junit from 4.12 to 4.13.1

    Bump junit from 4.12 to 4.13.1

    Bumps junit from 4.12 to 4.13.1.

    Release notes

    Sourced from junit's releases.

    JUnit 4.13.1

    Please refer to the release notes for details.

    JUnit 4.13

    Please refer to the release notes for details.

    JUnit 4.13 RC 2

    Please refer to the release notes for details.

    JUnit 4.13 RC 1

    Please refer to the release notes for details.

    JUnit 4.13 Beta 3

    Please refer to the release notes for details.

    JUnit 4.13 Beta 2

    Please refer to the release notes for details.

    JUnit 4.13 Beta 1

    Please refer to the release notes for details.

    Commits
    • 1b683f4 [maven-release-plugin] prepare release r4.13.1
    • ce6ce3a Draft 4.13.1 release notes
    • c29dd82 Change version to 4.13.1-SNAPSHOT
    • 1d17486 Add a link to assertThrows in exception testing
    • 543905d Use separate line for annotation in Javadoc
    • 510e906 Add sub headlines to class Javadoc
    • 610155b Merge pull request from GHSA-269g-pwp5-87pp
    • b6cfd1e Explicitly wrap float parameter for consistency (#1671)
    • a5d205c Fix GitHub link in FAQ (#1672)
    • 3a5c6b4 Deprecated since jdk9 replacing constructor instance of Double and Float (#1660)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Create Telecom

    Create Telecom

    I Love Telecom

    opened by zayyaroo06 0
Releases(2.20191120.0)
  • 2.20191120.0(Nov 20, 2019)

    !!!important Square has begun the retirement process for Connect v1 APIs. See the Connect v1 Retirement information page for details. !!!

    • GA releases: SDKs now support the new modify_tax_basis field to Discounts and v2 Sandbox
    • BETA releases: SDKs now support the Shifts API webhooks for Labor shift created, updated, deleted, CreateLocation endpoint, and the ability to customize statement description in Payments API.
    • Deprecated: Support for v1Items API and v1Locations API is fully deprecated.
    Source code(tar.gz)
    Source code(zip)
  • 2.20190925.0(Sep 25, 2019)

    Version 2.20190925.0 (2019-09-25)

    • GA release: All SDKs have been updated to support the new Merchants API.

    • Beta release: All SDKs have been updated to support the new endpoints (RetrieveLocation, UpdateLocation) added to the Locations API.

    • Beta release: All SDKs have been updated to support the new field (mcc) added to the Location type.

    • GA release: All SDKs have been updated to support the new field (bin) added to the Card type.

    • GA release: All SDKs have been updated to support the new CardPaymentDetails fields (verification_results, statement_description, and verification_method).

    • GA release: All SDKs have been updated to support the new Payment field, (employee_id).

    Source code(tar.gz)
    Source code(zip)
  • 2.20190814.2(Aug 23, 2019)

  • 2.20190814.0(Aug 15, 2019)

    Version 2.20190814.0 (2019-08-15)

    • New functionality: All SDKs have been updated to support the Sandbox v2 BETA release
    • Deprecated functionality: All Transactions API functionality is deprecated in favor of Payments API and Refunds API functionality.
    • New functionality: All SDKs have been updated to support the Payments API GA.
    • New functionality: All SDKs have been updated to support the Refunds API GA.
    • New functionality: All SDKs have been updated to support Orders API updates:
      • Pickup Fulfillments, SearchOrders, and ServiceCharges move from BETA to GA.
      • New BETA endpoint: Orders.UpdateOrder — use the UpdateOrder endpoint to update existing orders.
      • New BETA functionality: Create shipment-type fulfillments.
    • New functionality: Locations.RetrieveLocation — use the RetrieveLocation endpoint to load details for a specific Location.
    Source code(tar.gz)
    Source code(zip)
  • 2.20190710.0(Jul 10, 2019)

    Version 2.20190710.0 (2019-07-10)

    • Breaking change — As of 2019-07-10 Java Connect SDK does not support explicit ENUM types. Instead, the SDKs pass ENUM values as static Strings. Developer code can now choose to ignore unexpected String values when Square APIs return new values instead of being forced to throw runtime errors due to unexpected types. Additional information, including migration help, is available in the README.
    Source code(tar.gz)
    Source code(zip)
  • 2.20190612.1(Jun 26, 2019)

  • 2.20190612.0(Jun 12, 2019)

    • BETA releases:
      • Orders API: supports service charges with a new field and datatype.
      • Catalog API: supports measurement unites for item variation quantities with a new field and datatype.
    • New functionality: Order entities — now include a source field that contains details on where the order originated.
    • Improved functionality: ListLocations — Expanded business information available through the Locations API, including business hours, contact email, social media handles, and longitude/latitude for physical locations.
    Source code(tar.gz)
    Source code(zip)
  • 2.20190508.1(May 29, 2019)

  • 2.20190508.0(May 8, 2019)

    • Beta functionality: Orders API — support for fractional quantities, expanded metadata, and embedded information on payments, refunds, and returns.
    • Beta functionality: Inventory API — support for fractional quantities.
    • New functionality: Locations.business_hours — read-only field with information about the business hours at a particular location.
    Source code(tar.gz)
    Source code(zip)
  • 2.20190410.1(Apr 24, 2019)

    • New functionality: Employees API (Connect v2) — New fields to capture contact information for employee profiles.
    • New functionality: V1Tender.CardBrand — New V1 enum to represent brand information for credit cards.
    Source code(tar.gz)
    Source code(zip)
  • 2.20190410.0(Apr 10, 2019)

    New features: Orders API beta

    • The Connect v2 Orders object now includes an OrderSource field (source) that encapsulates the origination details of an order.

    Improvement: Connect v2 Catalog IDs in Connect v1 objects

    • The following Connect v1 data types now include a v2_id field that makes it easier to link information from Connect v1 endpoints to related Connect v2 Catalog objects:
      • V1Discount
      • V1Fee
      • V1Item
      • V1ModifierList
      • V1ModifierOption
      • V1Variation
    Source code(tar.gz)
    Source code(zip)
  • 2.20190327.1(Mar 29, 2019)

  • 2.20190327.0(Mar 27, 2019)

    Version 2.20190327.0 (2019-03-27)

    New features: Catalog API

    • Deprecated image_url field in CatalogItem in favor of a richer CatalogImage data type.
    • Image information is now set, and returned, at the CatalogObject level.
    Source code(tar.gz)
    Source code(zip)
  • 2.20190313.1(Mar 21, 2019)

    Bug Fix: Connect v1

    • Change timecard_id as path parameter for ListTimecardEvents endpoint
    • Change ended_at to string type for V1CashDrawerShift type
    Source code(tar.gz)
    Source code(zip)
  • 2.20190313.0(Mar 13, 2019)

    Version 2.20190313.0 (2019-03-13)

    New API: Labor API

    The Labor API now includes functionality that gives a Square account the ability to track and retrieve employee labor hours including multiple hourly wage rates per employee, work shift break tracking, and standardized break templates.

    See the Connect v2 Technical Reference.

    New API: Employees API

    The Employees API includes the ability to list employees for a Square account and retrieve a single employee by ID.

    See the Connect v2 Technical Reference.

    Improvement: Simplified OAuth access token renewal

    The RenewToken endpoint is now deprecated and replaced with new functionality in ObtainToken. ObtainToken now returns a refresh token along with an access token. Refresh tokens are used to renew expired OAuth access tokens.

    Source code(tar.gz)
    Source code(zip)
  • 2.20190213.0(Feb 13, 2019)

    Version 2.20190213.0 (2019-02-13)

    New feature: Order fulfillment BETA

    The Orders API now includes beta functionality that supports in-person fulfillment through Square Point of Sale for orders placed online.

    Improvement: New CreateOrder request structure

    The CreateOrderRequest datatype now groups order details under a single object.

    Improvement: CreateOrder requests preserve order-level price adjustment objects

    The CreateOrderResponse datatype now retains structure of order-level price adjustments in addition to converting them to scoped, line-item price adjustments. Previously, CreateOrderResponse did not preserve the original order-level price-adjustment objects.

    Source code(tar.gz)
    Source code(zip)
  • 2.20181212.0(Dec 12, 2018)

    Version 2.13.0 (2018-12-12)

    Improvement: ListCustomers return set expanded

    Requests to the ListCustomers endpoint now returns all available customer profiles. Previously, ListCustomers only returned customer profiles explicitly created through the Customers API or Square Point of Sale.

    Source code(tar.gz)
    Source code(zip)
  • 2.20181205.0(Dec 5, 2018)

    Version 2.20181205.0 (2018-12-05)

    New feature: Idempotent customer profile creation in Connect v2

    Requests to the CreateCustomer endpoint now include a idempotency_key field to ensure idempotent creation of new profiles.

    New feature: Refund Adjustment fields for Refunds in Connect v1

    The Connect SDK now supports refund adjustments for the Connect v1 Refunds API with the addition of multiple new fields in the Refund data type

    Source code(tar.gz)
    Source code(zip)
  • 2.20180918.1(Oct 24, 2018)

    Version 2.20180918.1 (2018-10-24)

    New feature: Support for Partial Payments in Connect v1

    The Connect SDK now supports partial payment functionality for the Connect v1 Transactions API with the addition of a new Payment field:

    • Payment.is_partial — Indicates whether or not the payment is only partially paid for. If true, the payment will have the tenders collected so far, but the itemizations will be empty until the payment is completed.

    Tender also includes 2 new fields to help resolve timing around payments with multiple tenders. Invoices that involve partial payment (e.g., requiring a deposit) may include tenders settled well before the entire payment is completed:

    • Tender.tendered_at — The time when the tender was accepted by the merchant.
    • Tender.settled_at — The time when the tender was captured, in ISO 8601 format. Typically the same as (or within moments of) tendered_at unless the tender was part of a delay capture transaction.

    The change also makes some behavioral changes to the Connect v1 Payment endpoints:

    • Create Refunds rejects requests for invoices that have partial payments pending.
    • List Payments takes a new request field, include_partial to indicate whether partial payments should be included in the response.
    Source code(tar.gz)
    Source code(zip)
  • 2.20180918.0(Sep 18, 2018)

    Version 2.20180918.0 (2018-09-18)

    We have added Connect v2 Inventory API and birthdays in Customer entities.

    New API: Inventory API (Connect V2)

    The Connect v2 Inventory API replaces the Connect v1 Inventory API and introduces new functionality:

    • Moving item variations quantities through predefined states (e.g., from IN_STOCK to WASTE).
    • Viewing the inventory adjustment history for an item variation.
    • Batch inventory adjustments and information retrieval.

    New feature: Customer Birthdays (Connect V2)

    • Customer profiles now include a birthday field. Dates are recorded in RFC-3339 format and can be set through the CreateCustomer and UpdateCustomer endpoints.

    Remove singleton constraint for configuration class. This is a minor breaking change to ApiClient and RESTClientObject initialization.

    Source code(tar.gz)
    Source code(zip)
  • 2.20180712.2(Aug 22, 2018)

    Version 2.20180712.2 (2018-08-21)

    The Connect SDK now includes functionality for the OAuth API. The Square OAuth API lets applications request and obtain permission from a Square account to make API calls on behalf of that account. Applications can request individual permissions so that users do not need to grant full access to their Square accounts.

    OAuth API

    • ObtainToken endpoint — Exchanges the authorization code for an access token. After a merchant authorizes your application with the permissions form, an authorization code is sent to the application's redirect URL (See Implementing OAuth for information about how to set up the redirect URL).

    • RenewToken endpoint — Renews an OAuth access token before it expires. OAuth access tokens besides your application's personal access token expire after 30 days. You can also renew expired tokens within 15 days of their expiration. You cannot renew an access token that has been expired for more than 15 days. Instead, the associated merchant must complete the OAuth flow from the beginning. Important: The Authorization header you provide to this endpoint must have the following format: Authorization: Client APPLICATION_SECRET Replace APPLICATION_SECRET with your application's secret, available from the application dashboard.

    • RevokeToken endpoint — Revokes an access token generated with the OAuth flow. If a merchant has more than one access token for your application, this endpoint revokes all of them, regardless of which token you specify. If you revoke a merchant's access token, all of the merchant's active subscriptions associated with your application are canceled immediately. Important: The Authorization header you provide to this endpoint must have the following format: Authorization: Client APPLICATION_SECRET Replace APPLICATION_SECRET with your application's secret, available from the application dashboard.

    Source code(tar.gz)
    Source code(zip)
  • 2.20180712.1(Aug 2, 2018)

    Version 2.20180712.1 (2018-08-02)

    We have added MobileAuthorization API.

    New endpoint: MobileAuthorization API

    • CreateMobileAuthorizationCode endpoint — Generate a mobile authorization code for an instance of your application. Mobile authorization credentials permit an instance of your application to accept payments for a given location using the Square Reader SDK. Mobile authorization codes are one-time-use and expire shortly after being issued.
    Source code(tar.gz)
    Source code(zip)
  • 2.20180712.0(Jul 12, 2018)

    Version 2.20180712.0 (2018-07-12)

    We introduce Square API versions. Square-Version is 2018-07-12 for this SDK.

    How versioning works

    Square API versions (Square-Version) track changes in the evolution of Connect v2 APIs. The Square-Version naming scheme is YYYY-MM-DD, which indicates the date the version was released. Connect v1 APIs are not versioned. Square continues to support Connect v1, but future releases will focus on improving Connect v2 functionality.

    By default, new Square applications are pinned to the version current at the time the application was created in the Square Application Dashboard. Pinning an application sets the default Square-Version for the application. The default Square-Version of an application can be reviewed and updated at any time on the settings pages for the application.

    Versioning and SDKs

    When a new Square-Version is released, new Connect SDKs are publish on GitHub and various package management systems. SDK updates follow the version convention of the associated language and manager but include the related Square-Version in the SDK version. For example, Connect SDKs tied to version 2018-01-04 might look like {SDK_VERSION}.20180104.{VERSION_INCREMENT}.

    While SDK versions can be mapped to a related Square-version, SDK versions follow an independent, incremental versioning scheme to allow updates and improvements to the SDKs outside of Square-Version updates.

    Migrating to new versions

    In most cases, Square-version migration should be straightforward, with known differences listed in the related Change Log.

    To test migrations, developers can override the default Square-Version of an application by explicitly setting the preferred Square-Version in the HTTP header of the Connect v2 API request for REST calls. Requesting an API version that does not exist returns an error. Successful API responses include the Square-Version header to indicate the API version used to process request.

    Connect SDK versions are locked to specific API versions and cannot be overwritten. Instead, the SDK must be upgraded to work with new API versions.

    Source code(tar.gz)
    Source code(zip)
  • 2.9.0(Jun 28, 2018)

    Version 2.9.0 (2018-06-28)

    We have added search functionality to the Connect v2 Customer API.

    New features and Improvements: Customer API (Connect v2)

    • SearchCustomers endpoint — retrieves groups of customer profiles based on a related characteristic. For example, retrieving all customers created in the past 24 hours.
    • creation_source field is now available on Customer entities. The creation source exposes the process that created a customer profile. For example, if a customer is created using the API, the creation source will be THIRD_PARTY.
    • Instant Profiles are now exposed in the following endpoints: RetrieveCustomer, SearchCustomers, UpdateCustomer, DeleteCustomer.

    Fixes: Inventory SDK (Connect v1)

    • Fix SDK request property adjustment_type in V1 Adjust Inventory.
    Source code(tar.gz)
    Source code(zip)
  • 2.8.0(May 24, 2018)

    Version 2.8.0 (2018-05-24)

    We have added sorting functionality to the Connect v2 Customer API, updated the Connect v1 Payments API to include information about surcharges and improvements to the Item data type.

    New feature: Customer API (Connect v2)

    • ListCustomers endpoint — now provides the ability to sort customers by their creation date using the sort_field and sort_order parameters.

    New features: Payments API (Connect v1)

    The Payments API now returns information about surcharges applied to payments. The new functionality introduces the following new data types:

    • SurchargeMoney datatype — The total of all surcharges applied to the payment.
    • Surcharges datatype — A list of all surcharges associated with the payment.
    • Surcharge datatype — A surcharge that is applied to the payment. One example of a surcharge is auto-gratuity, which is a fixed-rate surcharge applied to every payment, often based on party size.

    We are constantly evaluating new languages to add. In the meantime, if the language you need is not supported, you can use our [Swagger pipeline](<%= articles__client_libraries_path%>#generatingwithswagger) to generate a custom SDK or continue sending JSON to the endpoint URLs directly.

    Improvement: Item (Connect v1)

    Item will now provide two new properties:

    • category_id — indicates if an item can be added to pickup orders from the merchant's online store
    • available_for_pickup — indicates the item's category (if any).
    Source code(tar.gz)
    Source code(zip)
  • 2.7.0(Apr 24, 2018)

    Version 2.7.0 (2018-04-26)

    New features: Transactions API and Payments API

    The Transactions API in Connect v2 now includes payment and refund information from exchanges.

    • ListTransactions now includes payment information from sales and exchanges and refund information from returns and exchanges.
    • ListRefunds now includes refunds that result from exchanges in addition to partial refunds and itemized returns through Square's Point of Sale applications.

    The Payments API in Connect v1 now includes payment and refund information from exchanges.

    • ListPayments now includes refunds that are generated from exchanges to account for the value of returned goods.
    • ListRefunds now returns an approximate number of refunds (default: 100, max: 200). The response may contain more results than the prescribed limit when refunds are made simultaneously to multiple tenders in a payment or when refunds are generated from exchanges to account for the value of returned goods.
    • is_exchange is added to V1Refund and V1Tender. Refunds and tenders marked in this way represent the value of returned goods in an exchange, rather than actual money movement.
    Source code(tar.gz)
    Source code(zip)
  • 2.6.1(Mar 28, 2018)

  • 2.6.0(Mar 28, 2018)

    Version 2.6.0 (2018-03-27)

    Improvements: Orders API

    • BatchRetrieveOrders will now return uncharged orders.

    New features: Orders API

    • For Catalog-backed line items, setting CreateOrderRequestLineItem.base_price_money will now override the catalog item variation's price.
    • CreateOrderRequestModifiers may now be created ad hoc using the new name and base_price_money fields.
    Source code(tar.gz)
    Source code(zip)
  • 2.5.3(Feb 6, 2018)

  • 2.5.2(Dec 21, 2017)

    Version 2.5.2 (2017-12-21)

    • Fix V1 pagination token extraction logic so that CompleteResponse.getBatchToken() returns a valid token when included in the Link Header.
    Source code(tar.gz)
    Source code(zip)
Java library for the Stripe API.

Stripe Java client library The official Stripe Java client library. Installation Requirements Java 1.8 or later Gradle users Add this dependency to yo

Stripe 550 Jun 7, 2021
Low-latency Financial Information Exchange (FIX) engine for the JVM

Philadelphia Philadelphia is a low-latency Financial Information Exchange (FIX) engine for the JVM. You can use Philadelphia to connect to stock excha

Parity 228 Jun 11, 2021
Open source software platform for trading venues

Parity Parity is an open source software platform for trading venues. It can be used to run a financial marketplace, develop algorithmic trading agent

Parity 476 Jun 13, 2021
A Java library for technical analysis.

ta4j Technical Analysis For Java Ta4j is an open source Java library for technical analysis. It provides the basic components for creation, evaluation

null 1.1k Jun 4, 2021