Get Sandbox Access

Paybase Developer Centre

OverviewAPI GuidesGetting StartedRecipesGig Economy PlatformsSharing Economy PlatformsMarketplacesBlockchain BusinessesEscrowRolesRulesDue DiligenceCustomersAccountsBank AccountsCardsTransactionsIntroductionInboundGetting money into the systemTransaction ReferenceAccount ReferenceInternalOutboundEscrowSplit PaymentsRefundsStrong Customer Authentication3D Secure AuthenticationIntroductionCreate a cardCreate a transactionDocument UploadStatementsWebhooksErrorsPQLAPI ReferenceAccountCreate an accountRetrieve an accountTransition account statusList all accountsAnnotate an accountDelete annotation from an accountTag an accountDelete tag from an accountBank AccountCreate a bank accountRetrieve a bank accountUpdate a bank accountTransition bank account statusList all bank accountsAnnotate a bank accountDelete annotation from a bank accountTag a bank accountDelete tag from a bank accountCardCreate a cardRetrieve a cardUpdate a cardTransition card statusList all cardsAnnotate a cardDelete annotation from a cardTag a cardDelete tag from a cardCardholderCreate a cardholderRetrieve a cardholderUpdate a cardholderTransition cardholder statusList all cardholdersAnnotate a cardholderDelete annotation from a cardholderTag a cardholderDelete tag from a cardholderCreate an authentication tokenCheckCreate a checkCustomerIndividual CustomerCreate a customerRetrieve a customerUpdate a customerSole TraderCreate a customerRetrieve a customerUpdate a customerOrganisationCreate a CustomerRetrieve a CustomerUpdate a CustomerIncorporated BusinessCreate a customerRetrieve a customerUpdate a customerBusiness PersonAdd a business personRetrieve a business personUpdate a business personDelete a business personRetrieve a customerTransition state of a customerList all customersAnnotate a customerDelete annotation from a customerTag a customerRemove tag from a customerCreate an authentication tokenTouch a customerDocumentCreate a documentRetrieve a documentList Document TypesReferenceRetrieve a referenceStatementRetrieve a statementStatusRetrieve API statusTransactionCreate inbound transactionCreate internal transactionCreate outbound transactionRetrieve a transactionTransition transaction statusList all transactionsAnnotate a transactionDelete annotation from a transactionTag a transactionDelete tag from a transaction
API version: 7c99a7a

Split Payments

Please note, use of this functionality must be discussed with Paybase prior to implementation. We will need to configure the rule specifically to your needs.

Split Payments can be used to forward funds from a transaction on to one or more parties once the transaction has reached EFFECTED. For example, you could deposit £50 into your own account which would then automatically transfer £25 from your account to one party, and £25 to another (depending on what you tell Paybase to do).

How it works

During onboarding, you'll have discussed with Paybase the specific prefix used to denote the destination(s) of funds for a transaction. For our example, we'll call it 'invoice'.

For each invoice, we need an accountId to send money to, and the amount that should be sent there. These are provided in the annotations of the transaction create payload in the following format: $prefix_index_accountId and $prefix_index_amount.

So for our example, the annotations might look like this:

1
2
3
4
5
6
const annotations = {
  invoice_1_accountId: 'account/72abb569-2def-42f6-b6a8-d4315127e8cb',
  invoice_1_amount: '2500',
  invoice_2_accountId: 'account/f046b81b-4d8b-4531-b6f6-e19e9a281f5b',
  invoice_2_amount: '2500',
}

Scoped annotations

You may also pass any annotations that you would like to be scoped to each specific index, by prefixing the anotation key with $prefix_$index.

For example, you could set invoice_1_fee_percentage: '5' and invoice_2_fee_percentage: '3', which would set fee_percentage: '5' on the annotations of the first payment, and fee_percentage: '3' on the annotations of the second. If you were to provide fee_percentage: 2, this would act as the default value for the annotation, that would be passed to any payments that didn't have a specified value for that key.

For example:

1
2
3
4
5
6
7
8
9
10
const annotations = {
  invoice_1_accountId: 'account/72abb569-2def-42f6-b6a8-d4315127e8cb',
  invoice_1_amount: '2500',
  invoice_1_fee_percentage: '5'
  invoice_2_accountId: 'account/f046b81b-4d8b-4531-b6f6-e19e9a281f5b',
  invoice_2_amount: '2500',
  invoice_3_accountId: 'account/0775f147-ffa9-43c7-ab57-1abbe08f4dd7',
  invoice_3_amount: '1200',
  fee_percentage: '3',
}

This is especially useful if you have other rules configured that are based off of these annotations.

When this is useful

You wish to pay money into the system

For example, you may charge an end-customer for a service which requires paying 3 separate suppliers on your platform. To enable the handling of this via one transaction, you might create a transaction reference to deposit the funds into your Tenant operational eMoney account, and then by providing the annotations with where that money should be forwarded on to - it will automatically be transferred to the relevant parties once the bank transfer has hit our system.