---
displayed_sidebar: servicesSidebar
---

import ParameterTypes from "@site/src/components/ParameterTypes"

# PaymentCollectionService

## constructor

### Parameters

<ParameterTypes parameters={[{"name":"__namedParameters","type":"`InjectedDependencies`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />

___

## Properties

<ParameterTypes parameters={[{"name":"__container__","type":"`any`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"customerService_","type":"[CustomerService](services.CustomerService.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"eventBusService_","type":"[EventBusService](services.EventBusService.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"manager_","type":"`EntityManager`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"paymentCollectionRepository_","type":"Repository&#60;[PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)&#62; & `object`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"paymentProviderService_","type":"[PaymentProviderService](services.PaymentProviderService.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"transactionManager_","type":"`undefined` \\| `EntityManager`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"Events","type":"`object`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"Events.CREATED","type":"`string`","description":"","optional":false,"defaultValue":"\"payment-collection.created\"","expandable":false,"children":[]},{"name":"Events.DELETED","type":"`string`","description":"","optional":false,"defaultValue":"\"payment-collection.deleted\"","expandable":false,"children":[]},{"name":"Events.PAYMENT_AUTHORIZED","type":"`string`","description":"","optional":false,"defaultValue":"\"payment-collection.payment_authorized\"","expandable":false,"children":[]},{"name":"Events.UPDATED","type":"`string`","description":"","optional":false,"defaultValue":"\"payment-collection.updated\"","expandable":false,"children":[]},{"name":"__configModule__","type":"`Record<string, unknown>`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"__moduleDeclaration__","type":"`Record<string, unknown>`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]} />

___

## Accessors

### activeManager\_

#### Returns

<ParameterTypes parameters={[{"name":"EntityManager","type":"`EntityManager`","optional":false,"defaultValue":"","description":"","expandable":false,"children":[]}]} />

___

## Methods

### atomicPhase\_

Wraps some work within a transactional block. If the service already has
a transaction manager attached this will be reused, otherwise a new
transaction manager is created.

#### Type Parameters

<ParameterTypes parameters={[{"name":"TResult","type":"`object`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"TError","type":"`object`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />

#### Parameters

<ParameterTypes parameters={[{"name":"work","type":"(`transactionManager`: `EntityManager`) => Promise&#60;TResult&#62;","description":"the transactional work to be done","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"isolationOrErrorHandler","type":"`IsolationLevel` \\| (`error`: `TError`) => Promise&#60;void \\| TResult&#62;","description":"the isolation level to be used for the work.","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"maybeErrorHandlerOrDontFail","type":"(`error`: `TError`) => Promise&#60;void \\| TResult&#62;","description":"Potential error handler","optional":true,"defaultValue":"","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"Promise","type":"Promise&#60;TResult&#62;","optional":false,"defaultValue":"","description":"the result of the transactional work","expandable":false,"children":[]}]} />

___

### authorizePaymentSessions

Authorizes the payment sessions of a payment collection.

#### Parameters

<ParameterTypes parameters={[{"name":"paymentCollectionId","type":"`string`","description":"the id of the payment collection","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"sessionIds","type":"`string`[]","description":"array of payment session ids to be authorized","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"context","type":"`Record<string, unknown>`","description":"additional data required by payment providers","optional":false,"defaultValue":"{}","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"Promise","type":"Promise&#60;[PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)&#62;","optional":false,"defaultValue":"","description":"the payment collection and its payment session.","expandable":false,"children":[]}]} />

___

### create

Creates a new payment collection.

#### Parameters

<ParameterTypes parameters={[{"name":"data","type":"`CreatePaymentCollectionInput`","description":"info to create the payment collection","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"Promise","type":"Promise&#60;[PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)&#62;","optional":false,"defaultValue":"","description":"the payment collection created.","expandable":false,"children":[]}]} />

___

### delete

Deletes a payment collection.

#### Parameters

<ParameterTypes parameters={[{"name":"paymentCollectionId","type":"`string`","description":"the id of the payment collection to be removed","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"Promise","type":"Promise&#60;undefined \\| [PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)&#62;","optional":false,"defaultValue":"","description":"the payment collection removed.","expandable":false,"children":[]}]} />

___

### isValidTotalAmount

#### Parameters

<ParameterTypes parameters={[{"name":"total","type":"`number`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"sessionsInput","type":"`PaymentCollectionsSessionsBatchInput`[]","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"boolean","type":"`boolean`","optional":false,"defaultValue":"","description":"","expandable":false,"children":[]}]} />

___

### markAsAuthorized

Marks a payment collection as authorized bypassing the payment flow.

#### Parameters

<ParameterTypes parameters={[{"name":"paymentCollectionId","type":"`string`","description":"the id of the payment collection","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"Promise","type":"Promise&#60;[PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)&#62;","optional":false,"defaultValue":"","description":"the payment session authorized.","expandable":false,"children":[]}]} />

___

### refreshPaymentSession

Removes and recreate a payment session of a payment collection.

#### Parameters

<ParameterTypes parameters={[{"name":"paymentCollectionId","type":"`string`","description":"the id of the payment collection","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"sessionId","type":"`string`","description":"the id of the payment session to be replaced","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"customerId","type":"`string`","description":"the id of the customer","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"Promise","type":"Promise&#60;[PaymentSession](../../entities/classes/entities.PaymentSession.mdx)&#62;","optional":false,"defaultValue":"","description":"the new payment session created.","expandable":false,"children":[]}]} />

___

### retrieve

Retrieves a payment collection by id.

#### Parameters

<ParameterTypes parameters={[{"name":"paymentCollectionId","type":"`string`","description":"the id of the payment collection","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"config","type":"[FindConfig](../../medusa/interfaces/medusa.FindConfig.mdx)&#60;[PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)&#62;","description":"the config to retrieve the payment collection","optional":false,"defaultValue":"{}","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"Promise","type":"Promise&#60;[PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)&#62;","optional":false,"defaultValue":"","description":"the payment collection.","expandable":false,"children":[]}]} />

___

### setPaymentSession

Manages a single payment sessions of a payment collection.

#### Parameters

<ParameterTypes parameters={[{"name":"paymentCollectionId","type":"`string`","description":"the id of the payment collection","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"sessionInput","type":"`PaymentCollectionsSessionsInput`","description":"object containing payment session info","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"customerId","type":"`string`","description":"the id of the customer","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"Promise","type":"Promise&#60;[PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)&#62;","optional":false,"defaultValue":"","description":"the payment collection and its payment session.","expandable":false,"children":[]}]} />

___

### setPaymentSessionsBatch

Manages multiple payment sessions of a payment collection.

#### Parameters

<ParameterTypes parameters={[{"name":"paymentCollectionOrId","type":"`string` \\| [PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)","description":"the id of the payment collection","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"sessionsInput","type":"`PaymentCollectionsSessionsBatchInput`[]","description":"array containing payment session info","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"customerId","type":"`string`","description":"the id of the customer","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"Promise","type":"Promise&#60;[PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)&#62;","optional":false,"defaultValue":"","description":"the payment collection and its payment sessions.","expandable":false,"children":[]}]} />

___

### shouldRetryTransaction\_

#### Parameters

<ParameterTypes parameters={[{"name":"err","type":"`Record<string, unknown>` \\| `object`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"boolean","type":"`boolean`","optional":false,"defaultValue":"","description":"","expandable":false,"children":[]}]} />

___

### update

Updates a payment collection.

#### Parameters

<ParameterTypes parameters={[{"name":"paymentCollectionId","type":"`string`","description":"the id of the payment collection to update","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"data","type":"DeepPartial&#60;[PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)&#62;","description":"info to be updated","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"Promise","type":"Promise&#60;[PaymentCollection](../../entities/classes/entities.PaymentCollection.mdx)&#62;","optional":false,"defaultValue":"","description":"the payment collection updated.","expandable":false,"children":[]}]} />

___

### withTransaction

#### Parameters

<ParameterTypes parameters={[{"name":"transactionManager","type":"`EntityManager`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]} />

#### Returns

<ParameterTypes parameters={[{"name":"PaymentCollectionService","type":"`object`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]}]} />
