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

# Create Payout with Global Markup

> Create a payout payment using global markup configuration.

# Create Payout with Global Markup

When creating a payout payment, you can use the **global markup** configuration that has been set up for your merchant. With global markup, you **do not need to send** the `markup` object in the request payload.

<Note>
  **Global markup is applied automatically**: If the merchant has the markup feature enabled (`enable_markup = true`), the system will automatically search for and apply the global markup configuration for the submerchant.
</Note>

## How It Works

1. **Validation**: The system checks if the `enable_markup` flag is active for the submerchant.

2. **Markup Search**: If enabled, the system automatically searches for the global markup configuration based on:
   * `account_id` (submerchant ID)
   * `product` (payout)
   * `payment_method` (PIX, TED, etc.)

3. **Application**: If a global markup is found, it is automatically applied to the payment.

4. **Priority**: If you send an inline `markup` object, it takes precedence over the global markup.

## Request Examples

<CodeGroup>
  ```json PIX with Global Markup theme={null}
  {
    "payment_method": "PIX",
    "invoice": "e3317882-f821-455b-b082-dc3ba36e8a57",
    "currency": "BRL",
    "amount": 100.50,
    "country": "BR",
    "beneficiary": {
      "name": "John Doe",
      "document": {
        "type": "CPF",
        "number": "12345678901"
      },
      "pix": {
        "key": "12345678901"
      }
    }
  }
  ```

  ```bash cURL - PIX with Global Markup theme={null}
  curl -X POST "https://api.sandbox.wepayout.com.br/v2/payout/payments" \
    -H "Authorization: Bearer YOUR_TOKEN_HERE" \
    -H "Content-Type: application/json" \
    -d '{
      "payment_method": "PIX",
      "invoice": "e3317882-f821-455b-b082-dc3ba36e8a57",
      "currency": "BRL",
      "amount": 100.50,
      "country": "BR",
      "beneficiary": {
        "name": "John Doe",
        "document": {
          "type": "CPF",
          "number": "12345678901"
        },
        "pix": {
          "key": "12345678901"
        }
      }
    }'
  ```
</CodeGroup>

## Response

<ResponseField name="id" type="integer">
  WEpayment's auto generated id, use this id to perform conciliation or perform queries via API / Dashboard.
</ResponseField>

<ResponseField name="merchant" type="object">
  Merchant object.

  <Expandable title="Merchant">
    <ResponseField name="id" type="integer">
      Id of the WE account that created the payout.
    </ResponseField>

    <ResponseField name="name" type="string">
      Name of the WE account that created the payout.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="payment_method" type="string">
  Payment method used for the payout.

  Values: `PIX`
</ResponseField>

<ResponseField name="amount" type="string">
  The payout amount formatted with currency symbol.
</ResponseField>

<ResponseField name="currency" type="string">
  Currency code (ISO 4217).
</ResponseField>

<ResponseField name="invoice" type="string">
  Invoice identifier.
</ResponseField>

<ResponseField name="status" type="object">
  Payout status.

  <Expandable title="Status">
    <ResponseField name="id" type="integer">
      Status ID.
    </ResponseField>

    <ResponseField name="name" type="string">
      Status name (e.g., "Awaiting").
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="beneficiary" type="object">
  Beneficiary information.

  <Expandable title="Beneficiary">
    <ResponseField name="name" type="string">
      Beneficiary name.
    </ResponseField>

    <ResponseField name="document" type="object">
      Document information.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="markup" type="object or null">
  Global markup configuration applied to this payment.

  <Expandable title="Markup Object">
    <ResponseField name="mode" type="string">
      Markup mode applied.

      Values: `fixed`, `percent`
    </ResponseField>

    <ResponseField name="amount" type="number">
      Markup value configured for this payment.
    </ResponseField>

    <ResponseField name="min_charge_value" type="number or null">
      Minimum markup value when `mode` is `percent`. Will be `null` when `mode` is `fixed`.
    </ResponseField>

    <ResponseField name="max_charge_value" type="number or null">
      Maximum markup value when `mode` is `percent`. Will be `null` when `mode` is `fixed` or when not specified.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 201 Created - PIX Payment with Global Markup theme={null}
  {
    "id": 12345,
    "merchant": {
      "id": 477,
      "name": "Merchant Name"
    },
    "payment_method": "PIX",
    "amount": "R$ 100,50",
    "currency": "BRL",
    "invoice": "e3317882-f821-455b-b082-dc3ba36e8a57",
    "status": {
      "id": 1,
      "name": "Awaiting"
    },
    "beneficiary": {
      "name": "John Doe",
      "document": {
        "type": "CPF",
        "number": "12345678901"
      }
    },
    "markup": null
  }
  ```

  <Note>
    **Markup returns null**: It is normal for the `markup` field to return `null` when using global markup.
  </Note>

  ```json 422 Unprocessable Entity - Markup Required theme={null}
  {
    "message": "The given data was invalid",
    "errors": {
      "markup": [
        "Inline markup is required when no global markup is configured"
      ]
    }
  }
  ```

  ```json 500 Internal Server Error theme={null}
  {
    "error": "Internal server error"
  }
  ```
</ResponseExample>

## Business Rules

<Warning>
  **Markup Required**: If `enable_markup = true` for the submerchant and there is no global markup configuration, you must send an inline `markup` object. Otherwise, the request will fail with a 422 error.
</Warning>

<Info>
  **Automatic Application**: When `enable_markup = true` and a global markup exists, it is automatically applied without requiring the `markup` object in the request.
</Info>

## Error Scenarios

### Scenario 1: enable\_markup = true, No Global Markup, No Inline Markup

If the submerchant has `enable_markup = true` but:

* No global markup configuration exists
* No inline markup object is sent in the request

**Result**: Returns 422 error with message "O campo markup é obrigatório."

### Scenario 2: Error Verifying Global Markup

If there is an error while searching for or verifying the global markup configuration.

**Result**: Returns 422 error with message "Error verifying markup configuration. Please try again or contact support."

## Related Resources

<CardGroup cols={2}>
  <Card title="Create Payout with Inline Markup" icon="code" href="/api-reference/markup/payout/create-payout-with-inline-markup">
    Learn how to create payout with inline markup
  </Card>

  <Card title="Create Merchant Markup" icon="plus" href="/api-reference/markup/account/create-merchant-markup">
    Configure global markup for merchants
  </Card>

  <Card title="About Markup" icon="circle-info" href="/markup/about-markup">
    Understand markup types and configuration levels
  </Card>

  <Card title="Create Payment" icon="file" href="/api-reference/cash-out/payout/create-payment">
    Complete documentation for creating payout payments
  </Card>
</CardGroup>
