@ar-agents/mercadopago 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/dist/index.cjs +326 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +243 -2
- package/dist/index.d.ts +243 -2
- package/dist/index.js +323 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -958,6 +958,71 @@ var MercadoPagoClient = class {
|
|
|
958
958
|
async cancelOrder(id) {
|
|
959
959
|
return this.request("POST", `/v1/orders/${id}/cancel`);
|
|
960
960
|
}
|
|
961
|
+
// ──────────────────────────────────────────────────────────────────────────
|
|
962
|
+
// v0.6 — Account Balance + Movements
|
|
963
|
+
//
|
|
964
|
+
// Inspect the seller's MP wallet — what's available to withdraw, what's
|
|
965
|
+
// in retention (pending release), and the movement log.
|
|
966
|
+
//
|
|
967
|
+
// For per-seller marketplace setups, instantiate the client AS THE SELLER
|
|
968
|
+
// (with their OAuth access_token) before calling these — `getAccountBalance`
|
|
969
|
+
// returns the balance of WHOEVER's accessToken is active.
|
|
970
|
+
// ──────────────────────────────────────────────────────────────────────────
|
|
971
|
+
/**
|
|
972
|
+
* Get the seller's current MP wallet balance (available + unavailable).
|
|
973
|
+
* - `available_balance`: spendable / withdrawable right now.
|
|
974
|
+
* - `unavailable_balance`: in retention (e.g., 14-21 days for new sellers).
|
|
975
|
+
* - `total_amount` = sum of both.
|
|
976
|
+
*/
|
|
977
|
+
async getAccountBalance() {
|
|
978
|
+
return this.request("GET", "/users/me/mercadopago_account/balance");
|
|
979
|
+
}
|
|
980
|
+
/**
|
|
981
|
+
* List wallet movements (incoming payments, transfers, refunds, holdings).
|
|
982
|
+
* Defaults to most-recent-first, paginated. Filter by date range with
|
|
983
|
+
* `from`/`to` (ISO 8601).
|
|
984
|
+
*/
|
|
985
|
+
async listAccountMovements(params = {}) {
|
|
986
|
+
const query = {};
|
|
987
|
+
if (params.from) query.begin_date = params.from;
|
|
988
|
+
if (params.to) query.end_date = params.to;
|
|
989
|
+
if (params.limit !== void 0) query.limit = params.limit;
|
|
990
|
+
if (params.offset !== void 0) query.offset = params.offset;
|
|
991
|
+
const result = await this.request("GET", "/users/me/mercadopago_account/movements/search", void 0, { query });
|
|
992
|
+
return {
|
|
993
|
+
movements: result.results ?? [],
|
|
994
|
+
paging: result.paging ?? { limit: params.limit ?? 25, offset: params.offset ?? 0, total: 0 }
|
|
995
|
+
};
|
|
996
|
+
}
|
|
997
|
+
// ──────────────────────────────────────────────────────────────────────────
|
|
998
|
+
// v0.6 — Settlements (release_money)
|
|
999
|
+
//
|
|
1000
|
+
// When MP transfers funds from your MP wallet to your registered CBU.
|
|
1001
|
+
// ──────────────────────────────────────────────────────────────────────────
|
|
1002
|
+
/**
|
|
1003
|
+
* List settlements (transfers from MP wallet to your bank account).
|
|
1004
|
+
* Useful for monthly conciliation reports.
|
|
1005
|
+
*/
|
|
1006
|
+
async listSettlements(params = {}) {
|
|
1007
|
+
const query = {};
|
|
1008
|
+
if (params.from) query.begin_date = params.from;
|
|
1009
|
+
if (params.to) query.end_date = params.to;
|
|
1010
|
+
if (params.status) query.status = params.status;
|
|
1011
|
+
if (params.limit !== void 0) query.limit = params.limit;
|
|
1012
|
+
if (params.offset !== void 0) query.offset = params.offset;
|
|
1013
|
+
const result = await this.request("GET", "/v1/account/release_money/search", void 0, { query });
|
|
1014
|
+
return {
|
|
1015
|
+
settlements: result.results ?? [],
|
|
1016
|
+
paging: result.paging ?? { limit: params.limit ?? 25, offset: params.offset ?? 0, total: 0 }
|
|
1017
|
+
};
|
|
1018
|
+
}
|
|
1019
|
+
/**
|
|
1020
|
+
* Get a single settlement by id. Returns the full Settlement object
|
|
1021
|
+
* including bank_account info (CBU, bank name).
|
|
1022
|
+
*/
|
|
1023
|
+
async getSettlement(id) {
|
|
1024
|
+
return this.request("GET", `/v1/account/release_money/${id}`);
|
|
1025
|
+
}
|
|
961
1026
|
};
|
|
962
1027
|
z.enum(["MLA", "MLB", "MLM", "MCO", "MLC", "MLU"]);
|
|
963
1028
|
var CurrencyIdSchema = z.enum(["ARS", "USD", "BRL", "MXN"]);
|
|
@@ -1306,6 +1371,38 @@ z.object({
|
|
|
1306
1371
|
/** Capture mode: "automatic" (charges immediately) or "manual" (auth-only). */
|
|
1307
1372
|
capture_mode: z.string().optional()
|
|
1308
1373
|
}).passthrough();
|
|
1374
|
+
z.object({
|
|
1375
|
+
user_id: z.union([z.string(), z.number()]).transform(String).optional(),
|
|
1376
|
+
available_balance: z.number(),
|
|
1377
|
+
unavailable_balance: z.number(),
|
|
1378
|
+
total_amount: z.number(),
|
|
1379
|
+
currency_id: z.string().default("ARS")
|
|
1380
|
+
}).passthrough();
|
|
1381
|
+
z.object({
|
|
1382
|
+
id: z.union([z.string(), z.number()]).transform(String),
|
|
1383
|
+
type: z.string(),
|
|
1384
|
+
description: z.string().optional(),
|
|
1385
|
+
amount: z.number(),
|
|
1386
|
+
currency_id: z.string().optional(),
|
|
1387
|
+
status: z.string().optional(),
|
|
1388
|
+
date_created: z.string().optional(),
|
|
1389
|
+
date_released: z.string().optional(),
|
|
1390
|
+
reference_id: z.union([z.string(), z.number()]).optional(),
|
|
1391
|
+
payment_id: z.union([z.string(), z.number()]).optional()
|
|
1392
|
+
}).passthrough();
|
|
1393
|
+
z.object({
|
|
1394
|
+
id: z.union([z.string(), z.number()]).transform(String),
|
|
1395
|
+
status: z.string().optional(),
|
|
1396
|
+
amount: z.number().optional(),
|
|
1397
|
+
currency_id: z.string().optional(),
|
|
1398
|
+
date_created: z.string().optional(),
|
|
1399
|
+
date_scheduled: z.string().optional(),
|
|
1400
|
+
date_processed: z.string().optional(),
|
|
1401
|
+
bank_account: z.object({
|
|
1402
|
+
cbu: z.string().optional(),
|
|
1403
|
+
bank_name: z.string().optional()
|
|
1404
|
+
}).passthrough().optional()
|
|
1405
|
+
}).passthrough();
|
|
1309
1406
|
|
|
1310
1407
|
// src/oauth.ts
|
|
1311
1408
|
var DEFAULT_AUTHORIZE_URL = "https://auth.mercadopago.com.ar/authorization";
|
|
@@ -1372,6 +1469,134 @@ function expirationTimeMs(issuedAtMs, expiresInSeconds) {
|
|
|
1372
1469
|
function isExpiringSoon(expirationMs, skewSeconds = 300) {
|
|
1373
1470
|
return Date.now() + skewSeconds * 1e3 >= expirationMs;
|
|
1374
1471
|
}
|
|
1472
|
+
|
|
1473
|
+
// src/test-cards.ts
|
|
1474
|
+
var TEST_CARDS_AR = {
|
|
1475
|
+
VISA_CREDIT: {
|
|
1476
|
+
brand: "Visa (cr\xE9dito)",
|
|
1477
|
+
number: "4509 9535 6623 3704".replace(/\s/g, ""),
|
|
1478
|
+
cvv: "123",
|
|
1479
|
+
exp: "11/30",
|
|
1480
|
+
paymentMethodId: "visa",
|
|
1481
|
+
holderNameToTest: {
|
|
1482
|
+
APRO: "approved",
|
|
1483
|
+
OTHE: "cc_rejected_other_reason",
|
|
1484
|
+
CONT: "pending_contingency",
|
|
1485
|
+
CALL: "cc_rejected_call_for_authorize",
|
|
1486
|
+
FUND: "cc_rejected_insufficient_amount",
|
|
1487
|
+
SECU: "cc_rejected_bad_filled_security_code",
|
|
1488
|
+
EXPI: "cc_rejected_bad_filled_date",
|
|
1489
|
+
FORM: "cc_rejected_bad_filled_other"
|
|
1490
|
+
}
|
|
1491
|
+
},
|
|
1492
|
+
MASTERCARD_CREDIT: {
|
|
1493
|
+
brand: "Mastercard (cr\xE9dito)",
|
|
1494
|
+
number: "5031 7557 3453 0604".replace(/\s/g, ""),
|
|
1495
|
+
cvv: "123",
|
|
1496
|
+
exp: "11/30",
|
|
1497
|
+
paymentMethodId: "master",
|
|
1498
|
+
holderNameToTest: {
|
|
1499
|
+
APRO: "approved",
|
|
1500
|
+
OTHE: "cc_rejected_other_reason",
|
|
1501
|
+
CONT: "pending_contingency",
|
|
1502
|
+
CALL: "cc_rejected_call_for_authorize",
|
|
1503
|
+
FUND: "cc_rejected_insufficient_amount"
|
|
1504
|
+
}
|
|
1505
|
+
},
|
|
1506
|
+
AMEX_CREDIT: {
|
|
1507
|
+
brand: "American Express (cr\xE9dito)",
|
|
1508
|
+
number: "3711 803032 57522".replace(/\s/g, ""),
|
|
1509
|
+
cvv: "1234",
|
|
1510
|
+
exp: "11/30",
|
|
1511
|
+
paymentMethodId: "amex",
|
|
1512
|
+
holderNameToTest: { APRO: "approved", OTHE: "cc_rejected_other_reason" }
|
|
1513
|
+
},
|
|
1514
|
+
VISA_DEBIT: {
|
|
1515
|
+
brand: "Visa (d\xE9bito)",
|
|
1516
|
+
number: "4002 7686 9439 5619".replace(/\s/g, ""),
|
|
1517
|
+
cvv: "123",
|
|
1518
|
+
exp: "11/30",
|
|
1519
|
+
paymentMethodId: "debvisa",
|
|
1520
|
+
holderNameToTest: { APRO: "approved", OTHE: "cc_rejected_other_reason" }
|
|
1521
|
+
},
|
|
1522
|
+
MASTERCARD_DEBIT: {
|
|
1523
|
+
brand: "Mastercard (d\xE9bito)",
|
|
1524
|
+
number: "5287 3383 0125 4634".replace(/\s/g, ""),
|
|
1525
|
+
cvv: "123",
|
|
1526
|
+
exp: "11/30",
|
|
1527
|
+
paymentMethodId: "debmaster",
|
|
1528
|
+
holderNameToTest: { APRO: "approved", OTHE: "cc_rejected_other_reason" }
|
|
1529
|
+
}
|
|
1530
|
+
};
|
|
1531
|
+
var TEST_PAYERS_AR = {
|
|
1532
|
+
approvedBuyer: () => ({
|
|
1533
|
+
email: `test_user_${Date.now()}@testuser.com`,
|
|
1534
|
+
identification: { type: "DNI", number: "12345678" }
|
|
1535
|
+
})
|
|
1536
|
+
};
|
|
1537
|
+
function buildTestCardScenario(cardKey, scenario, amountArs) {
|
|
1538
|
+
const card = TEST_CARDS_AR[cardKey];
|
|
1539
|
+
if (!card) throw new Error(`Unknown test card: ${cardKey}`);
|
|
1540
|
+
if (!card.holderNameToTest[scenario]) {
|
|
1541
|
+
throw new Error(
|
|
1542
|
+
`Card ${cardKey} doesn't define scenario ${scenario}. Available: ${Object.keys(card.holderNameToTest).join(", ")}`
|
|
1543
|
+
);
|
|
1544
|
+
}
|
|
1545
|
+
return {
|
|
1546
|
+
transactionAmount: amountArs,
|
|
1547
|
+
paymentMethodId: card.paymentMethodId,
|
|
1548
|
+
payerEmail: TEST_PAYERS_AR.approvedBuyer().email,
|
|
1549
|
+
description: `TEST ${scenario} via ${cardKey}`,
|
|
1550
|
+
installments: 1,
|
|
1551
|
+
holderName: scenario
|
|
1552
|
+
};
|
|
1553
|
+
}
|
|
1554
|
+
|
|
1555
|
+
// src/three-ds.ts
|
|
1556
|
+
function analyze3DS(payment) {
|
|
1557
|
+
const raw = payment;
|
|
1558
|
+
const mode = raw.three_d_secure_mode ?? null;
|
|
1559
|
+
const statusDetail = payment.status_detail ?? null;
|
|
1560
|
+
if (!mode || mode === "not_supported" || mode === "off") {
|
|
1561
|
+
return {
|
|
1562
|
+
status: "not_required",
|
|
1563
|
+
mode,
|
|
1564
|
+
challengeUrl: null,
|
|
1565
|
+
description: "3DS no fue requerido para este pago (riesgo bajo o emisor sin 3DS habilitado)."
|
|
1566
|
+
};
|
|
1567
|
+
}
|
|
1568
|
+
const threeDsInfo = raw.three_ds_info ?? void 0;
|
|
1569
|
+
if (statusDetail === "pending_challenge" && threeDsInfo?.external_resource_url) {
|
|
1570
|
+
return {
|
|
1571
|
+
status: "challenge_required",
|
|
1572
|
+
mode,
|
|
1573
|
+
challengeUrl: threeDsInfo.external_resource_url,
|
|
1574
|
+
description: "El emisor de la tarjeta requiri\xF3 autenticaci\xF3n 3DS. Redirig\xED al comprador a challengeUrl para completar el desaf\xEDo. El pago queda pending hasta que lo haga."
|
|
1575
|
+
};
|
|
1576
|
+
}
|
|
1577
|
+
if (payment.status === "approved") {
|
|
1578
|
+
return {
|
|
1579
|
+
status: "frictionless",
|
|
1580
|
+
mode,
|
|
1581
|
+
challengeUrl: null,
|
|
1582
|
+
description: "3DS frictionless: el emisor autoriz\xF3 sin desafiar al comprador."
|
|
1583
|
+
};
|
|
1584
|
+
}
|
|
1585
|
+
if (payment.status === "rejected" && typeof statusDetail === "string" && statusDetail.includes("3ds")) {
|
|
1586
|
+
return {
|
|
1587
|
+
status: "rejected",
|
|
1588
|
+
mode,
|
|
1589
|
+
challengeUrl: null,
|
|
1590
|
+
description: `Autenticaci\xF3n 3DS rechazada (${statusDetail}). El comprador debe usar otra tarjeta o validarla con el emisor.`
|
|
1591
|
+
};
|
|
1592
|
+
}
|
|
1593
|
+
return {
|
|
1594
|
+
status: "unknown",
|
|
1595
|
+
mode,
|
|
1596
|
+
challengeUrl: threeDsInfo?.external_resource_url ?? null,
|
|
1597
|
+
description: "No se pudo determinar el estado 3DS \u2014 revisar payment.three_d_secure_mode + payment.status_detail manualmente."
|
|
1598
|
+
};
|
|
1599
|
+
}
|
|
1375
1600
|
function parseWebhookEvent(body, searchParams) {
|
|
1376
1601
|
const parseResult = WebhookBodySchema.safeParse(body ?? {});
|
|
1377
1602
|
const parsedBody = parseResult.success ? parseResult.data : {};
|
|
@@ -1473,7 +1698,16 @@ var DEFAULT_DESCRIPTIONS = {
|
|
|
1473
1698
|
get_order: "Fetch an Order by ID. Returns the Order with its lifecycle status and any attached payments/refunds.",
|
|
1474
1699
|
update_order: "Patch an existing Order before it's captured/canceled. Common use: update items or external_reference.",
|
|
1475
1700
|
capture_order: "Capture a previously-authorized Order (only for orders created with capture_mode='manual'). Captures up to the originally-authorized amount; pass amount for partial capture. Common use: ride-share marks ride complete \u2192 capture; hotel checks-out guest \u2192 capture.",
|
|
1476
|
-
cancel_order: "Cancel an Order. Releases any auth-holds and marks the Order as canceled. For orders that have already been CAPTURED, use refund_payment instead \u2014 cancel only works pre-capture."
|
|
1701
|
+
cancel_order: "Cancel an Order. Releases any auth-holds and marks the Order as canceled. For orders that have already been CAPTURED, use refund_payment instead \u2014 cancel only works pre-capture.",
|
|
1702
|
+
// ── Account / Balance / Movements / Settlements (v0.6) ───────────────────
|
|
1703
|
+
get_account_balance: "Get the seller's current MP wallet balance. Returns { available_balance, unavailable_balance, total_amount, currency_id }. The available balance is what the seller can withdraw or pay with right now; unavailable is in retention (typically 14-21 days for new sellers or risk-flagged transactions). For per-seller marketplace setups, instantiate the client AS THE SELLER first.",
|
|
1704
|
+
list_account_movements: "List wallet movements (incoming payments, transfers, refunds, holdings) for the active MP account. Filter by date range with `from`/`to` (ISO 8601). Useful for monthly conciliation or 'show me what came in this month' workflows.",
|
|
1705
|
+
list_settlements: "List settlements (release_money) \u2014 i.e. transfers from the MP wallet to the seller's registered bank account (CBU). USE WHEN the user asks 'cu\xE1ndo me deposita MP' or for monthly bank-conciliation reports. Filter by date range and status.",
|
|
1706
|
+
get_settlement: "Get details of a single settlement: amount, date_scheduled, date_processed, bank_account info (CBU + bank name).",
|
|
1707
|
+
// ── 3DS analyzer (v0.6 — pure) ───────────────────────────────────────────
|
|
1708
|
+
analyze_payment_3ds: "Pure local analyzer for a Payment's 3DS (Strong Customer Authentication) state. Pass a payment_id (string) and the tool fetches the Payment then derives { status: 'not_required'|'frictionless'|'challenge_required'|'rejected'|'unknown', mode, challengeUrl, description }. USE THIS after every create_payment for credit cards: when challengeUrl !== null, you MUST redirect the buyer there before the payment can complete. Without 3DS, payments stay in 'pending' indefinitely if the issuer demanded a challenge.",
|
|
1709
|
+
// ── Test cards (v0.6 — pure) ─────────────────────────────────────────────
|
|
1710
|
+
get_test_cards: "Pure helper that returns the official MP test cards for AR (MLA): VISA/Mastercard/Amex credit + debit, with the 'magic' holder names that route the payment to specific status_detail values (APRO=approved, OTHE=rejected, CONT=pending, FUND=insufficient_amount, etc.). USE WHEN you need to demo a payment flow without a real card, or to script integration tests. Pure data \u2014 no network call."
|
|
1477
1711
|
};
|
|
1478
1712
|
function mercadoPagoTools(client, options) {
|
|
1479
1713
|
const desc = (name) => options.descriptions?.[name] ?? DEFAULT_DESCRIPTIONS[name];
|
|
@@ -2780,6 +3014,93 @@ function mercadoPagoTools(client, options) {
|
|
|
2780
3014
|
status: order.status ?? "canceled"
|
|
2781
3015
|
};
|
|
2782
3016
|
}
|
|
3017
|
+
}),
|
|
3018
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
3019
|
+
// v0.6 — Account / Balance / Movements / Settlements
|
|
3020
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
3021
|
+
get_account_balance: tool({
|
|
3022
|
+
description: desc("get_account_balance"),
|
|
3023
|
+
inputSchema: z.object({}),
|
|
3024
|
+
execute: async () => {
|
|
3025
|
+
const balance = await client.getAccountBalance();
|
|
3026
|
+
return balance;
|
|
3027
|
+
}
|
|
3028
|
+
}),
|
|
3029
|
+
list_account_movements: tool({
|
|
3030
|
+
description: desc("list_account_movements"),
|
|
3031
|
+
inputSchema: z.object({
|
|
3032
|
+
from: z.string().optional().describe("ISO 8601 start date (e.g. 2026-05-01)"),
|
|
3033
|
+
to: z.string().optional().describe("ISO 8601 end date"),
|
|
3034
|
+
limit: z.number().int().min(1).max(100).optional(),
|
|
3035
|
+
offset: z.number().int().min(0).optional()
|
|
3036
|
+
}),
|
|
3037
|
+
execute: async ({ from, to, limit, offset }) => {
|
|
3038
|
+
const params = {};
|
|
3039
|
+
if (from !== void 0) params.from = from;
|
|
3040
|
+
if (to !== void 0) params.to = to;
|
|
3041
|
+
if (limit !== void 0) params.limit = limit;
|
|
3042
|
+
if (offset !== void 0) params.offset = offset;
|
|
3043
|
+
return client.listAccountMovements(params);
|
|
3044
|
+
}
|
|
3045
|
+
}),
|
|
3046
|
+
list_settlements: tool({
|
|
3047
|
+
description: desc("list_settlements"),
|
|
3048
|
+
inputSchema: z.object({
|
|
3049
|
+
from: z.string().optional(),
|
|
3050
|
+
to: z.string().optional(),
|
|
3051
|
+
status: z.string().optional(),
|
|
3052
|
+
limit: z.number().int().min(1).max(100).optional(),
|
|
3053
|
+
offset: z.number().int().min(0).optional()
|
|
3054
|
+
}),
|
|
3055
|
+
execute: async ({ from, to, status, limit, offset }) => {
|
|
3056
|
+
const params = {};
|
|
3057
|
+
if (from !== void 0) params.from = from;
|
|
3058
|
+
if (to !== void 0) params.to = to;
|
|
3059
|
+
if (status !== void 0) params.status = status;
|
|
3060
|
+
if (limit !== void 0) params.limit = limit;
|
|
3061
|
+
if (offset !== void 0) params.offset = offset;
|
|
3062
|
+
return client.listSettlements(params);
|
|
3063
|
+
}
|
|
3064
|
+
}),
|
|
3065
|
+
get_settlement: tool({
|
|
3066
|
+
description: desc("get_settlement"),
|
|
3067
|
+
inputSchema: z.object({ settlement_id: z.string() }),
|
|
3068
|
+
execute: async ({ settlement_id }) => {
|
|
3069
|
+
return client.getSettlement(settlement_id);
|
|
3070
|
+
}
|
|
3071
|
+
}),
|
|
3072
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
3073
|
+
// v0.6 — 3DS analyzer (combined: fetch payment + analyze)
|
|
3074
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
3075
|
+
analyze_payment_3ds: tool({
|
|
3076
|
+
description: desc("analyze_payment_3ds"),
|
|
3077
|
+
inputSchema: z.object({
|
|
3078
|
+
payment_id: z.string().describe("MP payment id")
|
|
3079
|
+
}),
|
|
3080
|
+
execute: async ({ payment_id }) => {
|
|
3081
|
+
const payment = await client.getPayment(payment_id);
|
|
3082
|
+
const info = analyze3DS(payment);
|
|
3083
|
+
return {
|
|
3084
|
+
payment_id,
|
|
3085
|
+
payment_status: payment.status,
|
|
3086
|
+
payment_status_detail: payment.status_detail ?? null,
|
|
3087
|
+
...info
|
|
3088
|
+
};
|
|
3089
|
+
}
|
|
3090
|
+
}),
|
|
3091
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
3092
|
+
// v0.6 — Test cards (pure)
|
|
3093
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
3094
|
+
get_test_cards: tool({
|
|
3095
|
+
description: desc("get_test_cards"),
|
|
3096
|
+
inputSchema: z.object({}),
|
|
3097
|
+
execute: async () => {
|
|
3098
|
+
return {
|
|
3099
|
+
site: "MLA",
|
|
3100
|
+
cards: TEST_CARDS_AR,
|
|
3101
|
+
usage: "Pass holderName='APRO' for an approved payment, 'OTHE' for rejected, 'CONT' for pending, 'FUND' for insufficient amount, 'CALL' for call-for-authorize. Use a NEW payer email per call (append a timestamp) to avoid MP idempotency-on-email deduping."
|
|
3102
|
+
};
|
|
3103
|
+
}
|
|
2783
3104
|
})
|
|
2784
3105
|
};
|
|
2785
3106
|
}
|
|
@@ -2803,6 +3124,6 @@ var InMemoryStateAdapter = class {
|
|
|
2803
3124
|
}
|
|
2804
3125
|
};
|
|
2805
3126
|
|
|
2806
|
-
export { InMemoryStateAdapter, MercadoPagoAccountTypeMismatchError, MercadoPagoAuthError, MercadoPagoAuthorizeForbiddenError, MercadoPagoBackUrlInvalidError, MercadoPagoClient, MercadoPagoError, MercadoPagoOverloadedError, MercadoPagoPaymentRejectedError, MercadoPagoRateLimitError, MercadoPagoSelfPaymentError, MercadoPagoTimeoutError, buildAuthorizeUrl, classifyError, exchangeCodeForToken, expirationTimeMs, isExpiringSoon, mercadoPagoTools, parseWebhookEvent, refreshAccessToken, verifyWebhookSignature };
|
|
3127
|
+
export { InMemoryStateAdapter, MercadoPagoAccountTypeMismatchError, MercadoPagoAuthError, MercadoPagoAuthorizeForbiddenError, MercadoPagoBackUrlInvalidError, MercadoPagoClient, MercadoPagoError, MercadoPagoOverloadedError, MercadoPagoPaymentRejectedError, MercadoPagoRateLimitError, MercadoPagoSelfPaymentError, MercadoPagoTimeoutError, TEST_CARDS_AR, TEST_PAYERS_AR, analyze3DS, buildAuthorizeUrl, buildTestCardScenario, classifyError, exchangeCodeForToken, expirationTimeMs, isExpiringSoon, mercadoPagoTools, parseWebhookEvent, refreshAccessToken, verifyWebhookSignature };
|
|
2807
3128
|
//# sourceMappingURL=index.js.map
|
|
2808
3129
|
//# sourceMappingURL=index.js.map
|