@alvarochaval/mdp-sdk
v0.1.0
Published
Mesa de Pagos SDK — módulo auth para Persona y Borderless (BYOK)
Maintainers
Readme
@mdp/sdk
SDK de Mesa de Pagos — módulo auth (v0.1.0).
Conecta con los proveedores externos Persona y Borderless usando credenciales BYOK en .env. El token de Borderless se cachea en memoria; no hace falta pasarlo en cada petición.
Instalación (local, monorepo)
cd api-mdp/packages/mdp-sdk
npm install
npm run buildDesde otro proyecto en el monorepo:
{
"dependencies": {
"@mdp/sdk": "file:../api-mdp/packages/mdp-sdk"
}
}Variables de entorno
| Variable | Requerida | Descripción |
|----------|-----------|-------------|
| PERSONA_API_KEY | Sí | API key de Persona |
| PERSONA_API_URL | No | Default: https://api.withpersona.com/api/v1/ |
| BORDERLESS_API_URL | Sí | Base URL de Borderless |
| BORDERLESS_CLIENT_ID | Sí | Client ID M2M |
| BORDERLESS_CLIENT_SECRET | Sí | Client secret M2M |
Uso
import { createMdpSdk } from '@mdp/sdk'
const sdk = createMdpSdk()
// Headers Persona (API key estática)
const personaHeaders = sdk.auth.getPersonaHeaders()
// Token Borderless M2M (cache + refresh automático)
const borderlessToken = await sdk.auth.getBorderlessAccessToken()
// HTTP autenticado a proveedores
const inquiry = await sdk.auth.http.get('persona', '/inquiries/inq_xxx')
const identity = await sdk.auth.http.post('borderless', '/v1/identities', payload)Overrides (tests)
const sdk = createMdpSdk({
persona: { apiKey: 'test', baseUrl: 'https://api.withpersona.com/api/v1' },
borderless: {
apiUrl: 'https://sandbox-api.borderless.xyz',
clientId: 'id',
clientSecret: 'secret'
}
})Scripts
npm run build— compila adist/npm test— tests unitarios
Publicación npm (cuando corresponda)
npm publish --access publicRequiere org @mdp en npm y versión bump en package.json.
Alcance v0.1
Incluye solo auth hacia Persona y Borderless. Onboarding, webhooks y otros módulos vendrán en versiones posteriores.
