Getting Started
Change Log
Version | Date | Details |
---|---|---|
V1 | 25 Nov 2022 | - Add additional bank name for Wallet Payment Instruments |
V1 | 18 Oct 2022 | - Add additional statusReason codes for FAILED wallet transactions |
V1 | 04 Oct 2022 | - Fix refund examples url |
V1 | 13 Sept 2022 | - Add expected transaction volume for legal entities |
V1 | 12 Aug 2022 | - Update API documentation for onboarding legal customers |
V1 | 12 Jul 2022 | - Major API Restructuring and clarifications to Overview, Getting Started and Wallet operations sections |
V1 | 12 Jul 2022 | - Adding Change customer country functionality in the Wallet Operations documentation |
V1 | 27 Jun 2022 | - Update Screening API |
V1 | 3 Jun 2022 | - Clarifications on updating customer's country of registration |
V1 | 7 Jun 2022 | - Error messages added |
V1 | 2 Jun 2022 | - Added new KYC document types for legal entity customers |
V1 | 1 Jun 2022 | - Added new error code for conflict during onboarding |
V1 | 1 Jun 2022 | - Clarifications on the ownershipPercentage property. Fixed bug in documentation. |
V1 | 26 May 2020 | - Update Transaction screening endpoint |
V1 | 17 May 2022 | - Clarifications on the 'Get customer - Generic' endpoint |
V1 | 14 Apr 2022 | - Add screeningId to Transfers |
V1 | 12 Apr 2022 | - Add customerIds (array), accountIds(array) and merchantRefNums(array) to NotificationResendTask |
V1 | 07 Apr 2022 | - Updates on the transaction screening API |
V1 | 01 Apr 2022 | - Add example request and response for create customer wallet for a legal entity |
V1 | 01 Apr 2022 | - added endpoint for tranasaction screening |
V1 | 28 Mar 2022 | - added notifications API specific error codes. |
V1 | 10 Mar 2022 | - ownershipPercentage set to optional. Add representatives array to legal entity customer. |
V1 | 28 Feb 2022 | - Added transfer reason |
V1 | 23 Feb 2022 | - Remove LegalEntityOwner |
V1 | 23 Feb 2022 | - Add model KybDocument. Add kybDocuments to CustomerLegalEntity,kybDocuments and kyc to LegalEntityPerson. |
V1 | 18 Feb 2022 | - Add NotificationResendTask API to request resend of webhooks |
V1 | 15 Feb 2022 | - Fixed requiredActions for restrictions |
V1 | 9 Feb 2022 | - Added fields in KYC section for specifying the verifications vendor |
V1 | 9 Feb 2022 | - Update on corporate customer address fields |
V1 | 25 Jan 2022 | - Updates to corportate customers API |
V1 | 20 Jan 2022 | - Updated documentation for account assigned webhook format |
V1 | 18 Jan 2022 | - Updated RT examples for currency GBP |
V1 | 17 Jan 2022 | - Updated Card & RT flows |
- Added Payment Handle webhooks | ||
V1 | 12 Jan 2022 | - Added support for corporate customers |
V1 | 27 Dec 2021 | - Added new restrictions synchronization APIs |
V1 | 21 Dec 2021 | - Updated error documentation |
V1 | 2 Dec 2021 | - Added customer's externalId to the response of the Get accounts endpoints |
V1 | 1 Dec 2021 | - Marking required and optional fields; fixed error response format; documentation added |
V1 | 25 Nov 2021 | - Added risk fields for wallet creation and transaction |
V1 | 25 Nov 2021 | - Examples & documentation updated; added appType in deviceInfo |
- Updated Payment Handle samples with deviceInfo | ||
V1 | 22 Nov 2021 | - Added bank account detail - BIC |
- Updated examples | ||
- Removed initial balance when creating a wallet - a separate transfer transaction must be used | ||
V1 | 17 Nov 2021 | - Removed pagination from get customer accounts; the API returns a list of accounts |
- URL for GET instruments changed; customerId converted to required query parameter | ||
- Added wallet transaction statusReason | ||
V1 | 17 Nov 2021 | - Added get customer's payment instruments endpoint |
- Added KYC parameters, following Risk & Compliance workshops | ||
- Added clarifications on virtual IBAN assignment; webhook for virtual IBAN assigned | ||
- Added deviceInfo; customerIp updated to mandatory for all payment APIs | ||
- Added information about onboarding idempotency; removed "phone" field; one of email or mobile is required | ||
V1 | 10 Nov 2021 | - Added the parameter verifiedInstrument to Payment handle |
V1 | 08 Nov 2021 | - Added Payment Workflows |
- Labeled Mandatory Fields as required | ||
V1 | 10 Aug 2020 | - Document Release |
API Basics
The API is constructed around REST and has the following features:
-
Definite resource-oriented URLs
-
Receives JSON-encoded request bodies
-
Returns JSON-encoded responses
-
Communicates using standard HTTP response codes, authentication, and verbs.
-
Message body: This must contain valid Paysafe JSON objects as required for the type of request. Not all API calls require a message-body; for example, GET requests do not require a body.
-
Resource ID: Identifies the unique ID of a resource.
Authentication
Paysafe's REST API uses API keys to authenticate your request in the following format:
-
Key Username – MerchantXYZ
-
Key Password – 20881dff9bb4020a89e8ac44
The case-sensitive API key is sent using HTTP Basic Authentication. To use HTTP Basic Authentication, you must send the API key credentials using the Authorization header with every request.
The Authorization header is constructed as follows:
-
The Key Username and Key Password are combined into a string separated by a colon, e.g.,“Key Username:Key Password”.
-
The resulting string literal is then encoded using Base64 (to allow sending of special characters).
-
The authorization method and а space (i.e., “Basic”) are then put before the encoded string.
For example, using the Key Username and Password examples above, the header is formed as follows:
Authorization: Basic TWVyY2hhbnRYWVo6MjA4ODFkZmY5YmI0MDIwYTg5ZThhYzQ0
For additional details, please refer to http://en.wikipedia.org/wiki/Basic_access_authentication.
Your Production API key will be different from your Test API key. Contact your account manager for details. You must keep your API keys safe and ensure that it is used appropriately for your needs.
Get your secret API key
Please contact your business relationship manager or reach out to integrations@paysafe.com for API keys and Test/Production accounts.
All your APIs will use the same API key.
Testing
Test accounts enable you to process API transactions that mirror the functionality of the Production environment.
Transactions processed in the Test environment are executed on a simulator. Depending on the information provided with the transaction request, the simulator returns either a successful (approved) or failed (declined) response.
With the API, you can:
-
Verify support for all the operation types that you require.
-
Review all common errors as well as unique errors that may occur for each operation.
-
Verify the length and format for all attributes you send.
For access to Test accounts and credentials, contact your account manager or reach out to integrations@paysafe.com. Your Test account has access to the Test version of the Paysafe Business Portal, where you can view the status of your Test transactions.
Test URL
To test your integration with Paysafe, use the following Test URLs:
https://api.test.paysafe.com/paymenthub/v1/
https://api.test.paysafe.com/digitalwallets/v1/
For example:
https://api.test.paysafe.com/paymenthub/v1/payments/{payment_id}
Going live
Once you are satisfied with your integration to the Test environment, you must repeat the configuration changes made to your Test account on your Production account.
You cannot use your Test credentials to process transaction requests in the Production environment.
Go Live Checklist
-
You must have a production account and access to Business Portal.
-
You must have a Secret API Key for the production environment.
-
You must have Webhooks configured for all the events.
-
You must use the Production URL for your API calls.
Production URL
To process live requests with Paysafe, use the following Production URL:
-
https://api.paysafe.com/paymenthub/v1/
-
https://api.paysafe.com/digitalwallets/v1/
For example:
-
https://api.paysafe.com/paymenthub/v1/payments/{payment_id}
-
https://api.paysafe.com/digitalwallets/v1/customers
Pagination
In the case where an API GET request returns multiple results, Paysafe returns the first 10 records by default and uses HATEOAS links to provide page navigation. In addition to the default behavior, it is also possible to control the number of results and starting point by passing in query parameters as described in this section.
Global Invalid Characters
You must not include any of the characters in this table as values in any of your request parameters. Object. If you do, your request will result in an error.
ISO Standards
ISO standards add value by providing the common business process data semantics to be used in the API based exchanges. This section presents you with codes for four areas - Currency, Province, State, and Country.
Please refer Miscellaneous for Global Invalid Characters, ISO Standards, Currency Codes, Province Codes, State Codes, and Country Codes.
Features in development
Documentation for new features and capabilities currently in development is exposed as means of collecting customer feedback. The feedback allows Paysafe to evolve the product and decide on future product direction.
These features:
-
might not get released in general availability for all customers
-
might get changed before being released in general availability
-
might be enabled in a test environment for selected Paysafe customers and partners
-
might require contract amendments to be accessible to your environment
Parts of the API that are part of new unreleased feature would be annotated with In Development comment.
Contact your Paysafe account manager for more details on the product roadmap.
Legal and Community
- Privacy Policy
- Terms of Use
- Regulatory Disclosures