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
amount:
type: number
format: decimal
default: 0.0
currency:
type: number
status:
type: string
external_transaction_id:
type: string
provider_id:
type: string
account_identifier_type:
$ref: '#/ProviderAccountIdentifierType'
bank_code:
type: string
nullable: true
account_identifier_number:
type: string
account_type:
$ref: '#/ProviderAccountType'
nullable: true
beneficiary_identifier:
type: string
nullable: true
beneficiary_identifier_type:
type: string
nullable: true
sender_id:
type: string
nullable: true
name:
type: string
middle_name:
type: string
nullable: true
lastname:
type: string
second_lastname:
type: string
nullable: true
country:
type: string
city:
type: string
nullable: true
state:
type: string
nullable: true
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
nullable: true
metafields:
type: object
additionalProperties: true
nullable: true
url:
type: string
format: uri
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.
Successful Response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "id": "string",
- "name": "string",
- "email": "user@example.com",
- "headers": {
- "property1": "string",
- "property2": "string"
}
}
Successful Response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "headers": {
- "property1": "string",
- "property2": "string"
}
}
null
Successful response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "id": "tx_12345abcde",
- "provider_id": "provider_987654",
- "sender_id": "sender_54321",
- "name": "Juan",
- "middle_name": "Carlos",
- "lastname": "Gonzalez",
- "second_lastname": "Rodriguez",
- "city": "Mexico City",
- "state": "CDMX",
- "clabe": 32180000118359720,
- "amount": 1500.75,
- "currency": "MXN",
- "status": "COMPLETED",
- "created_at": "2023-11-15T14:30:45Z",
- "updated_at": "2023-11-15T14:35:22Z",
- "metafields": { },
}
Creates a new transaction with the provided details. Supports both V1 and V2 request formats.
V2 Create Transaction Request
This model represents the request body for creating a new transaction using the V2 API.
Successful response
Invalid request data
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "amount": 2500.5,
- "currency": "MXN",
- "external_transaction_id": "ext_tx_123456789",
- "account_identifier_type": "CLABE",
- "bank_code": "032",
- "account_identifier_number": 32180000118359720,
- "account_type": "C",
- "beneficiary_identifier": "RFC123456ABC",
- "beneficiary_identifier_type": "RFC",
- "beneficiary_name": "Maria",
- "beneficiary_middle_name": "Elena",
- "beneficiary_lastname": "Martinez",
- "beneficiary_second_lastname": "Lopez",
- "country": "MX",
- "city": "Guadalajara",
- "state": "Jalisco"
}
{- "id": "tx_12345abcde",
- "provider_id": "provider_987654",
- "sender_id": "sender_54321",
- "name": "Juan",
- "middle_name": "Carlos",
- "lastname": "Gonzalez",
- "second_lastname": "Rodriguez",
- "city": "Mexico City",
- "state": "CDMX",
- "clabe": 32180000118359720,
- "amount": 1500.75,
- "currency": "MXN",
- "status": "COMPLETED",
- "created_at": "2023-11-15T14:30:45Z",
- "updated_at": "2023-11-15T14:35:22Z",
- "metafields": { },
}
Successful response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "filters": {
- "sender_id": "string",
- "status": [
- "CREATED"
], - "external_transaction_id": "string"
}, - "limit": 10,
- "offset": 0,
- "order_by": "created_at"
}
[- {
- "id": "tx_12345abcde",
- "provider_id": "provider_987654",
- "sender_id": "sender_54321",
- "name": "Juan",
- "middle_name": "Carlos",
- "lastname": "Gonzalez",
- "second_lastname": "Rodriguez",
- "city": "Mexico City",
- "state": "CDMX",
- "clabe": 32180000118359720,
- "amount": 1500.75,
- "currency": "MXN",
- "status": "COMPLETED",
- "created_at": "2023-11-15T14:30:45Z",
- "updated_at": "2023-11-15T14:35:22Z",
- "metafields": { },
}
]
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": "user@example.com"
}
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": "user@example.com"
}
required | object (Transaction) |
required | Array of objects (Deltas) |
Successful Response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "transaction": {
- "id": "string",
- "provider_id": "string",
- "sender_id": "string",
- "name": "string",
- "middle_name": "string",
- "lastname": "string",
- "second_lastname": "string",
- "city": "string",
- "state": "string",
- "clabe": "string",
- "amount": 0,
- "currency": "MXN",
- "status": "CREATED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "metafields": { }
}, - "deltas": [
- {
- "old_status": "CREATED",
- "new_status": "CREATED",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
{- "status": "QUEUED",
- "message": "string"
}
Successful Response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Internal Server Error
{- "status": "QUEUED",
- "message": "string"
}