This object represents the result of matching a Load Adjustment with its original purchase.
When a Load Adjustment credits a card, for example a merchant refund, UnDosTres looks for the original purchase it most likely belongs to and sends the result in this notification. One notification is sent per Load Adjustment, whether or not a match was found.
This notification is not sent in real time. Matching runs in a background process every few minutes, so expect it a few minutes after the Load Adjustment was applied. It is only sent to ecommerces subscribed to id_type 18; ask your UnDosTres contact to enable it. Respond with an HTTP 2xx status to acknowledge it.
| Field | Type | Description |
|---|---|---|
| id_type | Number | ID representing a notification type from a predefined catalog. |
| notification | Object | Dynamic object containing data specific to the given id_type. |
Example when id_type = 18
{
"id_type": 18,
"notification": {
"transaction_id": "20260915T10:22:31_123456",
"card_id": 501,
"request_id": "9882465ccc74f7d9cde9ac36952e6030",
"amount": 250.00,
"matched": true,
"total_candidates_evaluated": 37,
"processed_at": "2026-09-15T10:24:05.123456",
"deduct_transaction_id": "20260912T18:03:10_987654",
"deduct_request_id": "a13fdcfe22b53c43e4e5705f8097072f",
"deduct_amount": 250.00,
"score": 9.4
}
}| Field | Type | Description |
|---|---|---|
| notification.transaction_id | String | ID of the Load Adjustment: the transaction date sent by Paymentology in yyyyMMdd'T'HH:mm:ss format, an underscore, and the Paymentology transaction ID. |
| notification.card_id | Number | ID of the card the Load Adjustment was applied to. Omitted if the Load Adjustment is not linked to a card. |
| notification.request_id | String | The request_id you received in the Load Adjustment message UnDosTres forwarded to you. Omitted if the Load Adjustment was not forwarded to you. |
| notification.amount | Number | Amount of the Load Adjustment in Mexican pesos, not cents. |
| notification.matched | Boolean | true if an original purchase was identified. |
| notification.total_candidates_evaluated | Number | Number of purchases and cash withdrawals compared against the Load Adjustment. |
| notification.processed_at | String | Date and time the Load Adjustment was evaluated, in ISO-8601 format without UTC offset. |
| notification.deduct_transaction_id | String | ID of the matched purchase, in the same format as transaction_id. Only present when matched is true. |
| notification.deduct_request_id | String | The request_id you received in the Deduct message of the matched purchase. Only present when matched is true and the purchase was forwarded to you. |
| notification.deduct_amount | Number | Amount of the matched purchase in Mexican pesos. Only present when matched is true. |
| notification.score | Number | Total score of the matched purchase, rounded to one decimal. 0.0 when matched is false. |
How the match is decided
The candidates are the successful purchases and cash withdrawals made by the same customer in the 3 months before the Load Adjustment. Each candidate earns points for the signals below. The candidate with the highest score is the match if it scores at least 4.5 and its amount matches exactly or approximately. Otherwise, matched is false.
| Signal | Points | When it applies |
|---|---|---|
| Exact amount | 4.5 | The purchase amount equals the Load Adjustment amount. |
| Approximate amount | 1.0 | The purchase amount is within 5% of the Load Adjustment amount. Never together with the exact amount. |
| Merchant description | Up to 2.0 | The merchant descriptions are at least 30% similar. Points grow with the similarity. |
| Same card | 1.5 | The purchase was made with the same card. |
| Same terminal | 1.0 | The purchase has the same terminal ID in the Paymentology message. |
| Time proximity | 1.0, 0.6 or 0.3 | The purchase was made less than 3, 7 or 30 days before the Load Adjustment. |
This notification is informational only. It does not change any balance or transaction.

