Payments
The trustshare system is intent-based, therefore the primary way of getting money into the platform is to create a Payment Intent for your buyer to confirm. Confirmation of a payment intent can be seen as an acceptance of terms associated with funding a Project.
A payment intent is comprised of a collection of settlements which are used to describe terms that the buyer must adhere to. Settlements describe a payment from a single buyer Participant to a single seller. However, you can use a payment intent to contain multiple settlements, essentially allowing a buyer to pay multiple sellers in one process.
The checkout UI
When your buyer confirms a checkout
or payment_link
intent they will be displayed
a checkout UI that you can customise from your
branding settings
page on the dashboard.
The UI will display supported payment methods inferred from the value of the intent and your organisation's configuration. Payment instruments such as cards, and trade accounts can be created and saved for future use in the UI.
Alternatively, you can use invoice
intents to take control of the UI yourself.
However, we only support manual bank transfer methods for invoice intents.
Payment methods
We currently offer a few different methods of payment into Project accounts, starting with simple manual payments via international and local routes. Each individual project has a unique set of banking credentials, however you will not be able to see the collection credentials for projects that are not "controlled".
When using manual bank transfer, it is the user's responsibility to make the payment
from their bank by any means available to them (online portal, bank branch etc.) to
the nominated bank account we provide via the UI or Invoice.
As this action is outside of our control, we cannot guarantee the settlement
timeline and in reality can be any length. The associated Settlements
will enter a settled
state only when the funds have physically arrived into
the nominated project account.
In some cases, the buyer may be shown a reference to use for the payment. It is advised in these instances that the reference is used to facilitate effective reconciliation to settlements within a project.
Payments via the checkout UI can also use Cards, Open Banking, Direct Debit and Trade Account credit. Each individual method has requirements that must be met for a specific intent in order to be displayed to the user. If you would like to avoid presenting users with one or more of these payment methods for your use case, just let us know! We can adjust your configuration to hide them from users.
Cards can be enabled for low-value payments, and can be stored by the buyer for later use. Card payments take around 2 working days to settle into project accounts.
For payment intents based in GBP or EUR, Open Banking provides a streamlined payment initiation mechanism where the user instructs their bank via their online banking application. Open Banking payments can take anywhere from 5 seconds to a couple of minutes to settle into projects.
Using Direct Debits, if enabled, is currently limited to EUR payment intents that defined scheduled future payments. Direct Debits take around 2 days to settle from their scheduled date.
Some of these payment methods may not be configured for your account, please reach out to our team if you would like to discuss a specific payment method.
Credit payments
Trade Account credit can give your business buyers the ability to pay on net terms ranging from 30-90 days. Users can apply for their Trade Account in the UI receiving an instant decision. If approved, they can use the credit line for the current checkout and any future payments.
For the trade account payment method to appear in the checkout UI, the buyer participant of the intent must be defined as a business from one of our "instant decision" supported countries.
We currently support "instant decision" on credit for Sweden, Norway, and United Kingdom.
Credits from a trade account work with immediate
, escrow
, and funding
Settlements where the credit is only fulfilled at
the point of release from a project or settlement via an
Outbound. Credit will usually take around 1 day to
settle into projects and be automatically assigned to the correct outbounds.
Creating a trade credit account via API
For countries where we do not support "instant decision", as well as those we do, you can
alternatively create a trade_account
Payment Instrument
on the API. You can use webhooks to keep up-to-date with the
asynchronous decision associated with the credit application.
Payment instruments created via the API will show up in the checkout UI for the associated buyer when enabled. Below is an example of creating a new instrument.
Creating a payment instrument
const instrument = await trustshare.api.v1.createPaymentInstrument({
type: 'trade_account',
owner: {
type: 'business',
email: 'sink+buyer@trustshare.co',
name: 'ACME Limited',
business: {
type: 'limited',
company_number: '12345678',
phone_number: '+447773452345',
registered_address: {
address_line_1: '23 The Road',
town_city: 'London',
region: 'Greater London',
postal_code: 'N22 6TY',
country: 'GB',
},
},
},
});
A trade account can only be created for a business participant, and all the information described above is required.
The resulting payment instrument identifier can be stored in your database
for future usage in the event you want to confirm an invoice
payment intent...
Confirming an invoice payment intent with a trade account
Once a payment instrument has been created and enabled, it can also be used
to confirm an invoice payment intent
directly via the API with no-user interaction. However, you will need to complete
a Setup Intent to retrieve a session_id
that can be used.
The following example shows how to create a setup intent for this purpose.
Creating a setup intent
const setup = await trustshare.api.v1.createSetupIntent({
type: 'session',
participant: {
id: instrument.api.v1.createPaymentInstrument.owner.id,
},
});
The resulting client_secret
should be passed down to your frontend, where you
can use the client SDK to confirm it. This can happen transparently
for the user as it requires no direct interaction via UI.
Confirming a setup intent
const result = await trustshare.sdk.v1.confirmSetupIntent('<client_secret>');
By storing the resulting session_id
in your database, it can be used for future
invoice payments by confirming the intent via the API. You can also provide
the required terms
at this point to dictate the repayment requirements.
Confirming an invoice payment intent
const confirmation = await trustshare.api.v1.confirmPaymentIntent({
id: intent.id,
session_id,
type: 'credit',
credit: {
payment_instrument_id: instrument.api.v1.createPaymentInstrument.id,
terms: 'thirty_days',
},
});
The resulting confirmation will include a checkout_id
and invoice_id
that
can be used along with our webhooks to be notified of a
change in status.
Supported countries & industries
We can support payments to and from 224 countries across the world:
Åland Islands, Albania, Algeria, American Samoa, Andorra, Angola, Anguilla, Antarctica, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bosnia and Herzegovina, Botswana, Bouvet Island, Brazil, British Indian Ocean Territory, British Virgin Islands, Brunei Darussalam, Bulgaria, Cabo Verde, Cambodia, Cameroon, Canada, Caribbean Netherlands, Cayman Islands, Central African Rep, Chad, Chile, China, Christmas Island, Cocos (Keeling) Islands, Columbia, Comoros, Congo, Cook Islands, Costa Rica, Côte d'Ivoire, Croatia, Curaçao, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Ecuador, Egypt, Equatorial Guinea, Eritrea, Estonia, Eswatini, Ethiopia, Falkland Islands, Faroe Islands, Fiji, Finland, France, French Guiana, French Polynesia, French Southern Territories, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Grenada, Guadeloupe, Guam, Guernsey, Guinea, Heard Island and McDonald Islands, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, Kosovo, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Liechtenstein, Lithuania, Luxembourg, Macao, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Marshall Islands, Martinique, Mauritania, Mauritania, Mayotte, Mexico, Micronesia, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Niue, Norfolk Island, North Macedonia, North Mariana Islands, North Mariana Islands, Norway, Oman, Pakistan, Palau, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Pitcairn, Poland, Portugal, Puerto Rico, Qatar, Reunion, Romania, Rwanda, Saint Barthélemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Samoa, San Marino, Sao Tome and Principe, Saudi Arabia, Serbia, Seychelles, Sierra Leone, Singapore, Sint Maarten, Slovakia, Slovenia, Solomon Islands, Somalia, South Africa, South Georgia and the South Sandwich Islands, South Korea, Spain, Sri Lanka, St. Vincent & Grenadines, Suriname, Svalbard and Mayen, Sweden, Switzerland, Taiwan, Tajikistan, Tanzania, Thailand, the Democratic Republic, Timor-Leste, Togo, Tokelau, Tonga, Trinidad & Tobago, Tunisia, Turkey, Turks and Caicos Islands, Tuvalu, Uganda, Ukraine, United Arab Emirates, United Kingdom, United States, United States Minor Outlying Islands, United States Virgin Islands, Uruguay, Uzbekistan, Vanuatu, Vatican City State (Holy See), Vietnam, Wallis & Futuna, Yemen, Zambia, and Zimbabwe.
Countries we can pay through local routes
We payout locally through local payout methods whenever possible in the following 49 countries:
Andorra, Australia, Austria, Belgium, Bulgaria, Canada, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Faroe Islands, Finland, France, Germany, Gibraltar, Greece, Guernsey, Hong Kong, Hungary, India, Indonesia, Ireland, Isle of Man, Italy, Jersey, Latvia, Liechtenstein, Lithuania, Luxembourg, Malaysia, Malta, Monaco, Netherlands, Norway, Philippines, Poland, Portugal, Romania, Saint Barthélemy, San Marino, Singapore, Slovakia, Slovenia, Spain, Sweden, Switzerland, United Kingdom, and United States.
Currencies we can payout via local and international routes
We can payout in the following currencies, with any required foreign-exchange happening automatically:
AED (United Arab Emirates), AUD (Australia), BGN (Bulgaria), BHD (Bahrain), CAD (Canada), CHF (Switzerland), CNY (China), CZK (Czech Republic), DKK (Denmark), EUR (Europe), GBP (United Kingdom), HKD (Hong Kong), HRK (Croatia), HUF (Hungary), ILS (Israel), JPY (Japan), KES (Kenya), KWD (Kuwait), MXN (Mexico), NOK (Norway), NZD (New Zealand), PLN (Poland), QAR (Qatar), RON (Romania), SAR (Saudi Arabia), SEK (Sweden), SGD (Singapore), THB (Thailand), TRY (Turkey), USD (United States), and ZAR (South Africa).
Countries we cannot support
We cannot support payments to and from the following 17 countries/regions:
Afghanistan, Belarus, Crimea, Donetsk, Luhansk, Cuba, Iran (Islamic Republic of), Iraq, Libya, Myanmar, North Korea, Russian Federation, South Sudan, Sudan, Syria, and Venezuela.
Industries we cannot support
Before starting your integration, it’s important to check our prohibited industries policy carefully. Please speak to our team if you are unsure and to complete your onboarding.