> ## Documentation Index
> Fetch the complete documentation index at: https://docs.malga.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Criar cobrança com cartão de crédito

> API SDK Documentação - Charges

Crie cobranças com cartão de crédito e comece a transacionar com Malga.

<Warning>
  Lembre-se que para gerenciar e armazenar cartões diretamente no seu servidor é necessário o certificado PCI-DSS.

  Caso sua empresa não tenha o certificado, utilize a tokenização de cartão para a criação de cobranças com cartão de crédito.
</Warning>

### Método

<Tabs>
  <Tab title="Node.js">
    ```typescript theme={null}
    import { Malga } from 'malga'

    const malga = new Malga({
      apiKey: '17a64c8f-a387-4682-bdd8-d280493715e0',
      clientId: 'd1d2b51a-0446-432a-b055-034518c2660e',
    })

    await malga.charges.create({
      merchantId: '8cfef0d1-73af-4bdb-b6c4-09ad3fbfc7f1',
      amount: 100,
      paymentMethod: {
        type: 'credit',
        installments: 1,
        card: {
          holderName: 'João da Silva',
          number: '5453881028277600',
          cvv: '170',
          expirationDate: '10/2030',
        },
      },
    })
    ```
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Response">
    ```typescript theme={null}
    {
    	id: 'e09ef791-1aaa-4b11-8173-698f2689a04d',
    	clientId: 'd1d2b51a-0446-432a-b055-034518c2660e',
    	merchantId: '8cfef0d1-73af-4bdb-b6c4-09ad3fbfc7f1',
    	description: null,
    	orderId: null,
    	providerReferenceKey: null,
    	createdAt: '2023-12-31T18:19:44.993Z',
    	amount: 100,
    	originalAmount: 100,
    	currency: 'BRL',
    	statementDescriptor: null,
    	capture: false,
    	isDispute: false,
    	status: 'pre_authorized',
    	paymentMethod: {
    		installments: 1,
    		paymentType: 'credit',
    	},
    	paymentSource: {
    		sourceType: 'card',
    		cardId: '3db399d3-44c1-49fe-ab26-6fb00c161337',
    	},
    	transactionRequests: [
    		{
    			id: 'a6cc6bda-3f6d-4277-8ea2-e4bbd9166f16',
    			createdAt: '2023-12-31T18:19:45.013Z',
    			updatedAt: '2023-12-31T18:19:45.044Z',
    			idempotencyKey: '3b42ede3-15a8-4d81-b6e9-54c5762776c6',
    			providerId: '694f7eee-2966-4825-a847-65d070cbdece',
    			providerType: 'SANDBOX',
    			transactionId: '18242a4d-dd35-475f-b79b-5cbe8f9d1fea',
    			amount: 100,
    			authorizationCode: '123123',
    			authorizationNsu: '123123',
    			requestStatus: 'success',
    			requestType: 'pre_authorization',
    			responseTs: '11ms',
    			providerAuthorization: {
    				networkAuthorizationCode: '123123',
    				networkResponseCode: '123123',
    			}
    		}
    	],
    	appInfo: null
    }
    ```
  </Tab>
</Tabs>

### Parâmetros

Lista de todos os parâmetros suportados pelo método.

<ParamField path="paymentMethod" type="object" required>
  Dados do pagamento com cartão

  <Expandable title="Parâmetros do paymentMethod">
    <ParamField path="type" type="string" required>
      Método de pagamento que será utilizado na cobrança

      <br />

      Com cartão de crédito sempre será <code>credit</code>
    </ParamField>

    <ParamField path="card" type="object" required>
      Dados do cartão de crédito

      <Expandable title="Parâmetros do card">
        <ParamField path="holderName" type="string" required>
          Nome do portador do cartão
        </ParamField>

        <ParamField path="number" type="string" required>
          Número do cartão
        </ParamField>

        <ParamField path="cvv" type="string" required>
          Código de segurança do cartão
        </ParamField>

        <ParamField path="expirationDate" type="string" required>
          Data de validade do cartão
        </ParamField>

        <ParamField path="zeroDollar" type="object">
          Dados da validação de cartão com Zero Dollar

          <Expandable title="Parâmetros do zeroDollar">
            <ParamField path="merchantId" type="uuid">
              ID do Merchant com pelo menos um provedor com suporte ao Zero Dollar
            </ParamField>

            <ParamField path="cvvCheck" type="boolean">
              Valide o CVV do cartão no momento da criação
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="installments" type="number" required>
      Número de parcelas
    </ParamField>

    <ParamField path="linkCardToCustomer" type="boolean">
      Vincula o cartão automaticamente com o customer
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="capture" type="boolean">
  Define se a cobrança deve ser capturada automaticamente
</ParamField>

<ParamField path="orderId" type="string">
  Identificador único da cobrança do lado do cliente para conciliação futura
</ParamField>

<ParamField path="providerReferenceKey" type="string">
  Identificador único da cobrança do lado do cliente utilizado para referenciar a cobrança do lado do provedor
</ParamField>

<ParamField path="description" type="string">
  Descrição da cobrança
</ParamField>

<ParamField path="statementDescriptor" type="string">
  Descrição da cobrança que irá aparecer na fatura do cartão
</ParamField>

<ParamField path="currency" type="string">
  Moeda que será usada para a cobrança
</ParamField>

<ParamField path="customerId" type="uuid">
  ID do Customer que será usado na cobrança
</ParamField>

<ParamField path="customer" type="object">
  Dados do cliente para criação e vinculação automática à cobrança

  <Expandable title="Parâmetros do customer">
    <ParamField path="name" type="string" required>
      Nome do cliente
    </ParamField>

    <ParamField path="email" type="string" required>
      E-mail do cliente
    </ParamField>

    <ParamField path="phoneNumber" type="string" required>
      Telefone do cliente
    </ParamField>

    <ParamField path="document" type="object">
      Dados do documento do cliente

      <Expandable title="Parâmetros do document">
        <ParamField path="type" type="string" required>
          Tipo do documento
        </ParamField>

        <ParamField path="number" type="string" required>
          Número do documento
        </ParamField>

        <ParamField path="country" type="string">
          País do documento
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="address" type="object">
      Dados do endereço do cliente

      <Expandable title="Parâmetros do address">
        <ParamField path="city" type="string" required>
          Cidade
        </ParamField>

        <ParamField path="country" type="string" required>
          País
        </ParamField>

        <ParamField path="district" type="string" required>
          Bairro
        </ParamField>

        <ParamField path="state" type="string" required>
          Estado
        </ParamField>

        <ParamField path="street" type="string" required>
          Nome da rua, avenida ou travessa
        </ParamField>

        <ParamField path="streetNumber" type="string" required>
          Número da rua
        </ParamField>

        <ParamField path="zipCode" type="string" required>
          Código postal
        </ParamField>

        <ParamField path="complement" type="string">
          Complemento onde se localiza o endereço, caso exista
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="fraudAnalysis" type="object">
  Dados para utilização das funcionalidades de antifraude

  <Expandable title="Parâmetros do fraudAnalysis">
    <ParamField path="sla" type="number">
      Valor em minutos de SLA máximo de análise do pedido
    </ParamField>

    <ParamField path="customer" type="object">
      Dados do cliente

      <Expandable title="Parâmetros do customer">
        <ParamField path="name" type="string">
          Nome do cliente
        </ParamField>

        <ParamField path="email" type="string">
          E-mail do cliente
        </ParamField>

        <ParamField path="phone" type="string">
          Telefone do cliente
        </ParamField>

        <ParamField path="identity" type="string">
          Número do documento do cliente
        </ParamField>

        <ParamField path="identityType" type="string">
          Tipo do documento cliente
        </ParamField>

        <ParamField path="registrationDate" type="string">
          Data de registro do cliente
        </ParamField>

        <ParamField path="deliveryAddress" type="object">
          Dados do endereço de entrega do cliente

          <Expandable title="Parâmetros do deliveryAddress">
            <ParamField path="city" type="string" required>
              Cidade
            </ParamField>

            <ParamField path="country" type="string" required>
              País
            </ParamField>

            <ParamField path="district" type="string" required>
              Bairro
            </ParamField>

            <ParamField path="state" type="string" required>
              Estado
            </ParamField>

            <ParamField path="street" type="string" required>
              Nome da rua, avenida ou travessa
            </ParamField>

            <ParamField path="number" type="string" required>
              Número da rua
            </ParamField>

            <ParamField path="zipCode" type="string" required>
              Código postal
            </ParamField>

            <ParamField path="complement" type="string">
              Complemento onde se localiza o endereço, caso exista
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="billingAddress" type="object">
          Dados do endereço de cobrança do cliente

          <Expandable title="Parâmetros do billingAddress">
            <ParamField path="city" type="string" required>
              Cidade
            </ParamField>

            <ParamField path="country" type="string" required>
              País
            </ParamField>

            <ParamField path="district" type="string" required>
              Bairro
            </ParamField>

            <ParamField path="state" type="string" required>
              Estado
            </ParamField>

            <ParamField path="street" type="string" required>
              Nome da rua, avenida ou travessa
            </ParamField>

            <ParamField path="number" type="string" required>
              Número da rua
            </ParamField>

            <ParamField path="zipCode" type="string" required>
              Código postal
            </ParamField>

            <ParamField path="complement" type="string">
              Complemento onde se localiza o endereço, caso exista
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="browser" type="object">
          Dados do navegador do cliente

          <Expandable title="Parâmetros do browser">
            <ParamField path="browserFingerprint" type="string" required>
              Fingerprint gerado dos dados do navegador
            </ParamField>

            <ParamField path="cookiesAccepted" type="boolean" required>
              Indica se os cookies foram aceitados
            </ParamField>

            <ParamField path="email" type="string" required>
              E-mail logado no navegador
            </ParamField>

            <ParamField path="hostName" type="string" required>
              Nome do host do usuário
            </ParamField>

            <ParamField path="ipAddress" type="string" required>
              Endereço de IP do usuário
            </ParamField>

            <ParamField path="type" type="string" required>
              User-Agent do navegador
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="cart" type="object">
      Dados dos itens do carrinho

      <Expandable title="Parâmetros do cart">
        <ParamField path="items" type="array" required>
          <Expandable title="Parâmetros do items">
            <ParamField path="name" type="string" required>
              Nome do produto
            </ParamField>

            <ParamField path="quantity" type="number" required>
              Quantidade do produto
            </ParamField>

            <ParamField path="sku" type="string" required>
              Identificador único do item na loja
            </ParamField>

            <ParamField path="unitPrice" type="number" required>
              Preço de cada produto
            </ParamField>

            <ParamField path="risk" type="string" required>
              Definição do índice de risco do produto

              <br />

              <br />

              Os tipos suportados são: <code>Low</code> ou <code>High</code>
            </ParamField>

            <ParamField path="description" type="string">
              Descrição do produto
            </ParamField>

            <ParamField path="categoryId" type="string">
              Categoria do produto
            </ParamField>

            <ParamField path="locality" type="string">
              Localidade onde ocorrerá o evento
            </ParamField>

            <ParamField path="date" type="string">
              Data do evento
            </ParamField>

            <ParamField path="type" type="number">
              Tipo do evento
            </ParamField>

            <ParamField path="genre" type="string">
              Definição do gênero do evento
            </ParamField>

            <ParamField path="tickets" type="object">
              Dados do ingresso

              <Expandable title="Parâmetros do tickets">
                <ParamField path="quantityTicketSale" type="number">
                  Quantidade total de ingressos à venda
                </ParamField>

                <ParamField path="quantityEventHouse" type="number">
                  Quantidade de vezes que o evento será realizado na casa
                </ParamField>

                <ParamField path="convenienceFeeValue" type="number">
                  Taxa de conveniência
                </ParamField>

                <ParamField path="quantityFull" type="number">
                  Quantidade de ingressos com valor integral
                </ParamField>

                <ParamField path="quantityHalf" type="number">
                  Quantidade de ingresso com desconto (meia entrada)
                </ParamField>

                <ParamField path="batch" type="number">
                  Lote do ingresso
                </ParamField>
              </Expandable>
            </ParamField>

            <ParamField path="location" type="object">
              Dados do endereço do evento

              <Expandable title="Parâmetros do location">
                <ParamField path="city" type="string">
                  Cidade
                </ParamField>

                <ParamField path="country" type="string">
                  País
                </ParamField>

                <ParamField path="district" type="string">
                  Bairro
                </ParamField>

                <ParamField path="state" type="string">
                  Estado
                </ParamField>

                <ParamField path="street" type="string">
                  Nome da rua, avenida ou travessa
                </ParamField>

                <ParamField path="number" type="string">
                  Número da rua
                </ParamField>

                <ParamField path="zipCode" type="string">
                  Código postal
                </ParamField>

                <ParamField path="complement" type="string">
                  Complemento onde se localiza o endereço, caso exista
                </ParamField>
              </Expandable>
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="device" type="object">
      Dados do aparelho do cliente

      <Expandable title="Parâmetros do device">
        <ParamField path="model" type="string">
          Nome do modelo do aparelho
        </ParamField>

        <ParamField path="ramCapacity" type="string">
          Capacidade da memória RAM do aparelho
        </ParamField>

        <ParamField path="diskCapacity" type="string">
          Capacidade de armazenamento do aparelho
        </ParamField>

        <ParamField path="freeDiskSpace" type="number">
          Quantidade de armazenamento livre do aparelho
        </ParamField>

        <ParamField path="resolution" type="number">
          Resolução do aparelho
        </ParamField>

        <ParamField path="os" type="object">
          Dados do sistema operacional do aparelho

          <Expandable title="Parâmetros do os">
            <ParamField path="type" type="string">
              Tipo do sistema operacional
            </ParamField>

            <ParamField path="version" type="string">
              Versão do sistema operacional
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="vendorAttributes" type="object">
          Dados dos atributos do aparelho

          <Expandable title="Parâmetros do vendorAttributes">
            <ParamField path="flash" type="boolean">
              Aparelho possui flash na câmera
            </ParamField>

            <ParamField path="phoneCalls" type="boolean">
              Aparelho pode realizar chamadas
            </ParamField>

            <ParamField path="sendSms" type="boolean">
              Aparelho pode enviar SMS
            </ParamField>

            <ParamField path="videoCamera" type="boolean">
              Aparelho possui câmera de vídeo
            </ParamField>

            <ParamField path="cpuCount" type="number">
              Quantidade de CPUs do aparelho
            </ParamField>

            <ParamField path="simulator" type="boolean">
              Aparelho possui simulador
            </ParamField>

            <ParamField path="language" type="string">
              Linguagem do aparelho
            </ParamField>

            <ParamField path="idiom" type="string">
              Idioma do aparelho
            </ParamField>

            <ParamField path="platform" type="string">
              Plataforma do sistema operacional
            </ParamField>

            <ParamField path="name" type="string">
              Nome do aparelho
            </ParamField>

            <ParamField path="family" type="string">
              Família do aparelho
            </ParamField>

            <ParamField path="retinaDisplay" type="boolean">
              Aparelho possui display de retina
            </ParamField>

            <ParamField path="camera" type="boolean">
              Aparelho possui câmera
            </ParamField>

            <ParamField path="model" type="string">
              Modelo do aparelho
            </ParamField>

            <ParamField path="frontCamera" type="boolean">
              Aparelho possui câmera frontal
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="vendors" type="array">
          Dados adicionais do aparelho

          <Expandable title="Parâmetros do vendors">
            <ParamField path="name" type="string">
              Nome do atributo do fornecedor
            </ParamField>

            <ParamField path="value" type="string">
              Valor do atributo do fornecedor
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="splitRules" type="array">
  Dados para utilização da funcionalidade de Split

  <Expandable title="Parâmetros do splitRules">
    <ParamField path="sellerId" type="uuid" required>
      ID do Recebedor
    </ParamField>

    <ParamField path="processingFee" type="boolean" required>
      Indica se o recebedor vinculado à regra será cobrado pelas taxas da transação
    </ParamField>

    <ParamField path="liable" type="boolean" required>
      Indica se o recebedor atrelado assumirá os riscos de chargeback da transação
    </ParamField>

    <ParamField path="percentage" type="number">
      Porcentagem do valor da transação que será enviada ao recebedor
    </ParamField>

    <ParamField path="amount" type="number">
      Valor que será enviado ao recebedor
    </ParamField>

    <ParamField path="fares" type="object">
      Informações sobre as taxas que serão cobradas do recebedor, apenas para sellers com provedor Braspag

      <Expandable title="Parâmetros do fares">
        <ParamField path="mdr" type="number" required>
          Indica o percentual a ser descontado do valor de uma transação, definido por produto (crédito/débito/boleto), bandeira e faixa de parcelamento
        </ParamField>

        <ParamField path="fee" type="number" required>
          Indica valor em centavos a ser cobrado por transação capturada. É descontado no momento da “montagem” da agenda financeira
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="threeDSecure" type="object">
  Dados para utilização da funcionalidade de 3DS

  <Expandable title="Parâmetros do threeDSecure">
    <ParamField path="redirectURL" type="string" required>
      URL para redirecionamento da autenticação
    </ParamField>

    <ParamField path="requestorURL" type="string" required>
      URL de origem da requisição
    </ParamField>

    <ParamField path="browser" type="object" required>
      Dados do navegador do cliente

      <Expandable title="Parâmetros do browser">
        <ParamField path="acceptHeader" type="string" required>
          O Accept do cabeçalho de requisição HTTP
        </ParamField>

        <ParamField path="colorDepth" type="number" required>
          A profundidade de cores da tela
        </ParamField>

        <ParamField path="javaEnabled" type="boolean" required>
          Indica se o Java está habilitado
        </ParamField>

        <ParamField path="javaScriptEnabled" type="boolean" required>
          Indica se o JavaScript está habilitado
        </ParamField>

        <ParamField path="language" type="string" required>
          A linguagem utilizada pelo sistema do usuário
        </ParamField>

        <ParamField path="screenHeight" type="number" required>
          Altura da tela
        </ParamField>

        <ParamField path="screenWidth" type="number" required>
          Largura da tela
        </ParamField>

        <ParamField path="timeZoneOffset" type="string" required>
          Diferença em minutos do deslocamento de fuso horário entre o UTC e a localidade atual
        </ParamField>

        <ParamField path="userAgent" type="string" required>
          O User-Agent do cabeçalho de requisição HTTP
        </ParamField>

        <ParamField path="ip" type="string" required>
          Endereço de IP do usuário
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="billingAddress" type="object">
      Dados do endereço de cobrança

      <Expandable title="Parâmetros do billingAddress">
        <ParamField path="city" type="string" required>
          Cidade
        </ParamField>

        <ParamField path="country" type="string" required>
          País
        </ParamField>

        <ParamField path="state" type="string" required>
          Estado
        </ParamField>

        <ParamField path="street" type="string" required>
          Nome da rua, avenida ou travessa
        </ParamField>

        <ParamField path="streetNumber" type="string" required>
          Número da rua
        </ParamField>

        <ParamField path="zipCode" type="string" required>
          Código postal
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="shippingAddress" type="object">
      Dados do endereço de envio

      <Expandable title="Parâmetros do shippingAddress">
        <ParamField path="city" type="string" required>
          Cidade
        </ParamField>

        <ParamField path="country" type="string" required>
          País
        </ParamField>

        <ParamField path="state" type="string" required>
          Estado
        </ParamField>

        <ParamField path="street" type="string" required>
          Nome da rua, avenida ou travessa
        </ParamField>

        <ParamField path="streetNumber" type="string" required>
          Número da rua
        </ParamField>

        <ParamField path="zipCode" type="string" required>
          Código postal
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="cardHolder" type="object">
      Dados do titular do cartão

      <Expandable title="Parâmetros do cardHolder">
        <ParamField path="email" type="string" required>
          E-mail do titular do cartão
        </ParamField>

        <ParamField path="mobilePhone" type="string">
          Telefone do titular do cartão
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="paymentFlow" type="object">
  Dados adicionais para uso em condicionais dos Fluxos Inteligentes

  <Expandable title="Parâmetros do paymentFlow">
    <ParamField path="metadata" type="object">
      Dados adicionais da cobrança enviados na criação da mesma
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="appInfo" type="object">
  Dados para a rastreabilidade da cobrança

  <Expandable title="Parâmetros do appInfo">
    <ParamField path="device" type="object">
      Dados sobre o dispositivo

      <Expandable title="Parâmetros do device">
        <ParamField path="name" type="string" required>
          Nome do sistema operacional
        </ParamField>

        <ParamField path="version" type="string" required>
          Versão do sistema operacional
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="system" type="object">
      Dados sobre o sistema proprietário de captura do merchant

      <Expandable title="Parâmetros do system">
        <ParamField path="name" type="string" required>
          Nome da empresa e/ou plataforma
        </ParamField>

        <ParamField path="version" type="string" required>
          Versão do software da plataforma
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>
