> ## 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 NuPay

> API SDK Documentação - Charges

Crie cobranças com NuPay e comece a transacionar com Malga.

### 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',
      customerId: '2c48166b-51fe-4d8d-a450-1385df8a95b9',
      orderId: '3c066bcb-0fe6-4ec3-be2e-9158b12ea2e2',
      amount: 100,
      paymentMethod: {
        type: 'nupay',
        items: [
          {
            sku: '123',
            name: 'Produto 1',
            quantity: 1,
            unitPrice: 100,
            risk: 'Low',
          }
        ]
      },
    })
    ```
  </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: '3c066bcb-0fe6-4ec3-be2e-9158b12ea2e2',
    	providerReferenceKey: null,
    	createdAt: '2023-12-31T18:19:44.993Z',
    	amount: 100,
    	originalAmount: 100,
    	currency: 'BRL',
    	statementDescriptor: null,
    	capture: false,
    	isDispute: false,
    	status: 'pending',
    	paymentMethod: {
    		paymentType: 'nupay',
    	},
    	paymentSource: {
    		sourceType: 'customer',
    		customerId: '2c48166b-51fe-4d8d-a450-1385df8a95b9',
    	},
      fraudAnalysisMetadata: {
    		sla: null,
    		customer: {
    			name: null,
    			email: null,
    			identity: null,
    			identityType: null,
    			birthdate: null,
    			phone: null,
    			billingAddress: null,
    			deliveryAddress: null
    		},
    		cart: {
    			items: [
    				{
    					name: 'Produto 1',
    					quantity: 1,
    					sku: '123',
    					unitPrice: 1,
    					risk: 'Low',
    					locality: null,
    					date: null,
    					type: null,
    					genre: null,
    					tickets: null,
    					location: null
    				}
    			]
    		}
    	},
    	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: null,
    			authorizationNsu: null,
    			requestStatus: 'success',
    			requestType: 'pending',
    			responseTs: '11ms',
    			nupay: {
            paymentUrl: 'https://nubank.com.br'
          }
    		}
    	],
    	appInfo: null
    }
    ```
  </Tab>
</Tabs>

### Parâmetros

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

<ParamField path="merchantId" type="uuid" required>
  ID do Merchant que será usado na cobrança
</ParamField>

<ParamField path="amount" type="number" required>
  Valor da cobrança em centavos
</ParamField>

<ParamField path="paymentMethod" type="object" required>
  Dados do pagamento com NuPay

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

      <br />

      Com NuPay sempre será <code>nupay</code>
    </ParamField>

    <ParamField path="items" type="array" required>
      Dados dos produtos do pedido

      <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>
      </Expandable>
    </ParamField>

    <ParamField path="orderUrl" type="string">
      URL de origem da cobrança
    </ParamField>

    <ParamField path="returnUrl" type="string">
      URL para a qual o cliente será redirecionado após finalizar o pagamento
    </ParamField>

    <ParamField path="cancelUrl" type="string">
      URL para onde o cliente será direcionado caso escolha não finalizar o pagamento e cancele o pedido
    </ParamField>

    <ParamField path="taxValue" type="number">
      Total de taxas aplicadas em centavos
    </ParamField>

    <ParamField path="delayToAutoCancel" type="number">
      Tempo em minutos para a expiração de uma cobrança criada que não tenha sido paga
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="orderId" type="string" required>
  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="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="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="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>
