Criar Transação
Endpoint dedicado para a Nomad fazer uma cobrança e criar uma sua transação.
É possível utilizar um card_hash
ou um card_id
. Os dados abertos do cartão, não serão aceitos nesse endpoint.
Os times da Nomad sempre serão avisados sobre essas mudanças e atualizações.
Request Body Params
Atributo | Tipo | Descrição |
---|---|---|
net_value | int32 | Valor a ser cobrado sem as taxas de adquirência. Deve ser passado em centavos. |
amount | int32 | Valor final a ser cobrado com as taxas. Deve ser passado em centavos. |
installments | string | Número de parcelas da transação, sendo mínimo: 1 e máximo: 12. |
type | int32 | Tipo de transação que o clinete está fazendo. Valores aceitos: remittance (remessa), currency_exchange (papel moeda). |
currency_amount | int32 | Valor transacionado da moeda estrangeira. Ex: 500 Dólares Americanos, deve ser passado como 50000 (mesmo formato do amount, em centavos) |
currency_abbreviation | string | Valores aceitos: AED , ARS , AUD , BRL , CAD , CHF , CLP , CNY , COL , DKK , EUR , GBP , ILS , JPY , MXN , NOK , NZD , PEN , RUB , SEK , USD , UYU , ZAR . |
item_id | string | ID da transação na sua plataforma. |
item_url | string | PATH URL no browser do cliente pagador que origina a transação. |
card_hash | string | Hash de um cartão criptografado manualmente usando uma chave pública. Caso inclua um card_id, esse campo torna-se dispensável. |
card_id | string | ID de um cartão salvo e validado anteriormente via card_hash . Caso inclua um card_hash, esse campo torna-se dispensável. |
customer | object | Objeto Cliente. |
customer[external_id] | string | Código identificador do cliente em sua plataforma. |
customer[name] | string | Nome do cliente. |
customer[email] | string | E-mail do cliente. |
customer[document_number] | string | Número do documento do cliente. |
customer[phone_number] | string | Número do telefone do cliente. |
customer[address] | object | Objeto Endereço do Cliente. |
customer[address][zipcode] | string | CEP (clientes nacionais) ou ZIP (clientes estrangeiros) do cliente. Máximo em caracteres: 9 |
customer[address][country] | string | Nacionalidade do cliente, no formato sigla do país. Só serão aceitos o formato ISO 3166-1 alfa-2 (duas-letras) Ex: br, us, uy... Máximo em caracteres: 2 |
customer[address][state] | string | Estado do atual endereço do cliente, no formato sigla do estado. Ex: SP, RJ, MG... Máximo em caracteres: 2 |
customer[address][city] | string | Cidade do endereço do cliente. Máximo em caracteres: 50 |
customer[address][neighborhood] | string | Bairro do endereço do cliente. Máximo em caracteres: 45 |
customer[address][street] | string | Rua do endereço do cliente. Máximo em caracteres: 54 |
customer[address][number] | string | Número do atual endereço do cliente. Máximo em caracteres: 5 |
customer[address][complement] | string | Parâmetro opcional do complemento do atual endereço do cliente. Máximo em caracteres: 14 |
soft_descriptor | string | Descrição que aparecerá na fatura do seu cliente. Máximo de 17 caracteres, sendo alfanuméricos e espaços. |
postback_url | string | Parâmetro opcional para passar o endpoint do seu sistema que receberá informações a cada atualização da transação. |
simulate_status | string | Parâmetro opcional que pode ser passado em ambiente de teste para simular o fluxo do Antifraude. Valores aceitos: paid , review e rejected . |
simulate_refused | string | Parâmetro opcional que pode ser passado em ambiente de teste para simular o fluxo de retornos negativos do banco emissor. Valores aceitos: 1000 , 1011 , 1016 e 5000 . |
Os parâmetros customer[document_number]
e customer[phone_number]
devem ser tratados e passados de forma diferente entre clientes de nacionalidade brasileira ou estrangeira.
Caso o cliente seja de nacionalidade brasileira (customer[address][country]
== 'br')
customer[document_number]
deve ser passado o CPF do cliente• Em
customer[phone_number]
deve ser passado no formato +55DDXXXXXXXXXCaso o cliente seja de nacionalidade estrangeira (customer[address][country]
!= 'br')
customer[document_number]
deve ser passado o NIN (national identification number) do cliente• Em
customer[phone_number]
deve ser passado deve ser passado no padrão regex /^\+(?:[0-9] ?)14[0-9]$/]]Parâmetros Customizados
Como forma de melhoria na taxa de aprovação/conversão dos clientes, foram criados entre os times Marlim e Nomad alguns parâmetros customizados que devem ser enviados na request de criação de transação. Essa lista pode crescer ao longo do tempo, abaixo segue a lista de itens que já foram criados e já estão disponiveis para implementação na API:
Atributo | Tipo | Descrição |
---|---|---|
customer_registration_date | dateTime | Data de abertura do cadastro do usuário com a Nomad no formato ISODateTime. |
customer_first_transaction_date | dateTime | Data da primeira operação concretizada (paga) na Nomad, independente de ter sido processada pela Marlim ou não no formato ISODateTime. |
customer_last_transaction_date | dateTime | Data da última operação concretizada (paga) na Nomad, independente de ter sido processada pela Marlim ou não no formato ISODateTime. |
customer_paid_proposals | int32 | Quantidade de propostas concretizadas (pagas) pelo cliente na Nomad, independente de ter sido processada pela Marlim ou não. |
product_type | string | Tipo de Produto Nomad para ser enviado ao Antifraude Marlim. Valores aceitos: PRE , POS e REMESSA |
O formato ISODateTime
que a Marlim espera é: YYYY-MM-DDTHH:mm:ssZ
, por exemplo: 2023-01-01T00:00:000Z
. Algo similar ao método toISOString() do Javascript (new Date().toISOString()
).
Response Object
Propriedade | Tipo | Descrição |
---|---|---|
status | string | Representa o estado atual da transação. Valores possíveis: paid , review , rejected e refused . |
nsu | string | Código que identifica a transação na adquirente. |
authorization_code | string | Código de autorização retornado pelo banco emissor. |
date_created | dateTime | Data de criação da transação no formato ISODateTime. |
date_updated | dateTime | Data de atualização do status da transação no formato ISODateTime. |
net_value | int32 | Valor em centavos a ser cobrado sem as taxas de adquirência. |
amount | int32 | Valor em centavos a ser cobrado na transação. |
paid_amount | int32 | Valor em centavos capturado na transação. |
refunded_amount | int32 | Valor em centavos estornado na transação. |
installments | string | Número de parcelas em que o cliente pagou. |
transaction_id | string | Número identificador da transação. |
card_holder_name | string | Nome do portador do cartão utilizado no pagamento. |
card_brand | string | Bandeira do cartão utilizado no pagamento. Valores possíveis: visa , mastercard , amex , hipercard e elo . |
card_first_digits | string | Primeiros 6 dígitos do cartão utilizado no pagamento. |
card_last_digits | string | Últimos 4 dígitos do cartão utilizado no pagamento. |
card_id | string | null | Ao realizar uma transação, retornamos sempre um card_id . Se a transação foi criada usando um card_hash , criamos automaticamente esse id com os dados do cartão criptografado no vault da Marlim. Esse card_id pode ser usado em compras futuras. |
acquirer_status_code | string | Código identificador da resposta do Banco Emissor. Valores possíveis: 0000 , 1000 , 1011 , 1016 e 5000 . |
acquirer_status_message | string | Mensagem referente ao código da resposta do Banco Emissor. |
Postback URL
Todo o processo de mudança de status de uma transação é assíncrono. Por isso, é importante que você passe um postback_url
durante o processo de criação de uma transação para que sua aplicação receba todas as mudanças de status. Esses status, possuem 2 contextos: old_status
(o status anterior) e current_status
(o status mais atual). Abaixo, a tabela com os valores possíveis de status.
Status | Significado |
---|---|
processing | A request entrou em uma fila de requisições e a transação está em processo de autorização. |
paid | Transação paga e capturada com sucesso. |
review | Transação está em processo de revisão manual pelos nossos especialistas. O valor foi autorizado e reservado no cartão, mas ainda não foi capturado. |
refused | Transação recusada pelo banco emissor. |
refunded | Transação estornada. |
chargeback | Transação sofreu chargeback. |
🕹 Exemplo do BODY de um POST da Marlim para a sua aplicação
curl -X POST "https://seusite.com/pedido/123456789/callback" \
-H "Content-Type: application/json" \
-H "User-Agent: Marlim/1.0.0" \
-H "Marlim-Api-Signature: Star98765Wars43210ANewHope1977" \
-d '{
"event": "transaction_status_changed",
"transaction_id": "98765432",
"old_status": "processing",
"desired_status": "paid",
"current_status": "paid",
"nsu": "98765432",
"authorization_code": "112233",
"date_created": "2024-11-29T13:12:33.639Z",
"date_updated": "2024-11-29T13:12:33.639Z",
"net_value": 100000,
"amount": 103950,
"paid_amount": 103950,
"installments": "1",
"card_holder_name": "Luke Skywalker",
"card_brand": "visa",
"card_first_digits": "444455",
"card_last_digits": "2222",
"acquirer_status_code": "0000"
}'
Você deve validar a origem do postback, isto é, se ele foi realmente enviado pelos servidores da Marlim.
Para isso, enviamos no HEADER do POST dois valores:
• User-Agent
: sempre com o valor Marlim/1.0.0
• Marlim-Api-Signature
: o final da sua api_key removendo os valores mak_test_
e mak_live_
Retentativas
Caso o seu sistema deixe de receber um postback por alguma instabilidade ou até mesmo por estar fora do ar, serão executados dos servidores da Marlim novas tentativas para completar a request até que os nossos servidores recebeba um STATUS 200 do seu sistema. Partindo do primeiro postback, os próximos são enviados com o seguinte padrão de intervalo de tempo:
Tempo | Tentativas |
---|---|
1 Minuto | 3 Tentativas |
5 Minutos | 3 Tentativas |
60 Minutos | 25 Tentativas |
Antifraude
O nosso antifraude é composto por uma série de regras, entre elas a confirmação de que o cartão utilizado realmente pertence ao cliente em questão. Por conta disso é de extrema importância que na UI do checkout tenha um aviso/disclaimer informando aos clientes para não utilizar cartões virtuais e/ou de terceiros, uma vez que esta validação irá falhar e a operação será recusada. Ou seja, deixe evidente para o seu cliente uma mensagem solicitando para ele utilizar os dados do cartão físico expedido pelo banco emissor e do próprio cliente que está efetuando a compra, evitando surpresas 😎
Simular Status de Transações
Para facilitar durante a fase de desenvolvimento você pode simular os status de uma transação para desenvolver esse fluxo na sua aplicação. Você pode simular os status paid
, review
ou rejected
.
🕹 Exemplos de como criar uma transação simulando o status
- Status Pago
- Status Revisão
- Status Rejeitado
curl -X POST "https://api.marlim.co/v2/transactions/nomad" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"net_value": 1000000,
"amount": 1039501,
"installments": "1",
"type": "currency_exchange",
"currency_amount": 200000,
"currency_abbreviation": "USD",
"item_id": "#234567890",
"item_url": "234567890",
"card_id": "card_jedi123master4amidala5son",
"customer[external_id]": "111222333",
"customer[name]": "Luke Skywalker",
"customer[email]": "luke@jedimaster.sw",
"customer[document_number]": "00099988877",
"customer[phone_number]": "+18007770133",
"customer[address][zipcode]": "95351",
"customer[address][country]": "us",
"customer[address][state]": "CA",
"customer[address][city]": "Modesto",
"customer[address][neighborhood]": "East Modesto",
"customer[address][street]": "Sunset Ave",
"customer[address][number]": "713",
"soft_descriptor": "Star Wars",
"simulate_status": "paid"
}'
{
"status": "paid",
"nsu": "98765432",
"authorization_code": "112233",
"date_created": "2024-11-29T13:12:33.639Z",
"date_updated": "2024-11-29T13:12:33.639Z",
"net_value": 1000000,
"amount": 1039501,
"paid_amount": 1039501,
"installments": "1",
"transaction_id": "98765432",
"card_holder_name": "Luke Skywalker",
"card_brand": "visa",
"card_first_digits": "555544",
"card_last_digits": "2222",
"card_id": "card_jedi123master4amidala5son",
"acquirer_status_code": "0000",
"acquirer_status_message": "The acquirer captured the amount on the card."
}
curl -X POST "https://api.marlim.co/v2/transactions/nomad" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"net_value": 1000000,
"amount": 1039501,
"installments": "1",
"type": "currency_exchange",
"currency_amount": 200000,
"currency_abbreviation": "USD",
"item_id": "#234567890",
"item_url": "234567890",
"card_id": "card_jedi123master4amidala5son",
"customer[external_id]": "111222333",
"customer[name]": "Luke Skywalker",
"customer[email]": "luke@jedimaster.sw",
"customer[document_number]": "00099988877",
"customer[phone_number]": "+18007770133",
"customer[address][zipcode]": "95351",
"customer[address][country]": "us",
"customer[address][state]": "CA",
"customer[address][city]": "Modesto",
"customer[address][neighborhood]": "East Modesto",
"customer[address][street]": "Sunset Ave",
"customer[address][number]": "713",
"soft_descriptor": "Star Wars",
"simulate_status": "review"
}'
{
"status": "review",
"nsu": "98765432",
"authorization_code": "112233",
"date_created": "2024-11-29T13:12:33.639Z",
"date_updated": "2024-11-29T13:12:33.639Z",
"net_value": 1000000,
"amount": 1039501,
"paid_amount": 0,
"installments": "1",
"transaction_id": "98765432",
"card_holder_name": "Luke Skywalker",
"card_brand": "visa",
"card_first_digits": "555544",
"card_last_digits": "2222",
"card_id": "card_jedi123master4amidala5son",
"acquirer_status_code": "0000",
"acquirer_status_message": "The bank has authorized this amount on the card."
}
curl -X POST "https://api.marlim.co/v2/transactions/nomad" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"net_value": 1000000,
"amount": 1039501,
"installments": "1",
"type": "currency_exchange",
"currency_amount": 200000,
"currency_abbreviation": "USD",
"item_id": "#234567890",
"item_url": "234567890",
"card_id": "card_jedi123master4amidala5son",
"customer[external_id]": "111222333",
"customer[name]": "Luke Skywalker",
"customer[email]": "luke@jedimaster.sw",
"customer[document_number]": "00099988877",
"customer[phone_number]": "+18007770133",
"customer[address][zipcode]": "95351",
"customer[address][country]": "us",
"customer[address][state]": "CA",
"customer[address][city]": "Modesto",
"customer[address][neighborhood]": "East Modesto",
"customer[address][street]": "Sunset Ave",
"customer[address][number]": "713",
"soft_descriptor": "Star Wars",
"simulate_status": "rejected"
}'
{
"status": "rejected",
"nsu": null,
"authorization_code": null,
"date_created": "2024-11-29T13:12:33.639Z",
"date_updated": "2024-11-29T13:12:33.639Z",
"net_value": 1000000,
"amount": 1039501,
"paid_amount": 0,
"installments": "1",
"transaction_id": null,
"card_holder_name": "Luke Skywalker",
"card_brand": "visa",
"card_first_digits": "555544",
"card_last_digits": "2222",
"card_id": "card_jedi123master4amidala5son",
"acquirer_status_code": null,
"acquirer_status_message": null
}
O parâmetro simulate_status
só é habilitado para api_key do ambiente sandbox. Se você passar esse parâmetro em ambiente de produção, será retornado um erro 403 (Forbidden).
Recusa Banco Emissor
Em caso de uma transação ser recusada pelo Banco Emissor é retornado o status refused
com a propriedade acquirer_status_code
contendo o código dessa recusa. Como cada bandeira de cartão bem como o banco emissor pode ter um código diferente, a Marlim agrupa o contexto dessa recusa de acordo com a tabela abaixo. No futuro podem ser incluídos novos códigos, uma vez que esse controle está com as bandeiras e os bancos.
Prefixo | Significado |
---|---|
0000 | Transação autorizada, capturada ou estornada. |
1000 | Transação não aprovada pelo banco. |
1011 | Dados incorretos do cartão. |
1016 | Cartão sem saldo. |
5000 | Erro bancário genérico. O cliente deve entrar em contato com o Banco Emissor. |
Simular Recusa Bancária
O fluxo de banco emissor não existe em ambiente sandbox, então para facilitar na etapa de desenvolvimento preparamos o parâmetro simulate_refused
, que pode ser passado com alguns valores como segue na tabela abaixo.
Valor | Significado |
---|---|
1000 | Transação não aprovada pelo banco (acquirer_status_code: 1000 ). |
1011 | Dados incorretos do cartão (acquirer_status_code: 1011 ). |
1016 | Saldo insuficiente (acquirer_status_code: 1016 ). |
5000 | Erro bancário genérico (acquirer_status_code: 5000 ). |
🕹 Exemplos de como simular a Recusa Bancária em Desenvolvimento
- 1000
- 1011
curl -X POST "https://api.marlim.co/v2/transactions/nomad" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"net_value": 1000000,
"amount": 1039501,
"installments": "1",
"type": "remittance",
"currency_amount": 150000,
"currency_abbreviation": "EUR",
"item_id": "#123456789",
"item_url": "123456789",
"card_id": "card_jedi123master4amidala5son",
"customer[external_id]": "111222333",
"customer[name]": "Luke Skywalker",
"customer[email]": "luke@jedimaster.sw",
"customer[document_number]": "00099988877",
"customer[phone_number]": "+18007770133",
"customer[address][zipcode]": "95351",
"customer[address][country]": "us",
"customer[address][state]": "CA",
"customer[address][city]": "Modesto",
"customer[address][neighborhood]": "East Modesto",
"customer[address][street]": "Sunset Ave",
"customer[address][number]": "713",
"soft_descriptor": "Star Wars",
"simulate_refused": "1000"
}'
{
"status": "refused",
"nsu": "98765434",
"authorization_code": null,
"date_created": "2024-11-29T13:12:33.640Z",
"date_updated": "2024-11-29T13:12:33.640Z",
"net_value": 1000000,
"amount": 1039501,
"paid_amount": 0,
"installments": "1",
"transaction_id": null,
"card_holder_name": "Luke Skywalker",
"card_brand": "visa",
"card_first_digits": "555544",
"card_last_digits": "2222",
"card_id": "card_jedi123master4amidala5son",
"acquirer_status_code": "1000",
"acquirer_status_message": "Transaction not approved by the bank. Please contact the bank and try again."
}
curl -X POST "https://api.marlim.co/v2/transactions/nomad" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"net_value": 1000000,
"amount": 1039501,
"installments": "1",
"type": "remittance",
"currency_amount": 150000,
"currency_abbreviation": "EUR",
"item_id": "#123456789",
"item_url": "123456789",
"card_id": "card_jedi123master4amidala5son",
"customer[external_id]": "111222333",
"customer[name]": "Luke Skywalker",
"customer[email]": "luke@jedimaster.sw",
"customer[document_number]": "00099988877",
"customer[phone_number]": "+18007770133",
"customer[address][zipcode]": "95351",
"customer[address][country]": "us",
"customer[address][state]": "CA",
"customer[address][city]": "Modesto",
"customer[address][neighborhood]": "East Modesto",
"customer[address][street]": "Sunset Ave",
"customer[address][number]": "713",
"soft_descriptor": "Star Wars",
"simulate_refused": "1011"
}'
{
"status": "refused",
"nsu": "98765434",
"authorization_code": null,
"date_created": "2024-11-29T13:12:33.640Z",
"date_updated": "2024-11-29T13:12:33.640Z",
"net_value": 1000000,
"amount": 1039501,
"paid_amount": 0,
"installments": "1",
"transaction_id": null,
"card_holder_name": "Luke Skywalker",
"card_brand": "visa",
"card_first_digits": "555544",
"card_last_digits": "2222",
"card_id": "card_jedi123master4amidala5son",
"acquirer_status_code": "1011",
"acquirer_status_message": "Some of the card numbers are incorrect. Check the numbers and try again."
}
Exemplos
Os valores utilizados nos exemplos abaixo são apenas para ilustração. Em ambiente de desenvolvimento ou testes, utilize dados mais próximos de uma transação real (dados de cartão e cliente). Se você utlizar valores fictícios o Antifraude pode não funcionar de forma esperada.
- Transação Paga (Card Hash)
- Transação Paga (Card ID)
- Transação Recusada
- Erro Endereço
curl -X POST "https://api.marlim.co/v2/transactions/nomad" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"net_value": 1000000,
"amount": 1039501,
"installments": "1",
"type": "remittance",
"currency_amount": 150000,
"currency_abbreviation": "EUR",
"item_id": "#123456789",
"item_url": "123456789",
"card_hash": "93237fb4c0948881dc99929899f6eda2_CdJrwrJ3iwVk8hTjM0jTVOz4vm7hJUckoPkLGvn+IBexY89sSdRFNozTCj1SopGs7iIhoRqH5FdXDwebIF605jOeURCJjZbv2EhQZPtJdM3689+hIyZWT/bXL2J8db2UHG+DYDqTnu1f8eY+AqsuOphCKw6q916L8M36RErtRFjxtYq9epsipjnG4nAKJRb8tx23xpEY0D1qHQiAMoAtI6FNcTj+tiYzZO757WMC4PbiyRdgSLjlNlSAeaLLKnPidQxLM+62MasL2rFpz8YZQ182vJXWvLE8fL6pXflwhoxqkyDZ9ySWInKEl+ydentxkCZkAj4htXRdF4bTX5KTXLzY11erHh4MaZZYYJk/jymid6dAqGJrTXsGrwVJB0JDVwThSxE6ashxAko9Ic1iLIDapXvUz6J8BZ2PSwAeu0Ed3RgbJ8vHby3R3alvVPNDGjvQqUqxAwhABKXdXRBY6Iw6oUETnMNHyeA9KBq0FcAVKomZS5fH7PIsse9lKqJP6YGUWBhc19H8iFowhbYdvpgDvW4uo4G/fJvLdXUnX1KIDR0wTxgEeI9dV66mwho7sa+EPxzTY/q5g2bGM3GpQDZTGaJyyTBu8IaawOZNEYLls+0T2B9pA0aBBrqV72IKbBC7/WdUcIUM+T9lqJdabCxM5b0g+pijFgkYfMWnmcM=",
"customer[external_id]": "111222333",
"customer[name]": "Luke Skywalker",
"customer[email]": "luke@jedimaster.sw",
"customer[document_number]": "00099988877",
"customer[phone_number]": "+18007770133",
"customer[address][zipcode]": "95351",
"customer[address][country]": "us",
"customer[address][state]": "CA",
"customer[address][city]": "Modesto",
"customer[address][neighborhood]": "East Modesto",
"customer[address][street]": "Sunset Ave",
"customer[address][number]": "713",
"soft_descriptor": "Star Wars"
}'
{
"status": "paid",
"nsu": "98765432",
"authorization_code": "112233",
"date_created": "2024-11-29T13:12:33.640Z",
"date_updated": "2024-11-29T13:12:33.640Z",
"net_value": 1000000,
"amount": 1039501,
"paid_amount": 1039501,
"installments": "1",
"transaction_id": "98765432",
"card_holder_name": "Luke Skywalker",
"card_brand": "visa",
"card_first_digits": "555544",
"card_last_digits": "2222",
"card_id": "card_jedi123master4amidala5son",
"acquirer_status_code": "0000",
"acquirer_status_message": "The acquirer captured the amount on the card."
}
curl -X POST "https://api.marlim.co/v2/transactions/nomad" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"net_value": 1000000,
"amount": 1039501,
"installments": "1",
"type": "currency_exchange",
"currency_amount": 200000,
"currency_abbreviation": "USD",
"item_id": "#234567890",
"item_url": "234567890",
"card_id": "card_jedi123master4amidala5son",
"customer[external_id]": "111222333",
"customer[name]": "Luke Skywalker",
"customer[email]": "luke@jedimaster.sw",
"customer[document_number]": "00099988877",
"customer[phone_number]": "+18007770133",
"customer[address][zipcode]": "95351",
"customer[address][country]": "us",
"customer[address][state]": "CA",
"customer[address][city]": "Modesto",
"customer[address][neighborhood]": "East Modesto",
"customer[address][street]": "Sunset Ave",
"customer[address][number]": "713",
"soft_descriptor": "Star Wars"
}'
{
"status": "paid",
"nsu": "98765433",
"authorization_code": "112233",
"date_created": "2024-11-29T13:12:33.640Z",
"date_updated": "2024-11-29T13:12:33.640Z",
"net_value": 1000000,
"amount": 1039501,
"paid_amount": 1039501,
"installments": "1",
"transaction_id": "98765433",
"card_holder_name": "Luke Skywalker",
"card_brand": "visa",
"card_first_digits": "555544",
"card_last_digits": "2222",
"card_id": "card_jedi123master4amidala5son",
"acquirer_status_code": "0000",
"acquirer_status_message": "The acquirer captured the amount on the card."
}
curl -X POST "https://api.marlim.co/v2/transactions/nomad" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"net_value": 1000000,
"amount": 1039501,
"installments": "1",
"type": "currency_exchange",
"currency_amount": 250000,
"currency_abbreviation": "CAD",
"item_id": "#345678901",
"item_url": "345678901",
"card_hash": "93237fb4c0948881dc99929899f6eda2_CdJrwrJ3iwVk8hTjM0jTVOz4vm7hJUckoPkLGvn+IBexY89sSdRFNozTCj1SopGs7iIhoRqH5FdXDwebIF605jOeURCJjZbv2EhQZPtJdM3689+hIyZWT/bXL2J8db2UHG+DYDqTnu1f8eY+AqsuOphCKw6q916L8M36RErtRFjxtYq9epsipjnG4nAKJRb8tx23xpEY0D1qHQiAMoAtI6FNcTj+tiYzZO757WMC4PbiyRdgSLjlNlSAeaLLKnPidQxLM+62MasL2rFpz8YZQ182vJXWvLE8fL6pXflwhoxqkyDZ9ySWInKEl+ydentxkCZkAj4htXRdF4bTX5KTXLzY11erHh4MaZZYYJk/jymid6dAqGJrTXsGrwVJB0JDVwThSxE6ashxAko9Ic1iLIDapXvUz6J8BZ2PSwAeu0Ed3RgbJ8vHby3R3alvVPNDGjvQqUqxAwhABKXdXRBY6Iw6oUETnMNHyeA9KBq0FcAVKomZS5fH7PIsse9lKqJP6YGUWBhc19H8iFowhbYdvpgDvW4uo4G/fJvLdXUnX1KIDR0wTxgEeI9dV66mwho7sa+EPxzTY/q5g2bGM3GpQDZTGaJyyTBu8IaawOZNEYLls+0T2B9pA0aBBrqV72IKbBC7/WdUcIUM+T9lqJdabCxM5b0g+pijFgkYfMWnmcM=",
"customer[external_id]": "111222333",
"customer[name]": "Luke Skywalker",
"customer[email]": "luke@jedimaster.sw",
"customer[document_number]": "00099988877",
"customer[phone_number]": "+18007770133",
"customer[address][zipcode]": "95351",
"customer[address][country]": "us",
"customer[address][state]": "CA",
"customer[address][city]": "Modesto",
"customer[address][neighborhood]": "East Modesto",
"customer[address][street]": "Sunset Ave",
"customer[address][number]": "713",
"soft_descriptor": "Star Wars"
}'
{
"status": "refused",
"nsu": "98765435",
"authorization_code": null,
"date_created": "2024-11-29T13:12:33.640Z",
"date_updated": "2024-11-29T13:12:33.640Z",
"net_value": 1000000,
"amount": 1039501,
"paid_amount": 0,
"installments": "1",
"transaction_id": "98765435",
"card_holder_name": "Luke Skywalker",
"card_brand": "visa",
"card_first_digits": "555544",
"card_last_digits": "2222",
"card_id": "card_jedi123master4amidala5son",
"acquirer_status_code": "1011",
"acquirer_status_message": "Some of the card numbers are incorrect. Check the numbers and try again."
}
curl -X POST "https://api.marlim.co/v2/transactions/nomad" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"net_value": 1000000,
"amount": 1039501,
"installments": "1",
"type": "currency_exchange",
"currency_amount": 250000,
"currency_abbreviation": "CAD",
"item_id": "#345678901",
"item_url": "345678901",
"card_hash": "93237fb4c0948881dc99929899f6eda2_CdJrwrJ3iwVk8hTjM0jTVOz4vm7hJUckoPkLGvn+IBexY89sSdRFNozTCj1SopGs7iIhoRqH5FdXDwebIF605jOeURCJjZbv2EhQZPtJdM3689+hIyZWT/bXL2J8db2UHG+DYDqTnu1f8eY+AqsuOphCKw6q916L8M36RErtRFjxtYq9epsipjnG4nAKJRb8tx23xpEY0D1qHQiAMoAtI6FNcTj+tiYzZO757WMC4PbiyRdgSLjlNlSAeaLLKnPidQxLM+62MasL2rFpz8YZQ182vJXWvLE8fL6pXflwhoxqkyDZ9ySWInKEl+ydentxkCZkAj4htXRdF4bTX5KTXLzY11erHh4MaZZYYJk/jymid6dAqGJrTXsGrwVJB0JDVwThSxE6ashxAko9Ic1iLIDapXvUz6J8BZ2PSwAeu0Ed3RgbJ8vHby3R3alvVPNDGjvQqUqxAwhABKXdXRBY6Iw6oUETnMNHyeA9KBq0FcAVKomZS5fH7PIsse9lKqJP6YGUWBhc19H8iFowhbYdvpgDvW4uo4G/fJvLdXUnX1KIDR0wTxgEeI9dV66mwho7sa+EPxzTY/q5g2bGM3GpQDZTGaJyyTBu8IaawOZNEYLls+0T2B9pA0aBBrqV72IKbBC7/WdUcIUM+T9lqJdabCxM5b0g+pijFgkYfMWnmcM=",
"customer[external_id]": "111222333",
"customer[name]": "Luke Skywalker",
"customer[email]": "luke@jedimaster.sw",
"customer[document_number]": "00099988877",
"customer[phone_number]": "+18007770133",
"customer[address][zipcode]": "95351",
"customer[address][country]": "us",
"customer[address][state]": "CAL",
"customer[address][city]": "Modesto",
"customer[address][neighborhood]": "East Modesto",
"customer[address][street]": "Sunset Ave",
"customer[address][number]": "713",
"soft_descriptor": "Star Wars"
}'
{
"errors": {
"type": "customer[address][state]",
"message": "Customer address state cannot be longer than 2 characters. "
}
}