NAV
curl Node.JS Python

Vendreo v1.0.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Base URLs:

Authentication

Payments Integration.

Payments Requests.

Create a new payment request.

Code samples

# You can also use wget
curl -X POST https://api.vendreo.com/v1/request-payment \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.vendreo.com/v1/request-payment', headers = headers)

print(r.json())

POST /v1/request-payment

Obtain a payment redirect URL.

Body parameter

{
  "amount": "1999",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "basket_items": [
    {
      "description": "string",
      "quantity": "10",
      "price": "199",
      "total": "1990"
    }
  ],
  "country_code": "GB",
  "currency": "GBP",
  "description": "Payment for Order Number #325682",
  "failed_url": "https://example.org/failed",
  "first_payment_date": "20/03/2020",
  "frequency": "daily",
  "number_of_payments": 0,
  "payment_type": "PERIODIC",
  "parent_payment_id": 0,
  "reference_id": "string",
  "redirect_url": "https://example.org/success",
  "options": "{\"sessionId\":\"foo\"}"
}

Parameters

Name In Type Required Description
body body RequestPaymentSchema false Makes request for payment redirect URL.

Example responses

200 Response

{
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  },
  "payment_request_id": "123456",
  "redirect_url": "https://pay.vendreo.com/payment/{uuid}",
  "subscription_id": "123456"
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.
» payment_request_id string false none none
» redirect_url string false none none
» subscription_id string false none none

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Create a new subscription payment request.

Code samples

# You can also use wget
curl -X POST https://api.vendreo.com/v1/create-subscription \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.vendreo.com/v1/create-subscription', headers = headers)

print(r.json())

POST /v1/create-subscription

Obtain a payment redirect URL.

Body parameter

{
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "country_code": "GB",
  "currency": "GBP",
  "description": "Payment for Order Number #325682",
  "first_amount": "1999",
  "frequency": "daily",
  "number_of_payments": 0,
  "recurring_amount": "1999",
  "redirect_url": "https://example.org/success",
  "reference_id": "string",
  "options": "{\"sessionId\":\"foo\"}"
}

Parameters

Name In Type Required Description
body body CreateSubscriptionSchema false Makes request for a subscription redirect URL.

Example responses

200 Response

{
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  },
  "payment_request_id": "123456",
  "redirect_url": "https://pay.vendreo.com/payment/{uuid}"
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.
» payment_request_id string false none none
» redirect_url string false none none

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Create a new outgoing payment request.

Code samples

# You can also use wget
curl -X POST https://api.vendreo.com/v1/request-outgoing-payment \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.vendreo.com/v1/request-outgoing-payment', headers = headers)

print(r.json())

POST /v1/request-outgoing-payment

Obtain a payment redirect URL.

Body parameter

{
  "account_name": "Mr Joe Bloggs",
  "account_number": "12345678",
  "amount": "1999",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "currency": "GBP",
  "description": "Payment for Order Number #325682",
  "options": "{\"sessionId\":\"foo\"}",
  "original_payment_uuid": "c012a5cc-5435-4935-b8f3-b022f2605df8",
  "redirect_url": "https://example.org/success",
  "sort_code": "123456"
}

Parameters

Name In Type Required Description
body body RequestOutgoingPaymentSchema false Makes request for outgoing payment redirect URL.

Example responses

200 Response

{
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  },
  "outgoing_payment_request_id": "123456",
  "redirect_url": "https://pay.vendreo.com/dynamic-payment/{uuid}"
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.
» outgoing_payment_request_id string false none none
» redirect_url string false none none

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Create a new request a payment.

Code samples

# You can also use wget
curl -X POST https://api.vendreo.com/v1/request-a-payment \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.vendreo.com/v1/request-a-payment', headers = headers)

print(r.json())

POST /v1/request-a-payment

Obtain a payment redirect URL.

Body parameter

{
  "amount": "1999",
  "currency": "GBP",
  "description": "Payment for Order Number #325682",
  "redirect_url": "https://example.org/success",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05"
}

Parameters

Name In Type Required Description
body body RequestAPaymentSchema false Creates a Payment Request.

Example responses

200 Response

{
  "redirect_url": "https://pay.vendreo.com/pay/{uuid}",
  "request_a_payment_id": "123456",
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» redirect_url string false none none
» request_a_payment_id string false none none
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get a status of payments.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/payments \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/payments', headers = headers)

print(r.json())

GET /v1/payments

Search payments.

Body parameter

{
  "payments": [
    "c012a5cc-5435-4935-b8f3-b022f2605df8"
  ]
}

Parameters

Name In Type Required Description
body body PaymentsSchema false Get details of more than one payment.

Example responses

200 Response

[
  {
    "amount": "199",
    "payment_uuid": "c012a5cc-5435-4935-b8f3-b022f2605df8",
    "status": "COMPLETED",
    "payment_reference": "VND123C1",
    "payment_type": "SINGLE",
    "transactions": [
      {
        "amount": "199",
        "currency": "GBP",
        "cross_checked": true,
        "completed": true,
        "date_completed": "2022-01-01 00:00:00",
        "date_estimated": "2022-01-01 00:00:00"
      }
    ],
    "scheduled": [
      {
        "amount": "199",
        "currency": "GBP",
        "date_scheduled": "2022-01-01 00:00:00",
        "expired": false,
        "cross_checked": true,
        "completed": true
      }
    ]
  }
]

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» anonymous object false none none
»» payment_uuid string(uuid) false none none
»» status string false none none
»» payment_reference string false none none
»» payment_type string false none The type of payment.
»» transactions array false none none
»»» transactions object false none none
»»»» amount integer false none Amount of transaction.
»»»» currency string false none Currency of transaction.
»»»» cross_checked boolean false none Funds have been cleared into bank account.
»»»» completed boolean false none Transaction marked as complete.
»»»» date_completed string false none Date of Completion.
»»»» date_estimated string false none Date of Estimated Completion.
»» scheduled array false none none
»»» scheduled object false none none
»»»» amount integer false none Amount of transaction.
»»»» currency string false none Currency of transaction.
»»»» date_scheduled string false none When payment is scheduled for.
»»»» expired boolean false none Transaction marked as expired.
»»»» completed boolean false none Transaction marked as complete.
»»»» success boolean false none Transaction marked as success.
» meta object false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Enumerated Values

Property Value
status ["COMPLETED","FAILED","PENDING","SCHEDULED"]
payment_type ["PERIODIC","SINGLE"]

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get a status of payment.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/payment/{payment} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/payment/{payment}', headers = headers)

print(r.json())

GET /v1/payment/{payment}

Search payment.

Body parameter

{}

Parameters

Name In Type Required Description
payment path string true none
body body PaymentSchema false Get details of a Payment.

Example responses

200 Response

{
  "status": "COMPLETED",
  "payment_reference": "VND123C1",
  "payment_type": "SINGLE",
  "payment_uuid": "123456",
  "transactions": [
    {
      "amount": "199",
      "completed": true,
      "cross_checked": true,
      "currency": "GBP",
      "date_completed": "2022-01-01 00:00:00",
      "date_estimated": "2022-01-01 00:00:00"
    }
  ],
  "scheduled": [
    {
      "amount": "199",
      "completed": true,
      "cross_checked": true,
      "currency": "GBP",
      "date_scheduled": "2022-01-01 00:00:00",
      "expired": false
    }
  ],
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» status string false none none
» payment_reference string false none none
» payment_type string false none The type of payment.
» payment_uuid string(uuid) false none none
» transactions array false none none
»» transactions object false none none
»»» amount integer false none Amount of transaction.
»»» completed boolean false none Transaction marked as complete.
»»» cross_checked boolean false none Funds have been cleared into bank account.
»»» currency string false none Currency of transaction.
»»» date_completed string false none Date of Completion.
»»» date_estimated string false none Date of Estimated Completion.
» scheduled array false none none
»» scheduled object false none none
»»» amount integer false none Amount of transaction.
»»» date_scheduled string false none When payment is scheduled for.
»»» expired boolean false none Transaction marked as expired.
»»» completed boolean false none Transaction marked as complete.
»»» currency string false none Currency of transaction.
»»» success boolean false none Transaction marked as success.
» meta object false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Enumerated Values

Property Value
status ["COMPLETED","FAILED","PENDING","SCHEDULED"]
payment_type ["PERIODIC","SINGLE"]

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Headless Payments Integration.

Headless Integration.

Setup checkout.

Code samples

# You can also use wget
curl -X POST https://api.vendreo.com/v1/headless/setup \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.vendreo.com/v1/headless/setup', headers = headers)

print(r.json())

POST /v1/headless/setup

Obtain a list of banks, application details and important links.

Body parameter

{
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05"
}

Parameters

Name In Type Required Description
body body HeadlessSetupSchema false Makes request for setting up headless checkout

Example responses

200 Response

{
  "paymentDetails": {
    "sort_code": "123456",
    "account_number": "12345678",
    "account_name": "Mr Joe Blogs",
    "environment": "LIVE"
  },
  "vendreoDetails": {
    "logo": "string",
    "terms_and_conditions": "string",
    "privacy_policy": "string"
  },
  "institutions": [
    {
      "institution_remote_id": "starling",
      "name": "Starling Bank",
      "country_code": "GB",
      "full_logo_url": "https://cdn.vendreo.com/images/bank_logos/400x400_alt/starling.png",
      "environment": "LIVE",
      "features": [
        "ACCOUNT_TRANSACTIONS_WITH_MERCHANT",
        "INITIATE_SINGLE_PAYMENT_SORTCODE",
        "ACCOUNTS",
        "CREATE_SINGLE_PAYMENT_SORTCODE",
        "ACCOUNT",
        "INITIATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT",
        "ACCOUNT_TRANSACTIONS",
        "CREATE_DOMESTIC_SINGLE_PAYMENT",
        "INITIATE_ACCOUNT_REQUEST",
        "IDENTITY",
        "CREATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT",
        "INITIATE_DOMESTIC_SINGLE_PAYMENT",
        "EXISTING_PAYMENTS_DETAILS"
      ]
    }
  ],
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» paymentDetails object¦null false none none
»» sort_code string false none none
»» account_number string false none none
»» account_name string false none none
»» environment string false none none
» vendreoDetails object¦null false none none
»» logo string false none none
»» terms_and_conditions string false none none
»» privacy_policy string false none none
» institutions array false none none
»» anonymous object false none none
»»» institution_remote_id string false none none
»»» name string false none none
»»» country_code string false none none
»»» full_logo_url string false none none
»»» environment string false none none
»»» features [string] false none none
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Create a new headless payment request.

Code samples

# You can also use wget
curl -X POST https://api.vendreo.com/v1/headless/request-payment \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.vendreo.com/v1/headless/request-payment', headers = headers)

print(r.json())

POST /v1/headless/request-payment

Obtain a payment redirect URL.

Body parameter

{
  "amount": "1999",
  "basket_items": [
    {
      "description": "string",
      "quantity": "10",
      "price": "199",
      "total": "1990"
    }
  ],
  "country_code": "GB",
  "currency": "GBP",
  "description": "Payment for Order Number #325682",
  "failed_url": "https://example.org/failed",
  "first_payment_date": "20/03/2020",
  "frequency": "daily",
  "payment_type": "PERIODIC",
  "parent_payment_id": 0,
  "redirect_url": "https://example.org/success",
  "reference_id": "string",
  "remote_institution_id": "barclays",
  "number_of_payments": 0,
  "options": "{\"sessionId\":\"foo\"}",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05"
}

Parameters

Name In Type Required Description
body body HeadlessRequestPaymentSchema false Makes request for headless payment redirect URL.

Example responses

200 Response

{
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  },
  "payment_request_id": "123456",
  "payment_uuid": "b1073176-a151-4923-b545-fa987e333530",
  "qr_code": "https://pay.vendreo.test/qr/redirect/{uuid}",
  "redirect_url": "https://pay.vendreo.com/qr/{uuid}",
  "success": true
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.
» payment_request_id string false none none
» payment_uuid string(uuid) false none none
» qr_code string false none none
» redirect_url string false none none
» success string false none none

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Card Payments Integration.

Create a new card payment request.

Code samples

# You can also use wget
curl -X POST https://api.vendreo.com/v1/card/request-payment \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.vendreo.com/v1/card/request-payment', headers = headers)

print(r.json())

POST /v1/card/request-payment

Obtain a payment token to be used with the Card JS SDK.

Body parameter

{
  "amount": "1999",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "country_code": "GB",
  "currency": "GBP",
  "customer_name": "Joe Blogs",
  "customer_billing_email": "Joe Blogs",
  "customer_billing_address": "123 Foo Street",
  "customer_billing_town": "London",
  "customer_billing_post_code": "GB",
  "customer_billing_country_code": "AA1 1AA",
  "tokenize_payment": "true",
  "enable_address_field": "true",
  "enable_verify_card": "true",
  "mandate_3ds_challenge": "true",
  "ip_address": "1.12.123.255",
  "description": "Payment for Order Number #325682",
  "reference_id": "string",
  "options": "{\"sessionId\":\"foo\"}"
}

Parameters

Name In Type Required Description
body body CardRequestPaymentSchema false Creates a token for use on Card JS SDK.

Example responses

200 Response

{
  "payment_request_id": "123456",
  "payment_request_token": "{uuid}",
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» payment_request_id string false none none
» payment_request_token string false none none
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get details of payment.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/card/payment/{paymentCard}/details \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/card/payment/{paymentCard}/details', headers = headers)

print(r.json())

GET /v1/card/payment/{paymentCard}/details

Obtain the most up-to-date details about a payment

Body parameter

{}

Parameters

Name In Type Required Description
paymentCard path string true none
body body CardPaymentDetails false Gets the most up-to-date details about a payment.

Example responses

200 Response

{
  "uuid": "98edad0a-83bd-44f7-8e67-f7db7e9fbc73",
  "payment_type": "PAYMENT",
  "environment": "SANDBOX",
  "transaction_id": "123456789",
  "cross_reference": "A1B2C3D4E5F6G7H8I9J0",
  "type": "E_COMMERCE",
  "action": "SALE",
  "status": "CONFIRMED",
  "state": "ACCEPTED",
  "merchant_account": "12346789",
  "merchant_category_code": "1234",
  "amount": 100,
  "amount_received": 100,
  "amount_retained": 100,
  "payment_method": "card",
  "card_type": "Visa Debit",
  "card_scheme": "Visa",
  "currency_symbol": "£",
  "currency_exponent": "2",
  "last_4": "1234",
  "card_hash": "string",
  "card_issuer": "string",
  "card_expiry": "string",
  "card_issuing_country": "United Kingdom",
  "customer_name": "string",
  "customer_address": "string",
  "customer_postcode": "string",
  "customer_country": "string",
  "customer_email": "string",
  "customer_ip": "string",
  "security_address_check": "matched",
  "security_post_code_check": "matched",
  "security_3d_secure_check": "authenticated",
  "security_risk_check": "Y",
  "security_cvv2_check": "matched",
  "token_uuid": "string",
  "payment_request": {
    "uuid": "98edad0a-83bd-44f7-8e67-f7db7e9fbc73",
    "merchant_id": "string",
    "action": "SALE",
    "amount": 100,
    "type": "1",
    "currency_code": "GBP",
    "country_code": "GBR",
    "customer_name": "string",
    "customer_billing_email": "string",
    "customer_billing_address": "string",
    "customer_billing_post_code": "string",
    "reference": "9485b43b-00d3-4fdd-9ddc-84383afcd067",
    "description": "10 Credits",
    "meta": {}
  },
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» uuid string(uuid) false none none
» payment_type string false none none
» environment string false none none
» transaction_id string false none none
» cross_reference string false none none
» type string false none none
» action string false none none
» status string false none none
» state string false none none
» merchant_account string false none none
» merchant_category_code string false none none
» amount integer false none none
» amount_received integer false none none
» amount_retained integer false none none
» payment_method string false none none
» card_type string false none none
» card_scheme string false none none
» currency_symbol string false none none
» currency_exponent string false none none
» last_4 string false none none
» card_hash string false none Hash of the unique card number, expiry, and CVV.
» card_issuer string false none none
» card_expiry string false none none
» card_issuing_country string false none none
» customer_name string false none none
» customer_address string false none none
» customer_postcode string false none none
» customer_country string false none none
» customer_email string false none none
» customer_ip string false none none
» security_address_check string false none none
» security_post_code_check string false none none
» security_3d_secure_check string false none none
» security_risk_check string false none none
» security_cvv2_check string false none none
» token_uuid string false none none
» payment_request object false none none
»» uuid string(uuid) false none none
»» merchant_id string false none none
»» action string false none none
»» amount integer false none none
»» type string false none none
»» currency_code string false none none
»» country_code string false none none
»» customer_name string false none none
»» customer_billing_email string false none none
»» customer_billing_address string false none none
»» customer_billing_post_code string false none none
»» reference string false none none
»» description string false none none
»» meta object false none none
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Create a refund from an existing payment.

Code samples

# You can also use wget
curl -X DELETE https://api.vendreo.com/v1/card/payment/{paymentCard}/refund \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.vendreo.com/v1/card/payment/{paymentCard}/refund', headers = headers)

print(r.json())

DELETE /v1/card/payment/{paymentCard}/refund

Creates a refund payment.

Body parameter

{
  "amount": 0,
  "reason": [
    "DUPLICATE_ORDER",
    "GOODS_RETURNED",
    "ORDER_CANCELLED",
    "MERCHANT_OUT_OF_STOCK",
    "GOODS_NOT_RECEIVED",
    "LATE_CONFIRMATION",
    "DISPUTES"
  ]
}

Parameters

Name In Type Required Description
paymentCard path string true none
body body CardRefundPaymentDetails false Refund a payment.

Example responses

200 Response

{
  "payment": {
    "payment_uuid": "98d9aa80-9632-4602-80f5-2f6ff9f93097",
    "environment": "SANDBOX",
    "amount": 1500,
    "options": [
      "string"
    ],
    "payment_request_uuid": "d91e2cb6-62c0-402d-b8a3-c58d80205b74",
    "payment_request_id": "12345"
  },
  "refund_payment": {
    "refund_uuid": "98f3f009-aca3-4c8f-bd4d-d1c9ff05b5a5",
    "environment": "SANDBOX",
    "amount": 1500
  },
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» payment object false none none
»» payment_uuid string false none none
»» environment string false none none
»» amount number false none none
»» options [string] false none none
»» payment_request_uuid string false none none
»» payment_request_id string false none none
» refund_payment object false none none
»» refund_uuid string false none none
»» environment string false none none
»» amount number false none none
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Stop a pending payment from being processed.

Code samples

# You can also use wget
curl -X DELETE https://api.vendreo.com/v1/card/payment/{paymentCard}/cancel \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.vendreo.com/v1/card/payment/{paymentCard}/cancel', headers = headers)

print(r.json())

DELETE /v1/card/payment/{paymentCard}/cancel

You can stop a payment from being processed by cancelling it.

Body parameter

{}

Parameters

Name In Type Required Description
paymentCard path string true none
body body CardCancelPaymentDetails false Allows you to cancel a payment that is being processed.

Example responses

200 Response

{
  "payment_uuid": "98f3ed2b-fca5-48e6-b7d3-a7745be3eeec",
  "amount": 1500,
  "options": [
    "string"
  ],
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» payment_uuid string false none none
» amount number false none none
» options [string] false none none
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Void Transaction.

Code samples

# You can also use wget
curl -X DELETE https://api.vendreo.com/v1/card/payment/{paymentCard}/void \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.vendreo.com/v1/card/payment/{paymentCard}/void', headers = headers)

print(r.json())

DELETE /v1/card/payment/{paymentCard}/void

Either cancels or refunds a payment.

Body parameter

{
  "amount": 0,
  "reason": [
    "DUPLICATE_ORDER",
    "GOODS_RETURNED",
    "ORDER_CANCELLED",
    "MERCHANT_OUT_OF_STOCK",
    "GOODS_NOT_RECEIVED",
    "LATE_CONFIRMATION",
    "DISPUTES"
  ]
}

Parameters

Name In Type Required Description
paymentCard path string true none
body body CardVoidPayment false Voids a transaction.

Example responses

200 Response

{
  "type": [
    "REFUND",
    "CANCEL"
  ],
  "payment": {
    "payment_uuid": "b1073176-a151-4923-b545-fa987e333530",
    "environment": "string",
    "amount": 0,
    "options": [],
    "payment_request_uuid": "string",
    "payment_request_id": "string"
  },
  "refund_payment": {
    "refund_uuid": "6a036737-fcc1-4a9b-b03c-3f39d33819b5",
    "environment": "string",
    "amount": 0
  },
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» type string false none Type of refund/cancel.
» payment object false none none
»» payment_uuid string(uuid) false none Payment UUID of the payment
»» environment string false none Environment of the payment
»» amount integer false none Amount of the payment
»» options array false none Amount of the payment
»» payment_request_uuid string false none Reference UUID of the payment request
»» payment_request_id string false none Reference ID of the payment request
» refund_payment object¦null false none none
»» refund_uuid string(uuid) false none Payment UUID of the created refund
»» environment string false none Environment of the refund
»» amount integer false none Amount of the refund
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Enumerated Values

Property Value
type ["REFUND","CANCEL"]

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

View all Ban Entries.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/card/bans \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/card/bans', headers = headers)

print(r.json())

GET /v1/card/bans

You can view all Ban Entries.

Body parameter

{}

Parameters

Name In Type Required Description
body body ListBan false Allows you to see what bans are currently active.

Example responses

200 Response

[
  {
    "id": "199",
    "type": "IP_ADDRESS",
    "reference_id": "8.8.8.8",
    "created_at": "2023-08-01 10:10:00"
  }
]

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» anonymous object false none none
»» id string false none none
»» type string false none none
»» reference_id string false none Reference of the ban.
»» expires_at string false none Expiry date of the ban.
»» created_at string false none When the ban was created.
» meta object false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Enumerated Values

Property Value
type ["IP_ADDRESS","CARD_HASH"]

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Banning a Card or IP address.

Code samples

# You can also use wget
curl -X POST https://api.vendreo.com/v1/card/bans/add \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.vendreo.com/v1/card/bans/add', headers = headers)

print(r.json())

POST /v1/card/bans/add

You can provide a Card Hash or IP Address to ban.

Body parameter

{
  "type": [
    "IP_ADDRESS",
    "CARD_HASH"
  ],
  "reference": "8.8.8.8",
  "expires_at": "2019-08-24T14:15:22Z"
}

Parameters

Name In Type Required Description
body body AddBan false Allows you to ban an IP address or a card PAN hash.

Example responses

200 Response

{
  "success": "true",
  "ban_id": 1500,
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» success boolean false none none
» ban_id number false none none
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Remove a banned Card or IP address.

Code samples

# You can also use wget
curl -X DELETE https://api.vendreo.com/v1/card/bans/{ban}/remove \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.vendreo.com/v1/card/bans/{ban}/remove', headers = headers)

print(r.json())

DELETE /v1/card/bans/{ban}/remove

You can remove a banned Card or IP address.

Body parameter

{}

Parameters

Name In Type Required Description
ban path string true none
body body RemoveBan false Allows deletion of a ban.

Example responses

200 Response

{
  "success": "true",
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» success boolean false none none
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Create a new payment from an existing token.

Code samples

# You can also use wget
curl -X POST https://api.vendreo.com/v1/card/token/{cardPaymentToken}/rebill \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.vendreo.com/v1/card/token/{cardPaymentToken}/rebill', headers = headers)

print(r.json())

POST /v1/card/token/{cardPaymentToken}/rebill

Obtain a payment token to be used with the Card JS SDK.

Body parameter

{
  "amount": "1999",
  "description": "string",
  "reference_id": "string",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "country_code": "GB",
  "currency": "GBP"
}

Parameters

Name In Type Required Description
cardPaymentToken path string true none
body body CardRebillPaymentDetails false Rebill a tokenized payment.

Example responses

200 Response

{
  "payment_uuid": "98f3a6d3-46b7-4b72-8a99-ca45ba2a70d0",
  "status": "COMPLETED",
  "environment": "SANDBOX",
  "payment_request_id": "15",
  "payment_request_uuid": "98f3a6d3-4381-4317-b465-a8c988f3f3a3",
  "options": [
    "string"
  ],
  "token": "98d9a8d3-556b-48e2-add4-6418ecbcd684",
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» payment_uuid string false none none
» status string false none none
» environment string false none none
» payment_request_id string false none none
» payment_request_uuid string false none none
» options [string] false none none
» token string false none none
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

AIS Integration

Create Authorization Request.

Code samples

# You can also use wget
curl -X POST https://api.vendreo.com/v1/ais/authorization \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.vendreo.com/v1/ais/authorization', headers = headers)

print(r.json())

POST /v1/ais/authorization

Registers Authorization Request and returns newly created payment link for user to be redirected to complete transaction.

Body parameter

{
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "cancel_url": "https://example.org/failed",
  "country_code": "GB",
  "description": "Payment for Order Number #325682",
  "reference_id": "string",
  "redirect_url": "https://example.org/success",
  "options": "{\"sessionId\":\"foo\"}"
}

Parameters

Name In Type Required Description
body body AISAuthorizationSchema false Makes request for AIS Authorization redirect URL.

Example responses

200 Response

{
  "authorization_id": "123456",
  "redirect_url": "https://pay.vendreo.com/ais/{uuid}",
  "meta": {
    "tracing_id": "6bc181f1-1512-493f-9c1c-81f66e479193"
  }
}

Responses

Status Meaning Description Schema
200 OK Successful response. Inline
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» authorization_id string false none none
» redirect_url string false none Where the user will be redirect upon success.
» meta object¦null false none none
»» tracing_id string(uuid) false none Tracing ID to allow support to track down issues.

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Code samples

# You can also use wget
curl -X DELETE https://api.vendreo.com/v1/ais/consent/{accountConsent}/cancel \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.vendreo.com/v1/ais/consent/{accountConsent}/cancel', headers = headers)

print(r.json())

DELETE /v1/ais/consent/{accountConsent}/cancel

Destroy a Consent rendering it unusable.

Body parameter

{}

Parameters

Name In Type Required Description
accountConsent path string true none
body body AISDefaultSchema false Used to make AIS calls.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/ais/consent/{accountConsent}/details \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/ais/consent/{accountConsent}/details', headers = headers)

print(r.json())

GET /v1/ais/consent/{accountConsent}/details

Get available information about a Consent referenced by accountConsent.

Body parameter

{}

Parameters

Name In Type Required Description
accountConsent path string true none
body body AISDefaultSchema false Used to make AIS calls.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get Identity details.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/ais/consent/{accountConsent}/identity \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/ais/consent/{accountConsent}/identity', headers = headers)

print(r.json())

GET /v1/ais/consent/{accountConsent}/identity

Get identity details

Body parameter

{}

Parameters

Name In Type Required Description
accountConsent path string true none
body body AISDefaultSchema false Used to make AIS calls.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get Accounts.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-accounts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-accounts', headers = headers)

print(r.json())

GET /v1/ais/consent/{accountConsent}/bank-accounts

Get a list of Accounts and their available information.

Body parameter

{}

Parameters

Name In Type Required Description
accountConsent path string true none
body body AISDefaultSchema false Used to make AIS calls.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get Institution.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/ais/consent/{accountConsent}/institution \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/ais/consent/{accountConsent}/institution', headers = headers)

print(r.json())

GET /v1/ais/consent/{accountConsent}/institution

Get available information about the Institution of a Consent.

Body parameter

{}

Parameters

Name In Type Required Description
accountConsent path string true none
body body AISDefaultSchema false Used to make AIS calls.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get Account.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/account \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/account', headers = headers)

print(r.json())

GET /v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/account

Get available information about an Account.

Body parameter

{}

Parameters

Name In Type Required Description
accountConsent path string true none
bankAccount path string true none
body body AISDefaultSchema false Used to make AIS calls.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get Transactions.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/transactions', headers = headers)

print(r.json())

GET /v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/transactions

Get a list of Transactions and their available information for an account.

Body parameter

{
  "date_from": "2022-01-01",
  "date_to": "2022-01-30",
  "page": 1
}

Parameters

Name In Type Required Description
accountConsent path string true none
bankAccount path string true none
body body AISTransactionSchema false Allows searching of AIS transactions.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline
422 Unprocessable Entity Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Status Code 422

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get Direct Debits.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/direct-debits \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/direct-debits', headers = headers)

print(r.json())

GET /v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/direct-debits

Get a list of Direct Debits and their available information for an account.

Body parameter

{}

Parameters

Name In Type Required Description
accountConsent path string true none
bankAccount path string true none
body body AISDefaultSchema false Used to make AIS calls.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get Periodic Payments.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/periodic-payments \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/periodic-payments', headers = headers)

print(r.json())

GET /v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/periodic-payments

Get a list of Periodic Payments and their available information for an account.

Body parameter

{}

Parameters

Name In Type Required Description
accountConsent path string true none
bankAccount path string true none
body body AISDefaultSchema false Used to make AIS calls.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get Scheduled Payments.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/scheduled-payments \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/scheduled-payments', headers = headers)

print(r.json())

GET /v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/scheduled-payments

Get a list of Scheduled Payments and their available information for an account.

Body parameter

{}

Parameters

Name In Type Required Description
accountConsent path string true none
bankAccount path string true none
body body AISDefaultSchema false Used to make AIS calls.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get Statements.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/statements \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/statements', headers = headers)

print(r.json())

GET /v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/statements

Get a list of Statements and their available information for an account.

Body parameter

{}

Parameters

Name In Type Required Description
accountConsent path string true none
bankAccount path string true none
body body AISDefaultSchema false Used to make AIS calls.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Get Statement.

Code samples

# You can also use wget
curl -X GET https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/statement/{statementId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.vendreo.com/v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/statement/{statementId}', headers = headers)

print(r.json())

GET /v1/ais/consent/{accountConsent}/bank-account/{bankAccount}/statement/{statementId}

Get available information about a Statement referenced by statementId.

Body parameter

{}

Parameters

Name In Type Required Description
accountConsent path string true none
bankAccount path string true none
statementId path string true none
body body AISDefaultSchema false Used to make AIS calls.

Example responses

401 Response

{
  "errors": {
    "field": [
      "Something is wrong with this field!"
    ]
  },
  "message": "The given data was invalid."
}

Responses

Status Meaning Description Schema
200 OK Successful response. None
401 Unauthorized Validation errors. Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» errors object false none none
»» additionalProperties [string] false none none
» message string false none none

Schemas

HeadlessSetupSchema

{
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05"
}

Properties

Name Type Required Restrictions Description
application_key string(uuid) true none Your Payment Profile Application API Key.

HeadlessRequestPaymentSchema

{
  "amount": "1999",
  "basket_items": [
    {
      "description": "string",
      "quantity": "10",
      "price": "199",
      "total": "1990"
    }
  ],
  "country_code": "GB",
  "currency": "GBP",
  "description": "Payment for Order Number #325682",
  "failed_url": "https://example.org/failed",
  "first_payment_date": "20/03/2020",
  "frequency": "daily",
  "payment_type": "PERIODIC",
  "parent_payment_id": 0,
  "redirect_url": "https://example.org/success",
  "reference_id": "string",
  "remote_institution_id": "barclays",
  "number_of_payments": 0,
  "options": "{\"sessionId\":\"foo\"}",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05"
}

Properties

Name Type Required Restrictions Description
amount integer true none Amount in pence you wish to charge eg £19.99 would be represented as 1999.
basket_items [object]¦null false none Used to provide the user a description of the basket contents on the payment summary screen.
» description string false none Description of the line item.
» quantity integer false none Quantity of the line item.
» price string false none Price per line item.
» total string false none Total price for the line item.
country_code string false none The country code of the transaction eg GB.
currency string true none The currency of the transaction eg GBP.
description string true none A short description of the payment.
failed_url string false none Where the user will be redirect upon failure.
first_payment_date string false none Initial charge date.
frequency string false none The recurring payment frequency following the initial payment. Note this is only used if payment_type is PERIODIC.
payment_type string true none The type of payment.
parent_payment_id integer¦null false none none
redirect_url string true none Where the user will be redirect upon success.
reference_id string true none Your internal reference for the transaction.
remote_institution_id string false none The users selected institution id.
number_of_payments integer false none Number of payments expected. Note this is only used with Periodic Payments.
options string¦null false none none
application_key string(uuid) true none Your Payment Profile Application API Key.

Enumerated Values

Property Value
frequency daily
frequency monthly
frequency weekly
payment_type PERIODIC
payment_type SINGLE

CardPaymentDetails

{}

Properties

None

CardVoidPayment

{
  "amount": 0,
  "reason": [
    "DUPLICATE_ORDER",
    "GOODS_RETURNED",
    "ORDER_CANCELLED",
    "MERCHANT_OUT_OF_STOCK",
    "GOODS_NOT_RECEIVED",
    "LATE_CONFIRMATION",
    "DISPUTES"
  ]
}

Properties

Name Type Required Restrictions Description
amount integer¦null false none Amount you want to refund.
reason string true none Reason for refunding the payment.

Enumerated Values

Property Value
reason ["DUPLICATE_ORDER","GOODS_RETURNED","ORDER_CANCELLED","MERCHANT_OUT_OF_STOCK","GOODS_NOT_RECEIVED","LATE_CONFIRMATION","DISPUTES"]

ListBan

{}

Properties

None

RemoveBan

{}

Properties

None

AddBan

{
  "type": [
    "IP_ADDRESS",
    "CARD_HASH"
  ],
  "reference": "8.8.8.8",
  "expires_at": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
type string true none Type of ban, for example (IP or card hash).
reference string true none Reference of the ban (Card Hash or IP).
expires_at string(date-time)¦null false none Expiry date of the ban.

Enumerated Values

Property Value
type ["IP_ADDRESS","CARD_HASH"]

CardCancelPaymentDetails

{}

Properties

None

CardRequestPaymentSchema

{
  "amount": "1999",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "country_code": "GB",
  "currency": "GBP",
  "customer_name": "Joe Blogs",
  "customer_billing_email": "Joe Blogs",
  "customer_billing_address": "123 Foo Street",
  "customer_billing_town": "London",
  "customer_billing_post_code": "GB",
  "customer_billing_country_code": "AA1 1AA",
  "tokenize_payment": "true",
  "enable_address_field": "true",
  "enable_verify_card": "true",
  "mandate_3ds_challenge": "true",
  "ip_address": "1.12.123.255",
  "description": "Payment for Order Number #325682",
  "reference_id": "string",
  "options": "{\"sessionId\":\"foo\"}"
}

Properties

Name Type Required Restrictions Description
amount integer true none Amount in pence you wish to charge eg £19.99 would be represented as 1999.
application_key string(uuid) true none Your Payment Profile Application API Key.
country_code string true none The country code of the transaction eg GB.
currency string true none The currency of the transaction eg GBP.
customer_name string false none The name of the customer.
customer_billing_email string false none The name of the customer (If empty, card form will display this field).
customer_billing_address string false none The billing address of the customer (If empty, card form will display this field).
customer_billing_town string false none The billing town of the customer (If empty, card form will display this field).
customer_billing_post_code string false none The billing postcode of the customer (If empty, card form will display this field).
customer_billing_country_code string false none The billing country code of the customer (If empty, card form will display this field).
tokenize_payment boolean¦null false none Tokenize card payment details for re-billing
enable_address_field boolean¦null false none Require the customer to provide an address
enable_verify_card boolean¦null false none Ensure a card is valid and active without charging the card (Amount field must be 0 when this field is active)
mandate_3ds_challenge boolean¦null false none Disables frictionless 3D secure payments
ip_address string¦null false none IP v4 address of client making the transaction using dotted decimal notation (eg. 1.12.123.255). This should be provided where possible to aid fraud prevention.
description string true none A short description of the payment.
reference_id string true none Your internal reference for the transaction.
options string¦null false none none

CardRebillPaymentDetails

{
  "amount": "1999",
  "description": "string",
  "reference_id": "string",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "country_code": "GB",
  "currency": "GBP"
}

Properties

Name Type Required Restrictions Description
amount integer true none Amount in pence you wish to charge eg £19.99 would be represented as 1999.
description string true none Description of the payment.
reference_id string true none Your internal reference for the transaction.
application_key string(uuid) true none Your Payment Profile Application API Key.
country_code string true none The country code of the transaction eg GB.
currency string true none The currency of the transaction eg GBP.

CardRefundPaymentDetails

{
  "amount": 0,
  "reason": [
    "DUPLICATE_ORDER",
    "GOODS_RETURNED",
    "ORDER_CANCELLED",
    "MERCHANT_OUT_OF_STOCK",
    "GOODS_NOT_RECEIVED",
    "LATE_CONFIRMATION",
    "DISPUTES"
  ]
}

Properties

Name Type Required Restrictions Description
amount integer¦null false none Amount you want to refund.
reason string true none Reason for refunding the payment.

Enumerated Values

Property Value
reason ["DUPLICATE_ORDER","GOODS_RETURNED","ORDER_CANCELLED","MERCHANT_OUT_OF_STOCK","GOODS_NOT_RECEIVED","LATE_CONFIRMATION","DISPUTES"]

AISTransactionSchema

{
  "date_from": "2022-01-01",
  "date_to": "2022-01-30",
  "page": 1
}

Properties

Name Type Required Restrictions Description
date_from string¦null false none Retrieve transactions with a date on or after this date.
date_to string¦null false none Retrieve transactions with a date on or before this date.
page integer¦null false none Which page of the paginated results to return.

AISDefaultSchema

{}

Properties

None

AISAuthorizationSchema

{
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "cancel_url": "https://example.org/failed",
  "country_code": "GB",
  "description": "Payment for Order Number #325682",
  "reference_id": "string",
  "redirect_url": "https://example.org/success",
  "options": "{\"sessionId\":\"foo\"}"
}

Properties

Name Type Required Restrictions Description
application_key string(uuid) true none Your Payment Profile Application API Key.
cancel_url string true none Where the user will be redirect upon failure.
country_code string true none The country code of the transaction eg GB.
description string false none A short description of the payment.
reference_id string true none Your internal reference for the transaction.
redirect_url string true none Where the user will be redirect upon success.
options string¦null false none none

PaymentsSchema

{
  "payments": [
    "c012a5cc-5435-4935-b8f3-b022f2605df8"
  ]
}

Properties

Name Type Required Restrictions Description
payments [string]¦null true none The payment uuids that you wish to retrieve.

PaymentSchema

{}

Properties

None

RequestPaymentSchema

{
  "amount": "1999",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "basket_items": [
    {
      "description": "string",
      "quantity": "10",
      "price": "199",
      "total": "1990"
    }
  ],
  "country_code": "GB",
  "currency": "GBP",
  "description": "Payment for Order Number #325682",
  "failed_url": "https://example.org/failed",
  "first_payment_date": "20/03/2020",
  "frequency": "daily",
  "number_of_payments": 0,
  "payment_type": "PERIODIC",
  "parent_payment_id": 0,
  "reference_id": "string",
  "redirect_url": "https://example.org/success",
  "options": "{\"sessionId\":\"foo\"}"
}

Properties

Name Type Required Restrictions Description
amount integer true none Amount in pence you wish to charge eg £19.99 would be represented as 1999.
application_key string(uuid) true none Your Payment Profile Application API Key.
basket_items [object]¦null false none Used to provide the user a description of the basket contents on the payment summary screen.
» description string false none Description of the line item.
» quantity integer false none Quantity of the line item.
» price string false none Price per line item.
» total string false none Total price for the line item.
country_code string false none The country code of the transaction eg GB.
currency string true none The currency of the transaction eg GBP.
description string true none A short description of the payment.
failed_url string false none Where the user will be redirect upon failure.
first_payment_date string false none Initial charge date.
frequency string false none The recurring payment frequency following the initial payment. Note this is only used if payment_type is PERIODIC.
number_of_payments integer false none Number of payments expected. Note this is only used with Periodic Payments.
payment_type string true none The type of payment.
parent_payment_id integer¦null false none none
reference_id string true none Your internal reference for the transaction.
redirect_url string true none Where the user will be redirect upon success.
options string¦null false none none

Enumerated Values

Property Value
frequency daily
frequency monthly
frequency weekly
payment_type PERIODIC
payment_type SINGLE
payment_type CARD

CreateSubscriptionSchema

{
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "country_code": "GB",
  "currency": "GBP",
  "description": "Payment for Order Number #325682",
  "first_amount": "1999",
  "frequency": "daily",
  "number_of_payments": 0,
  "recurring_amount": "1999",
  "redirect_url": "https://example.org/success",
  "reference_id": "string",
  "options": "{\"sessionId\":\"foo\"}"
}

Properties

Name Type Required Restrictions Description
application_key string(uuid) true none Your Payment Profile Application API Key.
country_code string false none The country code of the transaction eg GB.
currency string true none The currency of the transaction eg GBP.
description string true none A short description of the payment.
first_amount integer true none Initial amount in pence you wish to charge eg £19.99 would be represented as 1999.
frequency string false none The recurring payment frequency following the initial payment. Note this is only used if payment_type is PERIODIC.
number_of_payments integer false none Number of payments expected. Note this is only used with Periodic Payments.
recurring_amount integer true none Recurring amount in pence you wish to charge eg £19.99 would be represented as 1999.
redirect_url string true none Where the user will be redirect upon success.
reference_id string true none Your internal reference for the transaction.
options string¦null false none none

Enumerated Values

Property Value
frequency daily
frequency monthly
frequency weekly

RequestOutgoingPaymentSchema

{
  "account_name": "Mr Joe Bloggs",
  "account_number": "12345678",
  "amount": "1999",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05",
  "currency": "GBP",
  "description": "Payment for Order Number #325682",
  "options": "{\"sessionId\":\"foo\"}",
  "original_payment_uuid": "c012a5cc-5435-4935-b8f3-b022f2605df8",
  "redirect_url": "https://example.org/success",
  "sort_code": "123456"
}

Properties

Name Type Required Restrictions Description
account_name string¦null false none The receiving bank account owner name.
account_number string¦null false none The receiving bank account number.
amount integer true none Amount in pence you wish to send eg £19.99 would be represented as 1999.
application_key string(uuid) true none Your Payment Profile Application API Key.
currency string true none The currency of the transaction eg GBP.
description string true none A short description of the payment.
options string¦null false none none
original_payment_uuid string(uuid)¦null false none none
redirect_url string true none Where the user will be redirect upon success.
sort_code string¦null false none The receiving bank account sort code.

RequestAPaymentSchema

{
  "amount": "1999",
  "currency": "GBP",
  "description": "Payment for Order Number #325682",
  "redirect_url": "https://example.org/success",
  "application_key": "19899181-5f37-4282-90d1-683e69cf3d05"
}

Properties

Name Type Required Restrictions Description
amount integer true none Amount in pence you wish to charge eg £19.99 would be represented as 1999.
currency string true none The currency of the transaction eg GBP.
description string true none A short description of the payment.
redirect_url string true none Where the user will be redirect upon success.
application_key string(uuid) true none Your Payment Profile Application API Key.