eBISU TPVV 0.1.0
The eBISU TPVV HTTP API Specification defines a standardized interface for seamless integration of third-party verification and validation services into payment systems. This specification streamlines the automation of key tasks, providing a secure and efficient means for creating transactions, retrieving transaction details, and facilitating refunds. The API is designed to be user-friendly, scalable, and interoperable, enabling developers to seamlessly incorporate Payment TPVV functionality into their applications.
To initiate the use of the API, please contact us initially to acquire an
account for logging into the web interface.
Once logged in, navigate to Generar
token to generate an authentication
token for your requests. This token must be included in the Authorization
header of each API request, utilizing the
Bearer scheme. For further details on Bearer authentication, please refer to
the documentation
here.
Servers
| Description | URL |
|---|---|
| https://ebisu.firstrow2.com/api | https://ebisu.firstrow2.com/api |
Endpoints
POST /transactions
Request the creation of a new transaction
Description
Request the creation of a new transaction. If the payment method is
provided, the transaction gets instantly processed and the result is
returned, if not, the transaction is created with a state of waiting and a
form provided by us that can be used to complete the transaction with the
missing payment information is returned. To complete the created
transaction, a request to POST /transactions/{id} is required providing
the missing payment information.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
bearerAuth |
header | string | N/A | No | JWT Bearer token |
Request body
{
"concept": "string",
"amount": 10.12,
"receipt_number": "string",
"payment": {
"type": "paypal",
"values": {
"paypal_user": "string",
"credit_card_number": "string",
"credit_card_expiration_month": 0,
"credit_card_expiration_year": 0,
"credit_card_csv": 0
}
}
}
Schema of the request body
{
"type": "object",
"description": "Required information to create a new transaction",
"properties": {
"concept": {
"type": "string",
"maxLength": 255,
"description": "A concept associated with the transaction"
},
"amount": {
"type": "number",
"minimum": 0.01,
"maximum": 1000000000,
"description": "Amout associated with the transaction"
},
"receipt_number": {
"type": "string",
"maxLength": 255,
"description": "A receipt number to be associated with the transaction"
},
"payment": {
"$ref": "#/components/schemas/PaymentInformation"
}
},
"required": [
"amount"
]
}
Response 201 Created
{
"id": 0,
"concept": "string",
"amount": 10.12,
"state": "waiting",
"receipt_number": "string",
"emision_date": "2022-04-13T15:42:05.901Z",
"finalized_date": "2022-04-13T15:42:05.901Z",
"finalized_reason": "string",
"refounds": null
}
Schema of the response body
{
"type": "object",
"description": "Transaction existing in the TPVV system",
"properties": {
"id": {
"type": "integer",
"description": "An identifier for this transaction"
},
"concept": {
"type": "string",
"description": "A concept associated with this transaction"
},
"amount": {
"type": "number",
"description": "Amout associated with this transaction"
},
"state": {
"type": "string",
"enum": [
"waiting",
"accepted",
"rejected"
],
"description": "The actual state of the transaction, `waiting` means that the transaction is still being processed, for example because of missing payment information. `accepted` means that the transaction was successfull. `rejected` means that the transaction was not successfull, the reason will be specified in the field `finalize_reason`"
},
"receipt_number": {
"type": "string",
"description": "A receipt number associated with this transaction"
},
"emision_date": {
"type": "string",
"format": "date-time",
"description": "An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string representig the date and time at which the transaction was created"
},
"finalized_date": {
"type": "string",
"format": "date-time",
"description": "An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string representig the date and time at which the transaction was finalized, wither successfully or not"
},
"finalized_reason": {
"type": "string",
"description": "Explanation on how this transaction finished"
},
"refounds": {
"oneOf": [
{
"type": "integer",
"description": "Id of the transaction being refounded"
},
{
"$ref": "#/components/schemas/Transaction"
}
]
}
},
"required": [
"id",
"amount",
"state",
"emision_date"
]
}
"string"
Schema of the response body
{
"type": "string"
}
Response 400 Bad Request
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 401 Unauthorized
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 500 Internal Server Error
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
GET /transactions
Obtains a paginated list of all transactions
Description
Obtains a paginated list of all the transactions
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
bearerAuth |
header | string | N/A | No | JWT Bearer token |
includeRefound |
query | boolean | No | Specifies how to return the transactions that represent a refound, if a transaction is a refound. If `true`, includes all the information of the transaction being refunded, if `false` only returns the id of the transaction being refounded | |
limit |
query | integer | No | The amount of transactions to retrieve | |
page |
query | integer | No | Page of transactions to retrieve |
Response 200 OK
{
"meta": {
"page": 0,
"retrieved": 0,
"total": 0
},
"transactions": [
{
"id": 0,
"concept": "string",
"amount": 10.12,
"state": "waiting",
"receipt_number": "string",
"emision_date": "2022-04-13T15:42:05.901Z",
"finalized_date": "2022-04-13T15:42:05.901Z",
"finalized_reason": "string",
"refounds": null
}
]
}
Schema of the response body
{
"type": "object",
"description": "A list of transactions with information about the current page",
"properties": {
"meta": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 0,
"description": "Page returned"
},
"retrieved": {
"type": "integer",
"minimum": 0,
"description": "Amout of transactions returned"
},
"total": {
"type": "integer",
"minimum": 0,
"description": "Total amount of available transactions"
}
},
"required": [
"page",
"retrieved",
"total"
]
},
"transactions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Transaction"
}
}
},
"required": [
"meta",
"transactions"
]
}
Response 400 Bad Request
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 401 Unauthorized
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 500 Internal Server Error
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
POST /transactions/{id}
Completes the payment information of a transaction
Description
Provides the missing payment information of a transaction
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
bearerAuth |
header | string | N/A | No | JWT Bearer token |
id |
path | integer | No | Id of transaction to supply the missing payment information |
Request body
{
"type": "paypal",
"values": {
"paypal_user": "string",
"credit_card_number": "string",
"credit_card_expiration_month": 0,
"credit_card_expiration_year": 0,
"credit_card_csv": 0
}
}
Schema of the request body
{
"type": "object",
"description": "Payment information for a transaction. Depending on the type, the required fields change",
"properties": {
"type": {
"type": "string",
"description": "The type of payment",
"enum": [
"paypal",
"credit_card"
]
},
"values": {
"type": "object",
"description": "The values of the payment information",
"properties": {
"paypal_user": {
"type": "string",
"maxLength": 255,
"description": "Required if the type is `paypal`, represents the paypal user"
},
"credit_card_number": {
"type": "string",
"maxLength": 255,
"description": "Required if the type is `credit_card`, represents the credit card number"
},
"credit_card_expiration_month": {
"type": "integer",
"minimum": 1,
"maximum": 12,
"description": "Required if the type is `credit_card`, represents the credit card expiration month"
},
"credit_card_expiration_year": {
"type": "integer",
"minimum": 1970,
"maximum": 9999,
"description": "Required if the type is `credit_card`, represents the credit card expiration year"
},
"credit_card_csv": {
"type": "integer",
"minimum": 0,
"maximum": 999,
"description": "Required if the type is `credit_card`, represents the credit card csv"
}
}
}
},
"required": [
"type",
"values"
]
}
Response 200 OK
{
"id": 0,
"concept": "string",
"amount": 10.12,
"state": "waiting",
"receipt_number": "string",
"emision_date": "2022-04-13T15:42:05.901Z",
"finalized_date": "2022-04-13T15:42:05.901Z",
"finalized_reason": "string",
"refounds": null
}
Schema of the response body
{
"type": "object",
"description": "Transaction existing in the TPVV system",
"properties": {
"id": {
"type": "integer",
"description": "An identifier for this transaction"
},
"concept": {
"type": "string",
"description": "A concept associated with this transaction"
},
"amount": {
"type": "number",
"description": "Amout associated with this transaction"
},
"state": {
"type": "string",
"enum": [
"waiting",
"accepted",
"rejected"
],
"description": "The actual state of the transaction, `waiting` means that the transaction is still being processed, for example because of missing payment information. `accepted` means that the transaction was successfull. `rejected` means that the transaction was not successfull, the reason will be specified in the field `finalize_reason`"
},
"receipt_number": {
"type": "string",
"description": "A receipt number associated with this transaction"
},
"emision_date": {
"type": "string",
"format": "date-time",
"description": "An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string representig the date and time at which the transaction was created"
},
"finalized_date": {
"type": "string",
"format": "date-time",
"description": "An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string representig the date and time at which the transaction was finalized, wither successfully or not"
},
"finalized_reason": {
"type": "string",
"description": "Explanation on how this transaction finished"
},
"refounds": {
"oneOf": [
{
"type": "integer",
"description": "Id of the transaction being refounded"
},
{
"$ref": "#/components/schemas/Transaction"
}
]
}
},
"required": [
"id",
"amount",
"state",
"emision_date"
]
}
Response 400 Bad Request
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 401 Unauthorized
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 403 Forbidden
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 404 Not Found
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 500 Internal Server Error
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
GET /transactions/{id}
Obtains the information of a given transaction
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
bearerAuth |
header | string | N/A | No | JWT Bearer token |
id |
path | integer | No | Id of transaction to retrieve | |
includeRefound |
query | boolean | No | Specifies how to return the transaction being refounded by the requested transaction, if the requested transaction is a refound. If `true`, includes all the information of the transaction being refunded, if `false` only returns the id of the transaction being refounded |
Response 200 OK
{
"id": 0,
"concept": "string",
"amount": 10.12,
"state": "waiting",
"receipt_number": "string",
"emision_date": "2022-04-13T15:42:05.901Z",
"finalized_date": "2022-04-13T15:42:05.901Z",
"finalized_reason": "string",
"refounds": null
}
Schema of the response body
{
"type": "object",
"description": "Transaction existing in the TPVV system",
"properties": {
"id": {
"type": "integer",
"description": "An identifier for this transaction"
},
"concept": {
"type": "string",
"description": "A concept associated with this transaction"
},
"amount": {
"type": "number",
"description": "Amout associated with this transaction"
},
"state": {
"type": "string",
"enum": [
"waiting",
"accepted",
"rejected"
],
"description": "The actual state of the transaction, `waiting` means that the transaction is still being processed, for example because of missing payment information. `accepted` means that the transaction was successfull. `rejected` means that the transaction was not successfull, the reason will be specified in the field `finalize_reason`"
},
"receipt_number": {
"type": "string",
"description": "A receipt number associated with this transaction"
},
"emision_date": {
"type": "string",
"format": "date-time",
"description": "An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string representig the date and time at which the transaction was created"
},
"finalized_date": {
"type": "string",
"format": "date-time",
"description": "An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string representig the date and time at which the transaction was finalized, wither successfully or not"
},
"finalized_reason": {
"type": "string",
"description": "Explanation on how this transaction finished"
},
"refounds": {
"oneOf": [
{
"type": "integer",
"description": "Id of the transaction being refounded"
},
{
"$ref": "#/components/schemas/Transaction"
}
]
}
},
"required": [
"id",
"amount",
"state",
"emision_date"
]
}
Response 400 Bad Request
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 401 Unauthorized
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 403 Forbidden
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 404 Not Found
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 500 Internal Server Error
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
POST /transactions/{id}/refound
Requests the creation of a new transaction to refound the specified transaction
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
bearerAuth |
header | string | N/A | No | JWT Bearer token |
id |
path | integer | No | Id of transaction to retrieve | |
includeRefound |
query | boolean | No | Specifies how to return the transaction being refounded by the requested transaction. If `true`, includes all the information of the transaction being refunded, if `false` only returns the id of the transaction being refounded |
Request body
{
"concept": "string",
"receipt_number": "string"
}
Schema of the request body
{
"type": "object",
"description": "Required information to create a refound transaction",
"properties": {
"concept": {
"type": "string",
"maxLength": 255,
"description": "A concept associated with the refound"
},
"receipt_number": {
"type": "string",
"maxLength": 255,
"description": "A receipt number to be associated with the transaction"
}
}
}
Response 200 OK
{
"id": 0,
"concept": "string",
"amount": 10.12,
"state": "waiting",
"receipt_number": "string",
"emision_date": "2022-04-13T15:42:05.901Z",
"finalized_date": "2022-04-13T15:42:05.901Z",
"finalized_reason": "string",
"refounds": null
}
Schema of the response body
{
"type": "object",
"description": "Transaction existing in the TPVV system",
"properties": {
"id": {
"type": "integer",
"description": "An identifier for this transaction"
},
"concept": {
"type": "string",
"description": "A concept associated with this transaction"
},
"amount": {
"type": "number",
"description": "Amout associated with this transaction"
},
"state": {
"type": "string",
"enum": [
"waiting",
"accepted",
"rejected"
],
"description": "The actual state of the transaction, `waiting` means that the transaction is still being processed, for example because of missing payment information. `accepted` means that the transaction was successfull. `rejected` means that the transaction was not successfull, the reason will be specified in the field `finalize_reason`"
},
"receipt_number": {
"type": "string",
"description": "A receipt number associated with this transaction"
},
"emision_date": {
"type": "string",
"format": "date-time",
"description": "An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string representig the date and time at which the transaction was created"
},
"finalized_date": {
"type": "string",
"format": "date-time",
"description": "An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string representig the date and time at which the transaction was finalized, wither successfully or not"
},
"finalized_reason": {
"type": "string",
"description": "Explanation on how this transaction finished"
},
"refounds": {
"oneOf": [
{
"type": "integer",
"description": "Id of the transaction being refounded"
},
{
"$ref": "#/components/schemas/Transaction"
}
]
}
},
"required": [
"id",
"amount",
"state",
"emision_date"
]
}
Response 400 Bad Request
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 401 Unauthorized
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 403 Forbidden
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 404 Not Found
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Response 500 Internal Server Error
{
"error": "Authentication error",
"description": "The bearer token was not provided"
}
Schema of the response body
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "The name of the error",
"example": "Authentication error"
},
"description": {
"type": "string",
"description": "An explanation of what went wrong",
"example": "The bearer token was not provided"
}
},
"required": [
"error",
"description"
]
}
Schemas
ErrorResponse
| Name | Type |
|---|---|
description |
string |
error |
string |
PaginatedTransactionList
| Name | Type |
|---|---|
meta |
Properties: page, retrieved, total |
transactions |
Array<Transaction> |
PaymentInformation
| Name | Type |
|---|---|
type |
string |
values |
Properties: paypal_user, credit_card_number, credit_card_expiration_month, credit_card_expiration_year, credit_card_csv |
RequestRefoundInformation
| Name | Type |
|---|---|
concept |
string |
receipt_number |
string |
RequestTransactionCreation
| Name | Type |
|---|---|
amount |
number |
concept |
string |
payment |
PaymentInformation |
receipt_number |
string |
Transaction
| Name | Type |
|---|---|
amount |
number |
concept |
string |
emision_date |
string(date-time) |
finalized_date |
string(date-time) |
finalized_reason |
string |
id |
integer |
receipt_number |
string |
refounds |
|
state |
string |
Security schemes
| Name | Type | Scheme | Description |
|---|---|---|---|
| bearerAuth | http | bearer |
More documentation
More extensive documentation