Tabeo offers a synchronous API for third-party integrations. For fulfilment purposes, offers may be polled at certain intervals to observe status changes. These endpoints may be used to integrate Tabeo with a variety of shop and cart systems.
Endpoint to create a new Pay Over Time (finance) or Pay Now (card payments) offer.
POST endpoint
https://api.tabeo.co.uk/v1/merchant/integration-offers
The endpoint will respond with an offer object json. This will contain all pertinent information relating to the offer.
curl -X POST https://api.tabeo.co.uk/v1/merchant/integration-offers \
-H 'Authorization: Bearer [AUTHORIZATION TOKEN]’ \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"consumerFirstName": "Foo",
"consumerLastName": "Bar",
"price": 120000,
"consumerPhoneNumber": "07511223131",
"consumerEmail": "[email protected]",
"title": "Bridge",
"currency": "gbp",
"initialPaymentPlanOptions": [12,24],
"externalMetadata": {"guid":33983,"id":"TyaJHGA-1736"},
"individual": {"name": "Dr. Foo Bar", "type": "clinician"},
"fulfillment": {"startedAt": "2020-02-25T14:23:47Z", "reference": "REFERENCE_001"}
}
{
"data":{
"offer":{
"bankAccountAttempts":0,
"bankAccountID":null,
"bankAccountLastMissingMandateReminderSentAt":null,
"bankAccountRemovedAt":null,
"buyerCode":null,
"consumerEmail":"[email protected]",
"consumerFirstName":"Foo",
"consumerGender":null,
"consumerID":null,
"consumerLastName":"Bar",
"consumerMiddleName":null,
"consumerPhoneNumber":"07511223131",
"countryCode":"gb",
"createdAt":"2021-04-29T12:07:09.033542385Z",
"currency":"gbp",
"expiresAt":"2021-05-06T12:07:09.026043746Z",
"riskCheckedAt":null,
"feeAmount":null,
"hardCheckStatus":null,
"id":10012,
"displayID":"FN10012",
"individualID":null,
"lastStateTransitionedAt":"2021-04-29T12:07:09.02606363Z",
"legacyOfferID":null,
"loanAgreementID":null,
"loanID":null,
"merchantID":24,
"merchantLateRefundFeeAmountToDate":null,
"merchantNetProceedsTransfers":[
],
"merchantPayoutAt":null,
"merchantProceedsTransferredAt":null,
"metadata":{
"autoConfirmation":false,
"externalMetadata":{
"guid":33983,
"id":"TyaJHGA-1736"
},
"overviewShortLink":"https://demo.m.tabeo.co.uk/r/WguHd",
"patientName":"Foo Bar",
"publicShortLink":"https://demo.m.tabeo.co.uk/r/UWEWd",
"riskProfiles":[
{
"order":0,
"name":"default",
"lenderCode":null,
"loanOptions":[
{
"numberOfMonths":6,
"interestRate":0,
"rebateDays":0,
"isRegulated":false,
"isAvailableForInitialPaymentPlan":false
},
{
"numberOfMonths":10,
"interestRate":0,
"rebateDays":0,
"isRegulated":false,
"isAvailableForInitialPaymentPlan":false
},
{
"numberOfMonths":12,
"interestRate":0,
"rebateDays":0,
"isRegulated":false,
"isAvailableForInitialPaymentPlan":true
},
{
"numberOfMonths":24,
"interestRate":0,
"rebateDays":0,
"isRegulated":false,
"isAvailableForInitialPaymentPlan":true
}
],
"fundingType":"default"
}
]
},
"numberOfPaymentDayChanges":0,
"paymentAuthorization":null,
"paymentGateway":"",
"paymentSourceAttempts":0,
"paymentSourceID":null,
"payoutGateway":"stripe_connect",
"price":120000,
"publicAccessToken":"BSwJknFCJBormUIxbNbiioeqoMtHidBQkzjoyskcpTHphoxdlJvribiEIggESpCo",
"reference":null,
"referralID":null,
"revisedPrice":null,
"revisedRequiredMerchantFeeAmount":null,
"revisedValueAtRisk":null,
"status":"new",
"title":"Bridge",
"totalMerchantRefundAmountToDate":null,
"type":"pay_over_time",
"updatedAt":"2021-04-29T12:07:09.038352658Z",
"uuid":"32cea5de-beb2-55ae-ad18-151fa2059709",
"valueAtRisk":null
}
},
"status":"success",
"type":"response_ready"
}
curl -X POST https://api.tabeo.co.uk/v1/merchant/integration-offers \
-H 'Authorization: Bearer [AUTHORIZATION TOKEN]’ \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"consumerFirstName": "Foo",
"consumerLastName": "Bar",
"price": 120000,
"consumerPhoneNumber": "07511223131",
"consumerEmail": "[email protected]",
"title": "Bridge",
"currency": "gbp",
"externalMetadata": {"guid":33983,"id":"TyaJHGA-1736"},
"type": "pay_now"
}
{
"data":{
"offer":{
"bankAccountAttempts":0,
"bankAccountID":null,
"bankAccountLastMissingMandateReminderSentAt":null,
"bankAccountRemovedAt":null,
"buyerCode":null,
"consumerEmail":"[email protected]",
"consumerFirstName":"Foo",
"consumerGender":null,
"consumerID":null,
"consumerLastName":"Bar",
"consumerMiddleName":null,
"consumerPhoneNumber":"07511223131",
"countryCode":"gb",
"createdAt":"2021-04-29T12:22:35.186240533Z",
"currency":"gbp",
"expiresAt":"2021-05-06T12:22:35.178949336Z",
"riskCheckedAt":null,
"feeAmount":null,
"hardCheckStatus":null,
"id":10017,
"displayID":"FN10017",
"individualID":null,
"lastStateTransitionedAt":"2021-04-29T12:22:35.17896482Z",
"legacyOfferID":null,
"loanAgreementID":null,
"loanID":null,
"merchantID":24,
"merchantLateRefundFeeAmountToDate":null,
"merchantNetProceedsTransfers":[
],
"merchantPayoutAt":null,
"merchantProceedsTransferredAt":null,
"metadata":{
"autoConfirmation":false,
"externalMetadata":{
"guid":33983,
"id":"TyaJHGA-1736"
},
"overviewShortLink":"https://demo.m.tabeo.co.uk/r/yzpvj",
"patientName":"Foo Bar",
"publicShortLink":"https://demo.m.tabeo.co.uk/r/iZtGC"
},
"numberOfPaymentDayChanges":0,
"paymentAuthorization":null,
"paymentGateway":"",
"paymentSourceAttempts":0,
"paymentSourceID":null,
"payoutGateway":"stripe_connect",
"price":120000,
"publicAccessToken":"DzEzHsINbMtCPfQxdsJAXjcKqpjXsDkqVOCJZYbiYShthiYRwaxaRsCsKHEuSZSu",
"reference":null,
"referralID":null,
"revisedPrice":null,
"revisedRequiredMerchantFeeAmount":null,
"revisedValueAtRisk":null,
"status":"new",
"title":"Bridge",
"totalMerchantRefundAmountToDate":null,
"type":"pay_now",
"updatedAt":"2021-04-29T12:22:35.189771916Z",
"uuid":"7575cb49-e10c-55ae-8ade-dac53694ce69",
"valueAtRisk":null
}
},
"status":"success",
"type":"response_ready"
}
GET endpoint
https://api.tabeo.co.uk/v1/merchant/offers/:offerid
curl -X GET \ https://api.tabeo.co.uk/v1/merchant/offers/:offerid \ -H 'Authorization: Bearer [AUTHORIZATION TOKEN]' \ -H 'Content-Type: application/json' \ -H 'cache-control: no-cache'
In most cases, you will want to get subresources for an offer.
Subresources include: metdata, individual (e.g. clinician's name) and simplified statuses on the offer's current state.
For example, to check whether an offer has been paid successfully, the sub resource simplifiedStatus should be used.
A more thorough call that retrieves an offer object with its simplifiedStatus and metaData sub resources would be:
curl -X GET \ https://api.tabeo.co.uk/v1/merchant/offers/:offerid?subResource=simplifiedStatus&subResource=metaData \ -H 'Authorization: Bearer [AUTHORIZATION TOKEN]' \ -H 'Content-Type: application/json' \ -H 'cache-control: no-cache'
For descriptions of simplifiedStatus, please see Offer object simplifiedStatus states below.
A GET endpoint
https://api.tabeo.co.uk/v1/merchant/offers
To retrieve up to 6 offers with any of the following statuses: applying, loan_offer_made, funds_on_way].
curl -X GET \ 'https://api.tabeo.co.uk/v1/merchant/offers?order=updatedAt:desc&condition=simplifiedStatus:[applying,loan_offer_made,funds_on_way]&limit=6&offset=0' \ -H 'Authorization: Bearer [AUTHORIZATION TOKEN]'
Without any status constraints and up to 100 offers ordered by updatedAt field:
curl -X GET \ 'https://api.tabeo.co.uk/v1/merchant/offers?order=updatedAt:desc&limit=100&offset=0' \ -H 'Authorization: Bearer [AUTHORIZATION TOKEN]'
If you want to limit it to say only ones with simplifiedStatus: 'settled', then you'd do something like this:
curl -X GET \ 'https://api.tabeo.co.uk/v1/merchant/offers?condition=simplifiedStatus:[settled]&order=updatedAt:desc&limit=100&offset=0' \ -H 'Authorization: Bearer [AUTHORIZATION TOKEN]'
Some offers may be transferred to another applicant in the case of the initial applicant failing checks. Such offers are identifiable with simplifiedStatus: 'transferred'.
A GET endpoint
https://api.tabeo.co.uk/v1/merchant/offers/:offerid?subResource=transferredOffer
When getting the offer, a transferredOffer sub resource may be applied on the old offer to get a sub resource with the new offer:
curl -X GET \ 'https://api.tabeo.co.uk/v1/merchant/offers/28599?subResource=transferredOffer' \ -H 'Authorization: Bearer [AUTHORIZATION TOKEN]'
This will get transferredOffer id of 28756
You can then GET the new offer with id 28756 and monitor its status .
If required, legacyOffer sub resource id may be used on the new offer to get a sub resource with the old/legacy offer:
curl -X GET \ 'https://api.tabeo.co.uk/v1/merchant/offers/28756?subResource=legacyOffer' \ -H 'Authorization: Bearer [AUTHORIZATION TOKEN]'
This will get a legacyOffer id of 28599.
The following is the currently specified list of possible simplifiedStatus states for the offer object.
For some merchants (please confirm with your account manager), a fulfillment is required before merchant proceeds from an offer are transferred for pay out to your bank account. Once a fulfillment is created using this endpoint, Tabeo will automatically schedule the transfer for the date specified for fulfillment.
POST endpoint
https://api.tabeo.co.uk/v1/merchant/offers/:offerid/integration-fulfillment
curl -X POST https://api.tabeo.co.uk/v1/merchant/offers/:offerid/integration-fulfillment \
-H 'Authorization: Bearer [AUTHORIZATION TOKEN]' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"startedAt": "2021-05-25T14:23:47Z",
"reference": "INV2101"
}{
"data":{
"fulfillment":{
"createdAt":"2021-04-30T09:05:55.814665Z",
"deletedAt":null,
"id":10001,
"reference":"INV2101",
"startedAt":"2020-02-25T14:23:47Z",
"updatedAt":"2021-04-30T09:05:55.814665Z",
"uuid":"03b47184-f0e8-5432-a6ee-fcfb42db7023"
}
},
"status":"success",
"type":"response_ready"
}Endpoint to update the fulfillment date of an offer. This is only applicable if your merchant account requires it.
PUT endpoint
https://api.tabeo.co.uk/v1/merchant/offers/:offerid/integration-fulfillment
curl -X PUT https://api.tabeo.co.uk/v1/merchant/offers/:offerid/integration-fulfillment \
-H 'Authorization: Bearer [AUTHORIZATION TOKEN]' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"startedAt": "2021-05-25T14:23:47Z",
"reference": "D2102"
}
{
"data":{
"data":{
"fulfillment":{
"createdAt":"2021-04-30T13:37:17.829289Z",
"deletedAt":null,
"id":10001,
"reference":"D2102",
"startedAt":"2022-02-25T14:23:47Z",
"updatedAt":"2021-04-30T13:37:27.132545Z",
"uuid":"38750b11-ef52-57fb-b69e-d45d7d2f3048"
}
},
"status":"success",
"type":"response_ready"
}