# GreytHR Push Punch Logs

Use this integration to push attendance data from we360.ai into GreytHR.

Punch-in and punch-out records are sent as employee swipes.

The sync runs daily for the previous day. It runs at `05:30 UTC`. That is `11:00 AM IST`.

## Before you start

You need these values from GreytHR:

* API ID
* API Base URL
* API Private Key in PEM format
* Unique Identification Key

{% hint style="warning" %}
Every synced user must have an Employee ID. If Employee ID is missing, that user will not sync.
{% endhint %}

## Required fields

| we360.ai field              | Description                                | GreytHR usage         |
| --------------------------- | ------------------------------------------ | --------------------- |
| `API ID`                    | Unique identifier for API access           | API authentication    |
| `API Base URL`              | Endpoint URL for API calls                 | API request base path |
| `API Private Key (PEM Key)` | Security certificate entered as plain text | Authentication        |
| `Unique Identification Key` | Employee identifier used for matching      | User mapping          |
| `Employee ID`               | Required employee mapping field            | Employee mapping      |

## Generate the Attendance Swipe API key in GreytHR

{% stepper %}
{% step %}

### Open API details

Log in to the GreytHR Admin portal.

Go to **Settings → My Account → API Details**.

![](/files/6kKgYFcA8rizsLASZoBZ)
{% endstep %}

{% step %}

### Create a new API key

In the **API Keys** section, click **+**.

In the pop-up, select **Attendance Swipe API Key**.

Click **Generate API Keys**.
{% endstep %}

{% step %}

### Copy the API details

In the Attendance Swipe API Key pop-up, note these values:

* **Domain URL** — your GreytHR access URL
* **API Name** — editable
* **API ID** — shown only once

Copy the **API ID** and store it securely.
{% endstep %}

{% step %}

### Download the private key

Click **Download Private Key**.

Open the downloaded PEM file.

Copy the full file contents as plain text.
{% endstep %}

{% step %}

### Finish key generation

Click **Done**.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Only Growth and Enterprise plan users can access GreytHR API features.
{% endhint %}

## Configure the integration in we360.ai

{% stepper %}
{% step %}

### Open the integration

In we360.ai, go to **Settings → Integrations**.

Open **GreytHR Push Punch Logs**.
{% endstep %}

{% step %}

### Enter the API details

Fill in these values:

* `API ID`
* `API Base URL`
* `API Private Key`
* `Unique Identification Key`
  {% endstep %}

{% step %}

### Paste the PEM key as text

Paste the full private key contents from the PEM file.

Do not trim the text.
{% endstep %}

{% step %}

### Enable automatic sync

Enable **Auto-Run**.
{% endstep %}

{% step %}

### Save the integration

Save the configuration.
{% endstep %}
{% endstepper %}

## How the sync works

1. we360.ai captures punch-in and punch-out times.
2. The system converts the data to GreytHR swipe format.
3. The records are pushed to GreytHR daily.
4. GreytHR updates employee attendance automatically.

## Troubleshooting

#### Punch logs do not appear in GreytHR

Verify `API ID`, `API Base URL`, and the private key text.

#### Users are missing from the sync

Check the unique identification key mapping.

Also confirm the user has an `Employee ID`.

## Support

* we360.ai integration support — `support@we360.ai`
* GreytHR API support — `support@greythr.com`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.we360.ai/deployment-and-it-ops/readme/integrations/portal-integrations/greythr-push-punch-logs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
