marlim-sdk-3ds
v1.0.7
Published
SDK 3DS para integração com a API Marlim
Readme
Marlim SDK 3DS
SDK oficial da Marlim para integração do protocolo de segurança 3DS, oferecendo autenticação segura para as transações.
Documentação
Para informações detalhadas sobre integração com o 3DS, tipos de pagamentos, processamento de transações e outros recursos da API, consulte nossa documentação oficial.
Instalação
> npm install marlim-sdk-3ds
# ou
> yarn add marlim-sdk-3ds
# ou
> pnpm add marlim-sdk-3dsUso
Para realizar a autenticação 3DS, é obrigatório possuir o token de sessão. Consulte a seção 3DS na nossa documentação para obter instruções detalhadas sobre como gerar este token.
Autenticação
O SDK disponibiliza um fluxo de autenticação 3DS em apenas duas etapas: inicialização e autenticação.
Exemplo - Inicialização
import MarlimSDK_3DS from 'marlim-sdk-3ds';
// Etapa 1: Inicializar o SDK
MarlimSDK_3DS.init({
token: 'sua-sessao-aqui',
env: 'sandbox' // ou 'production'
});Exemplo - Autenticação
import MarlimSDK_3DS from 'marlim-sdk-3ds';
try {
// Etapa 2: Autenticação 3DS
const result = await MarlimSDK_3DS.authenticate({
amount: 1000, // Valor em centavos
card: {
number: '1111111111111111',
expirationDate: '0126', // Formato MMAA
cvv: '123',
holderName: 'John Doe'
},
customer: {
name: 'Jose Silva',
documentNumber: '9999999999',
email: '[email protected]',
phone: {
number: '999999999',
areaCode: '99',
countryCode: '55'
},
address: {
country: 'BR',
state: 'SP',
city: 'São Paulo',
neighborhood: 'Centro',
number: '123',
street: 'Rua das Flores',
zipcode: '01001000',
complement: 'Apto 123'
}
}
});
console.log('Autenticação bem-sucedida:', result);
// Resultado: { card_id: "card_123", threeds_authentication_id: "auth_456" }
} catch (error) {
console.error('Falha na autenticação:', error);
}Após o resultado
Após obter o threeds_authentication_id e o card_id, já é possível realizar uma transação com autenticação 3DS. Informe ambos os campos na requisição do endpoint de transação para que o pagamento seja processado com sucesso. Para mais detalhes, acesse a nossa documentação.
Referências
init(params: SetupParams): void
Inicializa o SDK com o token de sessão gerado. Deve ser chamado antes de qualquer tentativa de autenticação.
Parâmetros:
token: string- Seu token de sessãoenv: 'sandbox' | 'production'- Ambiente a ser usado
Exemplo:
MarlimSDK_3DS.init({
token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
env: 'sandbox'
});authenticate(params: ThreedsAuthenticateParams): Promise<AuthenticationResult>
Executa o fluxo completo de autenticação 3DS.
Estrutura de dados:
type CardHash = string;
type CardData = {
number: string;
expirationDate: string;
cvv: string;
holderName: string;
}
type CustomerData = {
name: string;
documentNumber: string;
email: string;
phone: {
number: string;
areaCode: string;
countryCode: string;
};
address: {
country: string;
state: string;
city: string;
neighborhood: string;
number: string;
street: string;
zipcode: string;
complement?: string;
};
}Parâmetros:
Campos Obrigatórios
amount: number- Valor da transação em centavos (ex: 1000 = R$ 10,00)customer: CustomerData- Informações do cliente (CustomerData)
Informações do Cartão (escolha uma)
card?: CardData- Detalhes do cartão (CardData)card_hash?: CardHash- Dados do cartão criptografado (Acesse a documentação e confira o passo a passo para criptografar os dados do cartão.)
Campos Opcionais
challenge?: boolean- Forçar fluxo de desafio (apenas sandbox)
Exemplo:
await MarlimSDK_3DS.authenticate({
amount: 1000,
card: {
number: '1111111111111111',
expirationDate: '0126',
cvv: '123',
holderName: 'John Doe'
},
customer: {
name: 'Jose Silva',
documentNumber: '99999999999',
email: '[email protected]',
phone: {
number: '999999999',
areaCode: '99',
countryCode: '99'
},
address: {
country: 'BR',
state: 'SP',
city: 'São Paulo',
neighborhood: 'Centro',
number: '123',
street: 'Rua das Flores',
zipcode: '01001000',
complement: 'Apto 123'
}
}
})Retorna:
{
card_id: string;
threeds_authentication_id: string;
}Notas Importantes
Apenas Navegador: Este SDK só funciona em ambiente Web Browser (não funciona em servidores)
Formato dos Dados do Cartão:
- Números de cartão devem conter apenas dígitos
- Datas de expiração devem estar no formato MMAA
Formato do Valor: Sempre forneça valores em centavos (ex: 1000 = R$ 10,00)
Parâmetro Challenge: Disponível apenas no ambiente sandbox para fins de teste
Cartão vs Card Hash: Você deve fornecer OU detalhes do
cardOUcard_hash, mas não ambos
