Ibanera Customer API
Customer Portal
  • Overview
  • Terminology
    • Exchanges of Assets
    • Payees
    • Personal Customers
    • Business Customers
      • Managees
    • Enumerations, Codes and Definitions
      • Source of Funds Types
      • Transfer Purpose Codes Reference
  • Getting Started
    • Access the API
    • API Principal Account
    • Common Response Format
    • First API Call
    • Authentication & Authorization
      • Generating a Time-Based One-Time Password (TOTP) with a Shared Secret
  • API Endpoints
    • Accounts
    • Business Onboarding
    • Cards
    • Crypto Exchanges
    • Foreign Currency Exchange
    • Payees (Beneficiaries)
    • Transfers
    • Transaction Cancellation
    • Managees
    • Information Requests (RFIs)
    • Quick Buy
    • Simulated Testing
  • Callbacks
    • Managee Jumio Completed
    • Cryptocurrency Transfers
    • Exchange Status Updated
    • Fiat Deposit Received
    • Managee Card Approval Updated
    • Managee KYC Updated
    • Transaction Status Updated
    • Information Requests
  • QuickBuy
    • QuickBuy Callback
    • QuickBuy Front End Implementation
    • Validating the Webhook Signature
    • QuickBuy Pro
      • Visual Customization
      • Getting Started / Authentication
      • API Endpoints
        • Create Payment
        • Retrieve Payments
        • Delete Payment
      • Callbacks
        • Payment Captured
        • Cryptocurrency Transferred
Powered by GitBook
On this page
  1. API Endpoints

Quick Buy

PreviousInformation Requests (RFIs)NextSimulated Testing

Last updated 3 days ago

The Quick Buy module provides the infrastructure to perform buy exchanges on behalf of customers, using a customer's external financial card. This module includes a series of endpoints tailored to the needs of users looking to perform and monitor quick buy exchanges for their customers, as well as manage their saved cards.

Offering functions from quoting to execution, along with detailed tracking mechanisms, the Quick Buy module endpoints include:

Onboarding:

  • - Onboard a new customer account for using QuickBuy.

  • - Upload Documents for a newly onboarded QuickBuy Customer, if using external KYC.

Card Management:

  • - Retrieve a list of payment cards associated with a customer.

  • - Enables a user to retrieve information about a payment card by submitting the ID of the payment card.

  • - Allows a user to delete a payment card, removing it from being an option for further exchanges.

Exchanges:

  • : Provides a list of asset pairs enabled for the API user and available for quick buy. The response will also include information on limits and minimums associated with each asset pair for exchanges.

  • : Provides an estimate for a quick buy exchange, detailing the price and amount before the actual exchange is executed, ensuring that the customer is informed about the potential transaction.

  • : This endpoint will allow a customer to initiate a quick buy exchange. The customer can either use a saved payment card or enter details of a payment card. The user has the option of saving the payment card for use in further exchanges.

  • : Provides a generated list of quick buy exchanges, with the ability to filter by customer, order type, and more.

  • : Provides a details of a quick buy order buy submitting the ID of the exchange.


Create QuickBuy Customer

This endpoint facilitates the onboarding of a QuickBuy-only customer with minimal required information. It is intended for widget-based applications and other simplified onboarding interfaces strictly for the QuickBuy product, providing a leaner alternative to the full managee onboarding process.

  • Endpoint: /api/v1/customer/quick-buy/onboard

  • Method: POST

Important to Note

  • Customers created via this endpoint cannot access Ibanera banking services.

  • For real-time status update, use the Customer Detail API /api/v1/customer/details.

  • If the response contains jumioLink, the customer must complete that verification step before eligible to submit exchanges.

KYC Collection

Ibanera collects KYC for QuickBuy/Portl customers. This endpoint offers the flexibility of either using Ibanera's ID Verification provider, Jumio, or using your own IDv solution. The below section outlines each approach can be executed.

Using Ibanera's ID Verification

bUseJumio = true (Jumio Verification Required)

Request Body Parameters

{
  "bUseJumio": true,
  "customerReference": "your-customer-reference-1234",
  "email": "user.email@ibanera.com",
  "firstName":"John",
  "lastName": "Doe",
  "dob": "1995-01-15",
  "phone": "+18001234567",
  "address": {
    "line1": "123 Main St",
    "line2": "Unit 1a",
    "city": "City",
    "state": "TX",
    "postcode": "12345",
    "countryISO": "US"
  },
  "nationalityISO": "US",
  "bAcceptTermsAndConditions": true,
  "bAcceptPrivacyPolicy": true
}

Upon successful creation, the API will return a Jumio verification link that the user must follow to complete KYC. This verification link is accessible in the jumioLink field.

Response Body Parameters:

  • id (Integer): A placeholder ID not actively used in the response.

  • details (Object):

    • customersId(bigint): Newly Created Customer ID

Response Body Example

{
    "id": 0,
    "details": {
        "customersId": 12345,
        "jumioLink": "https://customer-uat.ibanera.com/manageesidverification?token=IXMFastM8ZcQSt...."
    },
    "status": "1",
    "errors": []
}

Using External IDv Provider

bUseJumio = false (IDv Collected Externally)

Enumeration Values

DocumentType

Name
Description

PASSPORT

Customer Passport, clearly displaying key identification details page

DRIVING_LICENSE

Drivers License documentation

ID_CARD

Identification Card document

VISA

Customer Visa document

Document Sub Type

Name
Description

NOTIONAL_ID

Customer Passport, clearly displaying key identification details page

CONSULAR_ID

Drivers License documentation

ELECTORAL_ID

Identification Card document

RESIDENT_PERMIT_ID

Customer Visa document

TAX_ID

Customer selfie photo, must be clear

STUDENT_ID

Customer Proof of Address, must be within 90 days to be accepted

PASSPORT_CARD_ID

Passport Identification Card

MILITARY_ID

Military Identification Card

PUBLIC_SAFETY_ID

Public Safety Identification Card

HEALTH_ID

Health Identification Card

OTHER_ID

Other Identification Card

VISA

Visa Identification Card

REGULAR_DRIVING_LICENSE

Use when DocumentType is DRIVING_LICENSE, for regular drivers license

LEARNING_DRIVING_LICENSE

Use when DocumentType is DRIVING_LICENSE, for learners drivers license or permit

E_PASSPORT

Use when DocumentType is PASSPORT

Decision Results

Name
Description

NOT_EXECUTED

ID Verification Workflow not executed

PASSED

ID Verification Workflow Passed Successfully

REJECTED

ID Verification was Rejected

WARNING

ID Verification completed with warning

Request Payload Example

{
    "bUseJumio": false,
    "customerReference": "your-customer-reference-1234",
    "email": "user.email@ibanera.com",
    "firstName":"John",
    "lastName": "Doe",
    "dob": "1995-01-15",
    "phone": "+18001234567",
    "address": {
        "line1": "123 Main St",
        "line2": "Unit 1A",
        "city": "City",
        "state": "TX",
        "postcode": "12345",
        "countryISO": "US"
    },
    "nationalityISO": "US",
    "bAcceptTermsAndConditions": true,
    "bAcceptPrivacyPolicy": true,
    "kycVerificationDetails": {
        "documentType": "ID_CARD",
        "subType": "NATIONAL_ID",
        "issuingCountry": "USA",
        "firstName": "JOHN",
        "lastName": "DOE",
        "dateOfBirth": "1995-01-15",
        "expiryDate": "2028-01-15",
        "documentNumber": "1234567890",
        "gender": "M",
        "workFlowDecisionResult": "PASSED", // "PASSED" means that the IDv solution confirmed the identity
        "capabilities": {
            "liveLinessDecisionResult": "PASSED", // "PASSED" means liveliness was checked and passed
            "similarityDecisionResult": "PASSED" // "PASSED" means similarity checks between selfie and ID document was checked and passed
        }
    }
}

Once submitted successfully, the API will respond with the kycDocumentsRequired to complete the onboarding. These documents can be submitted via the Upload Document endpoint below.

Response Payload (Success Example)

{
    "id": 3044,
    "details": {
        "customersId": 15070,
        "kycDocumentsRequired": [
            {
                "type": "ID_CARD",
                "supportingDocumentTypes": null,
                "sidesRequired": [
                    "Front",
                    "Back"
                ]
            },
            {
                "type": "SELFIE",
                "supportingDocumentTypes": null,
                "sidesRequired": [
                    "Face"
                ]
            }
        ]
    },
    "status": "1",
    "errors": []
}

Response Payload (Failure Example)

{
    "id": 0,
    "details": null,
    "status": "0",
    "errors": [
        {
            "fieldName": "ErrorLabel",
            "messageCode": "User already exists"
        }
    ]
}

Upload Documents (For QuickBuy Customer Onboarding)

Upload individual KYC documents (e.g., ID Front, ID Back, Face Photo) associated with the Customer Id received from Step 1.


  • Endpoint: POST /api/v1/customer/quick-buy/uploaddocument

  • Request Format: multipart/form-data


Validation:

  • Max allowed file size: 10 MB

  • Only image/PDF formats allowed.


📄 Request Payload

Parameter

Type

Description

CustomerId

int

Unique identifier of the customer, obtained from onboard endpoint

Type

enum

Type of document being uploaded, obtained from result of onboard endpoint

DocumentSide

enum

Side of the document (e.g., Front, Back, Face)

File

file

The document file to be uploaded

Type Enumeration Values

Name
Description

Front

Front side of Identification Document

Back

Back side of Identification Document

Face

Selfie of customer

Response Payload (Success Example)

{
    "id": 0,
    "details": {
        "bSuccess": true,
        "documentID": "912afb60-fe22-4634-9428-54d5e5ebf3e1"
    },
    "status": "1",
    "errors": []
}

Response Payload (Failure Example)

{
    "id": 0,
    "status": "0",
    "errors": [
        {
            "fieldName": "CustomerId",
            "messageCode": "CustomerId is required"
        }
    ]
}

List Cards

Retrieve a list of payment cards associated with a customer

  • Endpoint: /api/v1/customer/quick-buy/cards/list

  • Method: GET

Request Query Example

{{endpoint}}/api/v1/customer/quick-buy/cards/list?customersId=14349

Response Body Example

{
    "id": 0,
    "details": [
        {
            "id": 1227,
            "cardholderName": "John Doe",
            "cardDescription": "ECMC...0004",
            "cardType": "ECMC_CREDIT",
            "cardLast4Digits": "0004",
            "expiryDate": null
        }
    ],
    "status": "1",
    "errors": []
}

Get Card by ID

Enables a user to retrieve information about a payment card by submitting the ID of the payment card.

  • Endpoint: /api/v1/customer/quick-buy/cards/getbyid

  • Method: GET

Request Query Example

{{endpoint}}/api/v1/customer/quick-buy/cards/getbyid?customersId=14349&paymentCardsId=1229

Response Body Example

{
    "id": 0,
    "details": {
        "id": 1229,
        "cardholderName": "John Doe",
        "cardDescription": "VISA...1111",
        "cardType": "VISA_CREDIT",
        "cardLast4Digits": "1111",
        "expiryDate": "2025-12-31T00:00:00"
    },
    "status": "1",
    "errors": []
}

Delete Card

Allows a user to delete a payment card, removing it from being an option for further exchanges.

  • Endpoint: /api/v1/customer/quick-buy/cards/delete

  • Method: POST

Request Query Example

{{endpoint}}/api/v1/customer/quick-buy/cards/delete?customersId=14349&paymentCardsId=1226

Response Body Example

{
    "id": 1226,
    "status": "1",
    "errors": []
}

Get Available Asset Pairs

Provides a list of asset pairs enabled for the API user and available for quick buy. The response will also include information on limits and minimums associated with each asset pair for exchanges.

  • Endpoint: /api/v1/customer/quick-buy/orders/assets

  • Method: GE

Request Query Example

{{endpoint}}/api/v1/customer/quick-buy/orders/assets

Response Body Example

{
    "id": 0,
    "details": [
        {
            "assetCode": "BTC",
            "assetSymbol": "₿",
            "assetName": "Bitcoin",
            "buyPrice": 67466.800000000000000000,
            "minAmount": 0.000100000000000000,
            "maxAmount": 10.000000000000000000,
            "minPrice": 15.000000000000000000,
            "maxPrice": 200000.000000000000000000,
            "maxDecimalPrecision": 0
        }
    ],
    "status": "1",
    "errors": []
}

Get Quote

This endpoint provides a quoted market price for a proposed asset exchange for a particular customer, detailing the amount and price for an exchange. By specifying details of the desired trade, a customer can see the cost or proceeds they might expect from completing a transaction, including any applicable fees. This helps customers decide whether to proceed with an exchange based on real-time financial data. For quick buy exchanges, all exchanges will refer to the specified crypto currency being bought in exchange for fiat currency.

  • Endpoint: /api/v1/customer/quick-buy/orders/quote

  • Method: GET

Query Parameters:

  • customersId (Integer): ID of the customer making the exchange—required.

  • assetCode (String): The crypto currency to be bought, such as "BTC"—required.

  • assetAmount (Decimal, Nullable): Desired amount of crypto currency to be bought. Must be null if currencyAmount is specified.

  • currenyAmount (Decimal, Nullable): Desired amount of currency to be exchanged. Must be null if assetAmount is specified.

Response Body Parameters:

  • id (Integer): Not used.

  • details (Object): Contains the quote details.

    • customersId (Integer): ID of the customer.

    • assetCode (String): Crypto currency asset to be bought in the exchange.

    • currenyCode (String): Fiat currency asset involved in the exchange.

    • assetAmount (Decimal): Amount of crypto currency asset to be bought.

    • currencyAmount (Decimal): Amount of fiat currency required for exchange.

Request Query Example

{{endpoint}}/api/v1/customer/quick-buy/orders/quote?customersId=14349&assetCode=BTC&currencyAmount=500

Response Body Example

{
    "id": 14349,
    "details": {
        "customersId": 14349,
        "assetCode": "BTC",
        "currencyCode": "USD",
        "assetAmount": 0.00705853,
        "currencyAmount": 500.0
    },
    "status": "1",
    "errors": []
}

Possible Error Codes

Error Message Code
Description

Required

Named field missing or zero

Invalid

Value given for named field is invalid

Documents_Not_Verified

Cannot perform this action for this customer due to the KYC state

Amount_Must_Be_Positive

Invalid or missing amount


Submit Exchange

This endpoint is intended for initiating a quick buy exchange, enabling a customer to purchase an asset at a specified price.

  • Endpoint: /api/v1/customer/quick-buy/orders/submit

  • Method: POST

Request Body Parameters:

  • customersId (Integer): ID of the customer making the exchange—required.

  • assetCode (String): The crypto currency to be bought, such as "BTC"—required.

  • assetAmount (Decimal, Required): Desired amount of crypto currency to be bought.

  • currenyAmount (Decimal, Required): Desired amount of currency to be exchanged.

  • paymentCardsId (Integer, Nullable): Id of saved payment card. Must be null if CardDetails is not null.

  • cardDetails (JSON Object): Details of payment card. Must be null if paymentCardsId is not null.

    • cardNumber (String, Required): Card number.

    • cvv (String, Required): Card CVV

    • cardHolderName (String, Required): Cardholder name.

    • addressLine1 (String, Required): Cardholder address line 1.

    • addressLine2 (String): Cardholder address line 2.

    • townCity (String, Required): Cardholder town or city.

    • countryISO2 (String, Required): Cardholder country of address.

    • stateProvince (String, Required): Cardholder state or province.

    • postCode (String, Required): Cardholder ZIP/Postal Code.

    • expMonth (Integer, Required): Card expiration month.

    • expYear (Integer, Required): Card expiration year.

    • bSaveCard (Boolean, Required): Indicates whether the payment card should be saved.

Request Example:

{
    "customersId": 14349,
    "assetCode": "BTC",
    "assetAmount": 0.00718246,
    "currencyAmount": 500,
    "paymentCardsId": null,
    "cardDetails": {
        "cardNumber": "4111111111111111",
        "cvv": "123",
        "cardholderName": "John Doe",
        "addressLine1": "123 Main St",
        "addressLine2": "Apt 4B",
        "townCity": "Springfield",
        "countryISO2": "US",
        "stateProvince": "IL",
        "postCode": "62704",
        "expMonth": 12,
        "expYear": 2025,
        "bSaveCard": true
    }
}

Response Body Parameters:

  • id (Integer): Not used.

  • details (Object):

    • status (String): The status of the transaction, such as "Pending".

      • Possible values: Pending, Failed, Approved, ActionRequired.

    • exchangesId(Integer): The ID of the associated asset exchange.

Success Response Example:

{
    "id": 0,
    "details": {
        "status": "Approved",
        "exchangesId": 14483
    },
    "status": "1",
    "errors": []
}

Possible Error Codes

Error Message Code
Description

Required

Named field missing or zero

Invalid

Value given for named field is invalid

Documents_Not_Verified

Cannot perform this action for this customer due to the KYC state


List Exchanges

Provides a system generated list of quick buy exchanges, with ability to filter by the the customersID or asset pair.

  • Endpoint: /api/v1/customer/quick-buy/orders/list

  • Method: GET

Request Query

Optional Request Query Parameters:

  • customersId (Integer): The ID of the customer initiating the purchase.

  • assetPair (String): The asset pair to be filtered, such as "BTC/USDC".

  • PageNumber (Integer): List page number (default = 1)

  • PageSize (Integer): List page size (default = 10)

Request Query Example

{{endpoint}}/api/v1/customer/quick-buy/orders/list?customersId=14349

Response Body Example


{
    "id": 1777,
    "details": [
        {
            "id": 14487,
            "exchangeType": "Buy",
            "status": "Completed",
            "creditTransactionsId": 79311,
            "customersId": 14349,
            "assetPair": "BTC/USD",
            "requestAmount": 0.007113640000000000,
            "requestPrice": 500.000000000000000000,
            "executedAmount": 0.007144470000000000,
            "executedPrice": 500.000000000000000000,
            "commissionFee": 21.530000000000000000,
            "transferType": null,
            "bHasOpenRfi": false,
            "paymentCardsId": 1229,
            "cardDescription": "VISA...1111"
        },
        {
            "id": 14484,
            "exchangeType": "Buy",
            "status": "Pending",
            "creditTransactionsId": 78928,
            "customersId": 14349,
            "assetPair": "BTC/USD",
            "requestAmount": 0.007080710000000000,
            "requestPrice": 500.000000000000000000,
            "executedAmount": null,
            "executedPrice": null,
            "commissionFee": 21.530000000000000000,
            "transferType": null,
            "bHasOpenRfi": false,
            "paymentCardsId": 1229,
            "cardDescription": "VISA...1111"
        }
    ],
    "pageSize": 10,
    "pageNumber": 1,
    "numberOfPages": 2,
    "status": "1",
    "errors": []
}

Get Order by Id

Provides a system generated list of quick buy exchanges, with ability to filter by the the customersID or asset pair.

  • Endpoint: /api/v1/customer/quick-buy/orders/getbyid

  • Method: GET

Request Query

Optional Request Query Parameters:

  • customersId (Integer): The ID of the customer initiating the purchase.

  • assetPair (String): The asset pair to be filtered, such as "BTC/USDC".

  • PageNumber (Integer): List page number (default = 1)

  • PageSize (Integer): List page size (default = 10)

Request Query Example

{{endpoint}}/api/v1/customer/quick-buy/orders/getbyid?exchangesId=14468

Response Body Example

{
    "id": 1777,
    "details": {
        "id": 14468,
        "exchangeType": "Buy",
        "status": "Completed",
        "creditTransactionsId": 76573,
        "customersId": 14349,
        "assetPair": "BTC/USD",
        "requestAmount": 0.007186150000000000,
        "requestPrice": 500.000000000000000000,
        "executedAmount": 0.007211890000000000,
        "executedPrice": 500.000000000000000000,
        "commissionFee": 21.530000000000000000,
        "transferType": null,
        "bHasOpenRfi": false,
        "paymentCardsId": 1226,
        "cardDescription": "VISA...1111"
    },
    "status": "1",
    "errors": []
}

jumioLink(Array of Objects): Newly created customer will require to validate email from portl link (e.g. ) before further identity verification on this jumio link.

When using an external IDv provider, there are two steps to the onboarding process. The first step is to submit the customer details as defined below. Once the customer is created, you must then , which would be the externally collected ID verification documents.

https://portl-uat.ibanera.com
use an additional API endpoint to Upload Documents
Create QuickBuy Customer
Upload Documents (For QuickBuy Customer Onboarding)
List Cards
Get Card by ID
Delete Card
Get Available Asset Pairs
Get Quote
Submit Exchange
List Exchanges
Get Order by ID

Get saved payment cards

get
Authorizations
Query parameters
customersIdinteger · int32Optional
Header parameters
otpstringRequired

One time pass for the request

Responses
200
OK
application/json
400
Bad Request
application/json
get
GET /api/v1/customer/quick-buy/cards/list HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
otp: text
Accept: */*
{
  "status": "text",
  "errors": [
    {
      "errorType": "text",
      "fieldName": "text",
      "messageCode": "text"
    }
  ],
  "id": 1,
  "details": [
    {
      "id": 1,
      "cardholderName": "text",
      "cardDescription": "text",
      "cardType": "text",
      "cardLast4Digits": "text",
      "expiryDate": "2025-05-17T08:45:59.424Z"
    }
  ]
}

Get saved payment card by id

get
Authorizations
Query parameters
customersIdinteger · int32Optional
paymentCardsIdinteger · int32Optional
Header parameters
otpstringRequired

One time pass for the request

Responses
200
OK
application/json
400
Bad Request
application/json
get
GET /api/v1/customer/quick-buy/cards/getbyid HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
otp: text
Accept: */*
{
  "status": "text",
  "errors": [
    {
      "errorType": "text",
      "fieldName": "text",
      "messageCode": "text"
    }
  ],
  "id": 1,
  "details": [
    {
      "id": 1,
      "cardholderName": "text",
      "cardDescription": "text",
      "cardType": "text",
      "cardLast4Digits": "text",
      "expiryDate": "2025-05-17T08:45:59.424Z"
    }
  ]
}

Delete saved payment card by id

post
Authorizations
Query parameters
customersIdinteger · int32Optional
paymentCardsIdinteger · int32Optional
Header parameters
otpstringRequired

One time pass for the request

Responses
200
OK
application/json
400
Bad Request
application/json
post
POST /api/v1/customer/quick-buy/cards/delete HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
otp: text
Accept: */*
{
  "status": "text",
  "errors": [
    {
      "errorType": "text",
      "fieldName": "text",
      "messageCode": "text"
    }
  ],
  "id": 1,
  "details": {
    "id": 1,
    "cardholderName": "text",
    "cardDescription": "text",
    "cardType": "text",
    "cardLast4Digits": "text",
    "expiryDate": "2025-05-17T08:45:59.424Z"
  }
}

Get available exchanges

get
Authorizations
Header parameters
otpstringRequired

One time pass for the request

Responses
200
OK
application/json
400
Bad Request
application/json
get
GET /api/v1/customer/quick-buy/orders/assets HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
otp: text
Accept: */*
{
  "status": "text",
  "errors": [
    {
      "errorType": "text",
      "fieldName": "text",
      "messageCode": "text"
    }
  ],
  "id": 1,
  "details": [
    {
      "assetCode": "text",
      "assetSymbol": "text",
      "assetName": "text",
      "buyPrice": 1,
      "minAmount": 1,
      "maxAmount": 1,
      "minPrice": 1,
      "maxPrice": 1,
      "maxDecimalPrecision": 1
    }
  ]
}

Get quote for exchange

get
Authorizations
Query parameters
CustomersIdinteger · int32Optional
CurrencyCodestringOptional
AssetCodestringOptional
AssetPairstringOptional
AssetAmountnumber · doubleOptional
CurrencyAmountnumber · doubleOptional
Header parameters
otpstringRequired

One time pass for the request

Responses
200
OK
application/json
400
Bad Request
application/json
get
GET /api/v1/customer/quick-buy/orders/quote HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
otp: text
Accept: */*
{
  "status": "text",
  "errors": [
    {
      "errorType": "text",
      "fieldName": "text",
      "messageCode": "text"
    }
  ],
  "id": 1,
  "details": {
    "customersId": 1,
    "assetCode": "text",
    "currencyCode": "text",
    "assetAmount": 1,
    "currencyAmount": 1
  }
}

Get list of orders

get
Authorizations
Query parameters
ExchangeTypeinteger · enumOptionalPossible values:
Statusinteger · enumOptionalPossible values:
CustomersIdinteger · int32Optional
AssetPairstringOptional
PageNumberinteger · int32Optional
PageSizeinteger · int32Optional
Header parameters
otpstringRequired

One time pass for the request

Responses
200
OK
application/json
400
Bad Request
application/json
get
GET /api/v1/customer/quick-buy/orders/list HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
otp: text
Accept: */*
{
  "status": "text",
  "errors": [
    {
      "errorType": "text",
      "fieldName": "text",
      "messageCode": "text"
    }
  ],
  "id": 1,
  "details": [
    {
      "id": 1,
      "exchangeType": 0,
      "status": 0,
      "creditTransactionsId": 1,
      "customersId": 1,
      "assetPair": "text",
      "requestAmount": 1,
      "requestPrice": 1,
      "executedAmount": 1,
      "executedPrice": 1,
      "commissionFee": 1,
      "transferType": 0,
      "bHasOpenRfi": true,
      "paymentCardsId": 1,
      "cardDescription": "text"
    }
  ],
  "pageSize": 1,
  "pageNumber": 1,
  "numberOfPages": 1
}

Get details of an order

get
Authorizations
Query parameters
ExchangesIdinteger · int32Optional
Header parameters
otpstringRequired

One time pass for the request

Responses
200
OK
application/json
400
Bad Request
application/json
get
GET /api/v1/customer/quick-buy/orders/getbyid HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
otp: text
Accept: */*
{
  "status": "text",
  "errors": [
    {
      "errorType": "text",
      "fieldName": "text",
      "messageCode": "text"
    }
  ],
  "id": 1,
  "details": {
    "id": 1,
    "exchangeType": 0,
    "status": 0,
    "creditTransactionsId": 1,
    "customersId": 1,
    "assetPair": "text",
    "requestAmount": 1,
    "requestPrice": 1,
    "executedAmount": 1,
    "executedPrice": 1,
    "commissionFee": 1,
    "transferType": 0,
    "bHasOpenRfi": true,
    "paymentCardsId": 1,
    "cardDescription": "text"
  }
}
  • Create QuickBuy Customer
  • KYC Collection
  • Using Ibanera's ID Verification
  • Using External IDv Provider
  • Request Payload Example
  • Upload Documents (For QuickBuy Customer Onboarding)
  • List Cards
  • GETGet saved payment cards
  • Get Card by ID
  • GETGet saved payment card by id
  • Delete Card
  • POSTDelete saved payment card by id
  • Get Available Asset Pairs
  • GETGet available exchanges
  • Get Quote
  • GETGet quote for exchange
  • Submit Exchange
  • POSTQuick buy crypto
  • List Exchanges
  • GETGet list of orders
  • Get Order by Id
  • GETGet details of an order

Quick buy crypto

post

Possible validation errors:

  • Required
  • Invalid
  • Invalid_PaymentCard
  • Failed(500 - Field Create_Payment or Create_Card indicates possible incorrect card details)
  • Invalid_Asset
  • Price_Too_Low
  • Price_Updated - Quoted price may be out of data
  • Asset_Pair_Unavailable
Authorizations
Header parameters
otpstringRequired

One time pass for the request

Body
customersIdinteger · int32 | nullableOptional
currencyCodestring | nullableOptional
assetCodestring · min: 1Required
assetPairstring | nullableRead-onlyOptional
assetAmountnumber · doubleRequired
currencyAmountnumber · doubleRequired
quantityTypeinteger · enumOptionalPossible values:
paymentCardsIdinteger · int32 | nullableOptional
chargeCardIdempotencyKeystring · uuidOptional
Responses
200
OK
application/json
400
Bad Request
application/json
post
POST /api/v1/customer/quick-buy/orders/submit HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
otp: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 434

{
  "customersId": 1,
  "currencyCode": "text",
  "assetCode": "text",
  "assetAmount": 1,
  "currencyAmount": 1,
  "quantityType": 0,
  "paymentCardsId": 1,
  "cardDetails": {
    "cardNumber": "text",
    "cvv": "text",
    "cardholderName": "text",
    "addressLine1": "text",
    "addressLine2": "text",
    "townCity": "text",
    "countryISO2": "text",
    "stateProvince": "text",
    "postCode": "text",
    "expMonth": 1,
    "expYear": 1,
    "bSaveCard": true
  },
  "chargeCardIdempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
}
{
  "status": "text",
  "errors": [
    {
      "errorType": "text",
      "fieldName": "text",
      "messageCode": "text"
    }
  ],
  "id": 1,
  "details": {
    "status": 0,
    "exchangesId": 1
  }
}