This method allows you get a new instance of a component implementation.

TYPESCRIPT
async provide(props: AchManagerProps): Promise<StripeAchUserDetailsComponent | any>

Parameters

Supported payment method types

Returns

An instance of a component, depending on the paymentMethodType:

Example

TYPESCRIPT
// 👇 Add this
const achManagerProps: AchManagerProps = {
  paymentMethodType: "STRIPE_ACH",
  onStep: (data: AchStep) => {
    switch (data.stepName) {
      case "userDetailsRetrieved":
        // Pre-populate your form with first name, last name and email address.
        break;

      case "userDetailsCollected":
        // Form can be hidden (eg.: pop the backstack). Start listening for DisplayStripeAchMandateAdditionalInfo events.
        break;
    }
  },
  onError: (error: PrimerError) => {
    // An error that occurred during the component's operation.
  },
  onInvalid: (data: PrimerInvalidComponentData<AchValidatableData>) => {
    // Data was considered invalid during validation.
    switch (data.data.validatableDataName) {
      case "firstName":
        // ...
        break;
      case "lastName":
        // ...
        break;
      case "emailAddress":
        // ...
        break;
    }
  },
  onValid: (data: PrimerValidComponentData<AchValidatableData>) => {
    // Data was successfully validated.
    switch (data.data.validatableDataName) {
      case "firstName":
        // ...
        break;
      case "lastName":
        // ...
        break;
      case "emailAddress":
        // ...
        break;
    }
  },
  onValidating: (data: PrimerValidatingComponentData<AchValidatableData>) => {
    // Data is in the process of being validated.
    switch (data.data.validatableDataName) {
      case "firstName":
        // ...
        break;
      case "lastName":
        // ...
        break;
      case "emailAddress":
        // ...
        break;
    }
  },
  onValidationError: (
    data: PrimerComponentDataValidationError<AchValidatableData>
  ) => {
    // Error occurred during data validation.
    switch (data.data.validatableDataName) {
      case "firstName":
        // ...
        break;
      case "lastName":
        // ...
        break;
      case "emailAddress":
        // ...
        break;
    }
  },
};
const achManager = new AchManager();
const stripeAchUserDetailsComponent: StripeAchUserDetailsComponent =
  await achManager.provide(achManagerProps);