Skip to content

Instantly share code, notes, and snippets.

@Netkas
Created February 15, 2019 04:27
Show Gist options
  • Save Netkas/ea04dc21c52e4e7c31b0bf8c6ecd1aef to your computer and use it in GitHub Desktop.
Save Netkas/ea04dc21c52e4e7c31b0bf8c6ecd1aef to your computer and use it in GitHub Desktop.
Documentation for Supplier's API at IDBUT Solutions

IDBUT Solutions Supplier API

This documentation contains methods and extensive details regarding the usage of API Modules for a supplier, this documentation DOES NOT contain information regarding authentication. To learn how to authenticate please view this gist.

In this documentation when referencing "Modules" the document is referring to the module that is accessed via a URL of the API; https://idbutsolutions.io/api/v1/ModuleName

All methods can be used with either a POST or GET request but authentication is required for all.

Each authorized request to a existing module will always return a variable at the end of the JSON response called ref_code, this variable is a reference to your request used for troubleshooting. This is useful to give to the administrator for support reasons.

Available Modules πŸ“š

Module Name Description
OrdersPool Fetches all orders that hasn't been accepted. Information about each order is limited until the order is accepted by either using the Web Application or the AcceptOrder Module in the API
AcceptOrder Accepts an existing order from the Orders Pool. This module cannot be used if the order has already been accepted
SupplierOrders Fetches orders history associated with your Account, you can filter what orders to be returned
SupplierOrder Returns information regarding the Order, Origin Details and FUT Details. This module only works with Orders you have access to
CompleteOrder Marks an existing order as completed
SupplierInformation Returns general information about price per coin, current account balance and other related details

OrdersPool 🏊

This module fetches all orders that hasn't been accepted, you can filter what orders you'd like to see with the filter parameter with either values (ALL|XBOX|PS4).

The response will contain an array called pool within the payload object. This array contains OrdersPoolObject objects, which is a mere representation of an order but with limited information. More information is available about the order once you have accepted the order using the AcceptOrder module

Parameters

Parameters used/required for this request

Parameter Name Default Value Required Description
filter ALL No The filter used to filter orders by platform, the acceptable values are XBOX, PS4 or ALL

Payload Variables

Variables returned in the Payload, types

Name Type Description
platform_filter string The filter that was used when fetching these orders
pool array An array of OrdersPoolObject objects, when there are no results, this array is simply empty.

Example Request

This is an example response with this GET request

https://idbutsolutions.io/api/v1/OrdersPool?api_key=<API_KEY>

{
    "status": true,
    "code": 200,
    "payload": {
        "platform_filter": "ALL",
        "pool": [
            {
                "id": "d4495edbe9589973",
                "date": "2019-02-11",
                "time": "03:08:54",
                "platform": "PS4",
                "coins": 6000000,
                "coins_f": "6.000.000",
                "payout": 270
            },
            {
                "id": "d14b613dbb8503a0",
                "date": "2019-02-08",
                "time": "20:57:41",
                "platform": "XBOX ONE",
                "coins": 1000000,
                "coins_f": "1.000.000",
                "payout": 35
            }
        ]
    },
    "ref_code": "<REFERENCE CODE>"
}

The same request but there are no available orders in the pool

{
    "status": true,
    "code": 200,
    "payload": {
        "platform_filter": "ALL",
        "pool": []
    },
    "ref_code": "<REFERENCE CODE>"
}

OrdersPoolObject

As explained above, the OrdersPoolObject is a mere representation of the OrderObject but with very limited information. More information about the order will be available once you have accepted the order.

The object is represented with the following structure like this

{
	"id": "d4495edbe9589973",
	"date": "2019-02-11",
	"time": "03:08:54",
	"platform": "PS4",
	"coins": 6000000,
	"coins_f": "6.000.000",
	"payout": 270
}
Name Type Description
id string The order ID, this is used to reference the order when using the AcceptOrder module
date string The date of when this order was placed. (Year - Month - Day)
time string The time of when this order was placed. (Hour - Minute - Second) (GMT+1)
platform string The platform that this order is targeting (PS4, XBOX ONE and ALL). Note that when filtering the orders pool, instead of using XBOX ONE you need to use XBOX
coins int The amount of coins ordered
coins_f string The same value as coins but formatted to a string
payout int float The payout amount for this order

AcceptOrder βœ”οΈ

This module allows you to accept an order from the Orders Pool, the usage is very self explanatory but it can only be used with Orders that hasn't been accepted yet.

Parameters

Parameters used/required for this request

Parameter Name Default Value Required Description
order_id None Yes The ID of the Order that you want to accept

Response

This response contains no payload, but rather 3 variables excluding ref_code.

The first variable status is a boolean which indicates if the request was successful or not. This can be an indication if the order was accepted.

The second variable message is the response message of the request explaining the results. An successful request will always return "The order has been accepted". If the request failed, the response message may differ.

Message HTTP Response Code
The order has been accepted 200
The order cannot be accepted because your account is limited 403
The order cannot be found 404
The order cannot be accepted because it has already been accepted 409
There was an unknown error while trying to accept the order 500

Last but not least the code variable is simply a integer which represents the HTTP response code that was returned

Example Request

This is an example response with this GET request

https://idbutsolutions.io/api/v1/AcceptOrder?api_key=<API_KEY>&order_id=<ORDER_ID>

{
    "status": true,
    "message": "The order has been accepted",
    "code": 200,
    "ref_code": "<REFERENCE CODE>"
}

Here are the other possible responses but with the same request

{
    "status": false,
    "message": "The order cannot be accepted because it has already been accepted",
    "code": 409,
    "ref_code": "<REFERENCE CODE>"
}
{
    "status": false,
    "message": "The order cannot be accepted because your account is limited",
    "code": 403,
    "ref_code": "<REFERENCE CODE>"
}
{
    "status": false,
    "message": "The order cannot be found",
    "code": 404,
    "ref_code": "<REFERENCE CODE>"
}
{
    "status": false,
    "message": "The order cannot be accepted because it has already been accepted",
    "code": 409,
    "ref_code": "<REFERENCE CODE>"
}
{
    "status": false,
    "message": "There was an unknown error while trying to accept the order",
    "code": 500,
    "ref_code": "<REFERENCE CODE>"
}

SupplierOrders πŸ•

This module allows you to view your Orders History, this will return a payload with a orders array, each item in the array is a OrderObject Object. In the case that there are no orders the orders array will simply return no objects; ([])

Parameters

Parameters used/required for this request

Parameter Name Default Value Required Description
current_page 1 No The current page of the orders history

Payload Variables

Variables returned in the Payload, types

Name Type Description
total_pages int The total pages that are available
orders array An array of OrderObject objects

Example Request

This is an example response with this GET request

https://idbutsolutions.io/api/v1/SupplierOrders?api_key=<API_KEY>&current_page=1

{
    "status": true,
    "code": 200,
    "payload": {
        "total_pages": 1,
        "orders": [
            {
                "id": "357b4e0335d07911",
                "status": "Incomplete",
                "status_code": 0,
                "platform": "XBOX ONE",
                "coins": 5000000,
                "coins_f": "5.000.000",
                "payout": 175,
                "origin": {
                    "email": "[email protected]",
                    "password": "SuperPassword123",
                    "backup_codes": [
                        12345678
                    ]
                },
                "fut": {
                    "club_name": null,
                    "persona_name": null,
                    "security_answer": null
                },
                "date": "2019-02-12",
                "time": "18:30:09"
            },
            {
                "id": "29c475f972399157",
                "status": "Completed",
                "status_code": 1,
                "platform": "PS4",
                "coins": 1000000,
                "coins_f": "1.000.000",
                "payout": 45,
                "origin": {
                    "email": "[email protected]",
                    "password": "NotMyPassword!",
                    "backup_codes": [
                        93209320,
                        18439120
                    ]
                },
                "fut": {
                    "club_name": null,
                    "persona_name": null,
                    "security_answer": "exampleAnswer123"
                },
                "date": "2019-02-12",
                "time": "18:30:01"
            }
        ]
    },
    "ref_code": "<REFERENCE CODE>"
}

The same request above but there are no orders to be displayed

{
    "status": true,
    "code": 200,
    "payload": {
        "total_pages": 0,
        "orders": []
    },
    "ref_code": "<REFERENCE CODE>"
}

The same module but with the current_page parameter set to a non-existent page

https://idbutsolutions.io/api/v1/SupplierOrders?api_key=<API_KEY>&current_page=0

{
    "status": false,
    "message": "The page does not exist",
    "code": 404,
    "ref_code": "<REFERENCE CODE>"
}

OrderObject

This object is a full representation of the order and the related information being associated with it. The object would be represented with a structure like this

{
	"id": "29c475f972399157",
	"status": "Completed",
	"status_code": 1,
	"platform": "PS4",
	"coins": 1000000,
	"coins_f": "1.000.000",
	"payout": 45,
	"origin": {
		"email": "[email protected]",
		"password": "NotMyPassword!",
		"backup_codes": [
            93209320,
            18439120
        ]
	},
	"fut": {
		"club_name": null,
		"persona_name": null,
		"security_answer": "exampleAnswer123"
	},
	"date": "2019-02-12",
	"time": "18:30:01"
}

Each property that does not contain any information will simply be null, but the property will still exist.

Name Type Description
id string The ID of the Order
status string The status of the Order represented as a string. ("Unknown", "Incomplete", "Completed", "Failed", "Canceled", "Ongoing Issues", "Cancellation in progress", "Cancellation awaiting approval from Administrator")
status_code int The same purpose as status but represented as a integer instead of a string. See the table below for the meaning of each integer
platform string The platform that this order is for "XBOX ONE" or "PS4"
coins int The amount of coins requested to be transferred for this order
coins_f string Same value as coins but represented as a formatted string (1000000 => "1.000.000")
payout int float The payout value in euros for when this order gets completed
origin OriginObject Contains information regarding the origin account
fut FutObject Contains information regarding FUT
date string The date that this order was accepted (Year-Month-day)
time string The time that this order was accepted (Hour:Minute:Second) (GMT+1)

Status Code

Status Codes for an Order, they mean the same thing as status (string)

Status Code (int) Description
0 Incomplete
1 Completed
2 Failed
3 Canceled
4 Ongoing Issues
5 Cancellation in progress
6 Cancellation awaiting approval from Administrator

OriginObject

This object contains important information regarding the Origin Account associated with this order. The structure is self explanatory

{
	"email": "[email protected]",
	"password": "NotMyPassword!",
	"backup_codes": [
        93209320,
        18439120
	]
}
Name Type Description
email string The login email for the Origin Account
password string The login password for the Origin Account
backup_codes array of integers (int) An array of Backup codes, represented as int. Each code is 8 digits long. You won't expect more than 3 codes within this array

FutObject

This object is similar to OriginObject without much differences rather than what information the structure contains. If the Buyer has not set a value then the value will simply be represented as null

{
	"club_name": null,
	"persona_name": null,
	"security_answer": "exampleAnswer123"
}
Name Type Description
club_name string null Club Name for FUT
persona_name string null Persona Name for FUT
security_answer string null Security Answer for FUT

SupplierOrder πŸ“‹

This module simply allows you to view the Order Details, if you have access to the order. The payload is a simple representation of the OrderObject object. See SupplierOrders in this documentation, this section mentions the structure for ObjectOrder

Parameters

Parameters used/required for this request

Parameter Name Default Value Required Description
order_id None Yes The Order ID that you want to view

Example Request

This is an example response with this GET request

https://idbutsolutions.io/api/v1/SupplierOrder?api_key=<API_KEY>&order_id=<ORDER_ID>

{
    "status": true,
    "code": 200,
    "payload": {
        "id": "<ORDER_ID>",
        "status": "Incomplete",
        "status_code": 0,
        "platform": "PS4",
        "coins": 5000000,
        "coins_f": "5.000.000",
        "payout": 225,
        "origin": {
            "email": "[email protected]",
            "password": "example123",
            "backup_codes": [
                93209320
            ]
        },
        "fut": {
            "club_name": null,
            "persona_name": null,
            "security_answer": null
        },
        "date": "2019-02-13",
        "time": "20:39:53"
    },
    "ref_code": "<REFERENCE CODE>"
}

If you attempt to make the same request above, but with an order you don't have access to then you would get this response

{
    "status": false,
    "message": "You don't have access to this order",
    "code": 403,
    "ref_code": "<REFERENCE CODE>"
}

And if the order simply doesn't exist

{
    "status": false,
    "message": "No results were found",
    "code": 404,
    "ref_code": "<REFERENCE CODE>"
}

CompleteOrder β˜‘οΈ

This module completes an order that you have accepted. Upon completing this order the system will determine the the status of the order and add the payout funds to your account balance.

This action can only be used with an order where it's in such a state where it can be completed, if there are any ongoing issues with the order then you will need to login the Web Application (https://idbutsolutions.io) and review the order to determine if your response is required or not.

Please note that the user can also cancel the order during this time before the order gets completed. NOT After the order gets completed. If this is the case then you will need to login to the Web Application and go to the order to make your response on how much coins you've already transferred if any so you can get paid for coins you already transferred.

it is recommended to use SupplierOrder to determine if there are any issues with the order before using this module.

The response given from this module contains no Payload, to determine the success of the request is by using status and message variables given in the response

Parameters

Parameters used/required for this request

Parameter Name Default Value Required Description
order_id None Yes The Order ID that you want to view

Example Request

This is an example response when using a GET request, and the order has been completed successfully

https://idbutsolutions.io/api/v1/CompleteOrder?api_key=<API_KEY>&order_id=<ORDER_ID>

{
    "status": true,
    "message": "The order has been completed",
    "code": 200,
    "ref_code": "<REFERENCE CODE>"
}

The same request above, but the order is no no such state to be completed yet

{
    "status": false,
    "message": "The order is not in such state where it can be completed",
    "code": 409,
    "ref_code": "<REFERENCE CODE>"
}

This is the same request above, but in this case the same order has already been completed before

{
    "status": false,
    "message": "The order has already been completed",
    "code": 409,
    "ref_code": "<REFERENCE CODE>"
}

If the order cannot be completed due to another issue, then you would get this response

{
    "status": false,
    "message": "The order is not in such state where it can be completed",
    "code": 409,
    "ref_code": "<REFERENCE CODE>"
}

If that's the case, then use SupplierOrder to determine the status of the order. Any ongoing issues or cancellation requests needs to be resolved in the Web Application. For security reasons we will not allow such actions to be taken in the API

SupplierInformation πŸ“Š

This module simply returns basic information regarding your account and the server. The response will contain a payload which is a SupplierInformationObject object.

Example Request

This module can be used with a very simple GET request

https://idbutsolutions.io/api/v1/SupplierInformation?api_key=<API_KEY>

{
    "status": true,
    "code": 200,
    "payload": {
        "balance": 225,
        "xbox_ppm": 35,
        "ps4_ppm": 45,
        "server_date": "2019-02-14",
        "server_time": "20:47:35"
    },
    "ref_code": "<REFERENCE CODE>"
}

ServerInformationObject

Name Type Description
balance int flaot The balance your account currently holds (Euros)
xbox_ppm int float Price per million for FUT Coins on XBOX ONE. (Euros)
ps4_ppm int float Price per million for FUT Coins on PS4 (Euros)
server_date string The date on the server (Year-Month-Day)
server_time string The time on the server (Hour-Minute-Seconds)

This documentation was written with ❀️ by netkas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment