# Mutations / Registers

# Registers

**Mutation**
## addRegisterClosureNote — Returns [RegisterClosure](/documentation/Objects/Closures#RegisterClosure)

**Scopes required:** view_register_closures

| Arguments | Type | Description |
| --- | --- | --- |
| id | [ID!](/documentation/Types/UUID#UUID) | The id of the register closure to add the note to |
| note | *String!* | The note for the register closure |
| createdAt | [DateTime](/documentation/Types/Date-Time#DateTime) | The time the register was closed |

**Example Mutation**

```graphql
mutation AddRegisterClosureNote($id: ID!, $note: String!) {
    addRegisterClosureNote(id: $id, note: $note) {
        id,
        movement,
        totalExpected,
        totalReceived,
        totalTransactions
    }
}

# Example variables
{
    "id": "<ID>",
    "note": "<NOTE>"
}
```

**Mutation**
## closeRegister — Returns [RegisterClosure](/documentation/Objects/Closures#RegisterClosure)

**Scopes required:** see_manage_takings

| Arguments | Type | Description |
| --- | --- | --- |
| user | [ID!](/documentation/Types/UUID#UUID) | The user who performed the register closure |
| register | [ID!](/documentation/Types/UUID#UUID) | The register that was closed |
| paymentMethods | [[CloseRegisterPaymentsInput!]!](/documentation/Inputs/Register-Closures#CloseRegisterPaymentsInput) | The payment method totals |
| note | *String* | The note on the register closure |
| openTime | [DateTime](/documentation/Types/Date-Time#DateTime) | The time the register was opened, defaults to the current open time of the register |
| closeTime | [DateTime](/documentation/Types/Date-Time#DateTime) | The time the register was closed |

**Example Mutation**

```graphql
mutation CloseRegister($user: ID!, $register: ID!, $paymentMethods: [CloseRegisterPaymentsInput!]!) {
    closeRegister(user: $user, register: $register, paymentMethods: $paymentMethods) {
        id,
        movement,
        totalExpected,
        totalReceived,
        totalTransactions
    }
}

# Example variables
{
    "user": "<USER>",
    "register": "<REGISTER>",
    "paymentMethods": [
        {
            "id": "<ID>",
            "expected": "<EXPECTED>",
            "received": "<RECEIVED>"
        }
    ]
}
```

**Mutation**
## overrideRegisterInvoiceNumber — Returns [Register](/documentation/Objects/Register#Register)

**Scopes required:** modify_registers_outlets

| Arguments | Type | Description |
| --- | --- | --- |
| id | [ID!](/documentation/Types/UUID#UUID) | The ID of the register to update |
| invoiceNumber | *Int!* | The new invoice number for the register |

**Example Mutation**

```graphql
mutation OverrideRegisterInvoiceNumber($id: ID!, $invoiceNumber: Int!) {
    overrideRegisterInvoiceNumber(id: $id, invoiceNumber: $invoiceNumber) {
        id,
        name,
        invoiceNumber,
        openTime,
        closed
    }
}

# Example variables
{
    "id": "<ID>",
    "invoiceNumber": "<INVOICE_NUMBER>"
}
```

**Mutation**
## updateRegister — Returns [Register](/documentation/Objects/Register#Register)

**Scopes required:** modify_registers_outlets

| Arguments | Type | Description |
| --- | --- | --- |
| id | [ID!](/documentation/Types/UUID#UUID) | The ID of the register to update |
| name | *String* | The new name of the register |
| paymentMethods | [[ID!]](/documentation/Types/UUID#UUID) | A list of payment methods to display on the sell screen when using this register |
| float | [CashFloatInput!](/documentation/Inputs/Registers#CashFloatInput) | The float for each day to assist with counting the cash on the close register screen |
| registerClosurePrintSettings | [ClosurePrintSettingsInput](/documentation/Inputs/Registers#ClosurePrintSettingsInput) | The settings for what is printed in the register closure for this register |
| closeRegisterTags | [[ID!]](/documentation/Types/UUID#UUID) | The tags to show revenue for on the close register screen |

**Example Mutation**

```graphql
mutation UpdateRegister($id: ID!, $float: CashFloatInput!) {
    updateRegister(id: $id, float: $float) {
        id,
        name,
        invoiceNumber,
        openTime,
        closed
    }
}

# Example variables
{
    "id": "<ID>",
    "float": {
        "monday": "<MONDAY>",
        "tuesday": "<TUESDAY>",
        "wednesday": "<WEDNESDAY>",
        "thursday": "<THURSDAY>",
        "friday": "<FRIDAY>",
        "saturday": "<SATURDAY>",
        "sunday": "<SUNDAY>"
    }
}
```

**Mutation**
## updateRegisterSurcharging — Returns [Register](/documentation/Objects/Register#Register)

**Scopes required:** modify_surcharges

| Arguments | Type | Description |
| --- | --- | --- |
| register | [ID!](/documentation/Types/UUID#UUID) | The register to update the surcharging for |
| enabled | *Boolean* | Whether the surcharging schedule is enabled or disabled |
| schedule | [[RegisterSurchargeScheduleInput]](/documentation/Inputs/Registers#RegisterSurchargeScheduleInput) | The schedule to run the surcharging on |

**Example Mutation**

```graphql
mutation UpdateRegisterSurcharging($register: ID!) {
    updateRegisterSurcharging(register: $register) {
        id,
        name,
        invoiceNumber,
        openTime,
        closed
    }
}

# Example variables
{
    "register": "<REGISTER>"
}
```