# Loyalty Endpoints for manually managing different types of loyalty objects. Methods under this endpoint lets you view current campaigns, manually add bonus points, get balance of a customers loyalty card(s) etc. Depending on your configuration, the API may take or return additional fields in the extendedProperties object. To get an example of your specific integration, please contact our support team. ## Return all bonus campaigns - [GET /loyalty/bonus/campaigns/{id}](https://dev.triggloyalty.com/openapi/loyalty/getbonuscampaigns.md): Methods that returns all current bonus campaigns. The id parameters is optional and can be used to return all campaigns for a specific member. The return object is dynamic and can vary between clients, the example below shows the most common types of fields. ## Import activity bonus - [POST /loyalty/bonus/import](https://dev.triggloyalty.com/openapi/loyalty/bonusimport.md): Method that allows a third-party to manually import activities and update bonus amount for a member. Available activites that qualifies for bounus points can be found using the /bonus/rules endpoint. The request and response can be customer specific and the example below shows only a common type of request body. ## Add bonus points - [POST /loyalty/bonus/addRewardPoints](https://dev.triggloyalty.com/openapi/loyalty/bonusaddrewardpoints.md): Method that allows you to manually add points to specific member ## Add bonus by activity id - [POST /loyalty/activity/{activityId}/customerId/{customerId}](https://dev.triggloyalty.com/openapi/loyalty/addbonuspointsbyactivity.md): This method allows you to add bonus points to a specific customer based on activity. The activityId is the identifier of the activity that the customer has performed. The customerId is the identifier of the customer that has performed the activity. The request body is fully dynamic and can contain any number of properties depending on configuration. The request sample is only an minimum required example and may have to be replaced with the actual request body if the configuration requires it. ## Transfer clips [PREVIEW] - [POST /loyalty/loyalty-cards/transfer-clips](https://dev.triggloyalty.com/openapi/loyalty/transferclips.md): A method that allows the client to transfer clips on a loyalty card between two existing customers. Depending on your configuration, the API may take or return additional fields in the extendedProperties object. ## Return all bonus rules - [GET /bonus/rules](https://dev.triggloyalty.com/openapi/loyalty/getbonusrules.md): Methods that returns all the rules and activitys that qualifies to bonuses. ## Get loyalty cards - [GET /loyalty/loyalty-cards/{customerId}](https://dev.triggloyalty.com/openapi/loyalty/stampcard1.md): Endpoint that returns a list of active loyalty/stamp cards for a customer. ## Update achievement [PREVIEW] - [PUT /loyalty/achievements](https://dev.triggloyalty.com/openapi/loyalty/updateachivement.md): A method that allows the client to manually add clips/stamps to a customers achievement card which can be useful i scenarions where live updates are not possible. Depending on your configuration, the API may take or return additional fields in the extendedProperties object. ## Get loyalty card campaigns - [GET /loyalty/loyalty-cards/campaigns](https://dev.triggloyalty.com/openapi/loyalty/stampcardcampaigns.md): Endpoint that return all products that qualifies for a count in each loyalty/stamp card. Depending on your OIP configuration, the API may return additional fields in the extendedProperties object. ## Add bonus by activity id - [POST /loyalty/transactions/customerId/{customerId}](https://dev.triggloyalty.com/openapi/loyalty/addbonuspointsbyactivity.md): This method allows you to add bonus points to a specific customer based on activity. The activityId is the identifier of the activity that the customer has performed. The customerId is the identifier of the customer that has performed the activity. The request body is fully dynamic and can contain any number of properties depending on configuration. The request sample is only an minimum required example and may have to be replaced with the actual request body if the configuration requires it.