Download OpenAPI specification:Download
Welcome to Félix's Remittance Requests Management System. Our platform is designed to streamline and simplify managing remittance requests, ensuring efficient and secure transfers for both senders and recipients.
The Félix API offers a comprehensive solution to manage remittance requests effectively. Our platform empowers you to:
The status of a remittance request changes as it progresses through the system. The status flow is as follows:
This callback notification system is designed to optimize efficiency and reliability in the communication of transaction status updates. A key part of this strategy involves the use of "Notification Deltas," which are compact representations of changes in transaction status that have not yet been successfully communicated to the intended recipient.
Advantages of our structured approach include:
Note: To further enhance flexibility and efficiency in handling transaction updates, we have designed our system with optional callback functionality. Clients have the opportunity to proactively query transactions with specific statuses, allowing them to retrieve the most up-to-date information.
To ensure seamless integration and maintain consistency, we strongly recommend that clients use the field names as defined in our documentation. This practice is designed to standardize data handling and allow for greater flexibility on the part of our clients.
TransactionResponse:
type: object
properties:
id:
type: string
provider_id:
type: string
sender_id:
type: string
nullable: true
name:
type: string
middle_name:
type: string
nullable: true
lastname:
type: string
second_lastname:
type: string
nullable: true
city:
type: string
nullable: true
state:
type: string
nullable: true
clabe:
type: string
amount:
type: number
format: decimal
default: 0.0
currency:
$ref: '#/CurrencyEnum'
status:
$ref: '#/TransactionStatusEnum'
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
nullable: true
metafields:
type: object
additionalProperties: true
nullable: true
NotificationDelta:
type: object
properties:
old_status:
$ref: '#/TransactionStatusEnum'
new_status:
$ref: '#/TransactionStatusEnum'
updated_at:
type: string
format: date-time
nullable: true
Notification:
type: object
properties:
transaction:
$ref: '#/TransactionResponse'
deltas:
type: array
items:
$ref: '#/NotificationDelta'
NotificationsContainer:
type: object
properties:
provider_id:
type: string
callback_url:
type: string
notifications:
type: array
items:
$ref: '#/Notification'
If you have a callback registered, we will send you a POST request with a JSON payload with NotificationContainer as the body. The payload will contain the provider_id, callback_url, and notifications array. The notifications array will contain the transaction object and an array of deltas.
Each notification is associated with a just one transaction, and each notification can have multiple deltas.
Example of payload simple path (just one transaction and one notification with two deltas):
{
"provider_id": "123456",
"callback_url": "https://your-callback-url.com",
"notifications": [
{
"transaction": {
"id": "123456",
"provider_id": "123456",
"sender_id": "123456",
"name": "John",
"middle_name": "Doe",
"lastname": "Smith",
"second_lastname": "Johnson",
"city": "New York",
"state": "NY",
"amount": 100.0,
"currency": "USD",
"status": "COMPLETED",
"created_at": "2021-10-01T12:00:00Z",
"updated_at": "2021-10-01T12:00:00Z",
"metafields": {
"key1": "value1",
"key2": "value2"
}
},
"deltas": [
{
"old_status": "CONFIRMED",
"new_status": "IN_PROCESS",
"updated_at": "2021-10-01T12:00:00Z"
},
{
"old_status": "IN_PROCESS",
"new_status": "COMPLETED",
"updated_at": "2021-10-01T12:00:00Z"
}
]
}
]
}
Example of payload complex path (multiple transactions and notifications with multiple deltas):
{
"provider_id": "5678",
"callback_url": "https://example.com/callback",
"notifications": [
{
"transaction": {
"id": "123456",
"provider_id": "123456",
"sender_id": "123456",
"name": "John",
"middle_name": "Doe",
"lastname": "Smith",
"second_lastname": "Johnson",
"city": "New York",
"state": "NY",
"amount": 100.0,
"currency": "USD",
"status": "COMPLETED",
"created_at": "2021-10-01T12:00:00Z",
"updated_at": "2021-10-01T12:00:00Z",
"metafields": {
"key1": "value1",
"key2": "value2"
}
},
"deltas": [
{
"old_status": "CONFIRMED",
"new_status": "IN_PROGRESS",
"updated_at": "2024-01-02T00:05:00"
}
]
},
{
"transaction": {
"id": "654321",
"provider_id": "123456",
"sender_id": "123456",
"name": "John",
"middle_name": "Doe",
"lastname": "Smith",
"second_lastname": "Johnson",
"city": "New York",
"state": "NY",
"amount": 100.0,
"currency": "MXN",
"status": "COMPLETED",
"created_at": "2021-10-01T12:00:00Z",
"updated_at": "2021-10-01T12:00:00Z",
"metafields": {
"key1": "value1",
"key2": "value2"
}
},
"deltas": [
{
"old_status": "IN_PROGRESS",
"new_status": "FAILED",
"updated_at": "2024-01-02T00:07:00"
}
]
},
{
"transaction": {
"id": "abcdefgh",
"provider_id": "123456",
"sender_id": "123456",
"name": "John",
"middle_name": "Doe",
"lastname": "Smith",
"second_lastname": "Johnson",
"city": "New York",
"state": "NY",
"amount": 100.0,
"currency": "MXN",
"status": "COMPLETED",
"created_at": "2021-10-01T12:00:00Z",
"updated_at": "2021-10-01T12:00:00Z",
"metafields": {
"key1": "value1",
"key2": "value2"
}
},
"deltas": [
{
"old_status": "CREATED",
"new_status": "STARTED",
"updated_at": "2024-01-02T00:09:00"
},
{
"old_status": "STARTED",
"new_status": "IN_PROGRESS",
"updated_at": "2024-01-02T00:10:00"
}
]
}
]
}
Absolutely! If you initiate a transaction without providing an amount or if the amount is set to zero, we will prompt the sender to specify the amount at the beginning of the process.
To get started, you will need to create an account with Félix. Once you have an account, you will be able to get an jwt token to access our API.
Sign up a new user provider.
Successful Response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "email": "user@example.com",
- "password": "stringst",
- "name": "string"
}
{- "id_token": "string",
- "refresh_token": "string",
- "expires_in": 0,
- "id": "string",
- "email": "string"
}
Sign in a user provider.
Successful Response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "email": "string",
- "password": "string"
}
{- "id_token": "string",
- "refresh_token": "string",
- "expires_in": 0,
- "id": "string",
- "email": "string"
}
Get the currently logged in provider.
Successful Response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "id": "string",
- "name": "string",
- "email": "user@example.com",
- "headers": {
- "Authorization": "**************1234"
},
}
Register a callback url for the currently logged in provider, this is important for receiving transaction updates.
Successful Response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "headers": {
- "Authorization": "ABCDEF123456"
}
}
null
Successful Response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "filters": {
- "sender_id": "string",
- "status": [
- "CREATED"
]
}, - "limit": 10,
- "offset": 0,
- "order_by": "created_at"
}
[- {
- "id": "string",
- "sender_id": "string",
- "provider_id": "string",
- "clabe": "string",
- "amount": "string",
- "currency": "string",
- "name": "string",
- "middle_name": "string",
- "lastname": "string",
- "second_lastname": "string",
- "city": "string",
- "state": "string",
- "status": "CREATED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "metafields": { }
}
]
Initiate a new transaction for the currently logged in provider.
Successfully initiated transaction
Bad Request
{- "amount": "string",
- "currency": "MXN",
- "name": "string",
- "middle_name": "string",
- "lastname": "string",
- "second_lastname": "string",
- "city": "string",
- "state": "string",
- "clabe": "string"
}
{- "id": "string",
- "sender_id": "string",
- "provider_id": "string",
- "clabe": "string",
- "amount": "string",
- "currency": "string",
- "name": "string",
- "middle_name": "string",
- "lastname": "string",
- "second_lastname": "string",
- "city": "string",
- "state": "string",
- "status": "CREATED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "metafields": { }
}
Retrieves the details of a specific transaction.
Transaction details
Bad Request
{- "id": "string",
- "sender_id": "string",
- "provider_id": "string",
- "clabe": "string",
- "amount": "string",
- "currency": "string",
- "name": "string",
- "middle_name": "string",
- "lastname": "string",
- "second_lastname": "string",
- "city": "string",
- "state": "string",
- "status": "CREATED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "metafields": { }
}