# Paradigmas de integración

## Semiintegrado <a href="#semi-integrated" id="semi-integrated"></a>

El dispositivo de pago contiene una aplicación de pago completa que se integra con un sistema ECR/POS externo y gestiona todas las interacciones con el host. El SDK de pagos está integrado en el sistema ECR/POS.

{% @plantuml/diagram content="    @startuml

```
actor "Cashier"

component "BYOD\n" as byod <<device>> {
  rectangle "POS"
  rectangle "PSDK" as PSDK <<highlight>> {
    rectangle "Payment App\nProtocol Adapter" as ProtocolAdapter <<highlight>>
  }
  POS <<-d->> PSDK
  POS <<-l->> Cashier
}

component "POI\n" as POI <<device>> {
  rectangle "Payment App" as PaymentApp <<highlight>>
  ProtocolAdapter <<-r->> PaymentApp
}

actor "Customer"
PaymentApp <<-r->> Customer

cloud "Payment Host" as Host
PaymentApp <<-d->> Host

@enduml" %}
```

## Semiintegrado <a href="#slim-integrated" id="slim-integrated"></a>

{% @plantuml/diagram content="    @startuml

```
actor "Cashier"

component "BYOD\n" as byod <<device>> {
  rectangle "POS"
  rectangle "PSDK" as PSDK <<highlight>> {
    rectangle "Payment App\nProtocol Adapter" as ProtocolAdapter <<highlight>>
  }
  POS <<-d->> PSDK
  POS <<-l->> Cashier
}

component "POI\n" as POI <<device>> {
  rectangle "Payment App" as PaymentApp <<highlight>>
  ProtocolAdapter <<-r->> PaymentApp
}

actor "Customer"
PaymentApp <<-r->> Customer

cloud "Payment Host" as Host
PaymentApp <<-d->> Host

@enduml" %}
```

## Integrado delgado <a href="#slim-integrated" id="slim-integrated"></a>

En el modelo integrado delgado, compatible solo con el terminal Android, la aplicación de pago ya no se comunica directamente con el host, sino que envía un evento de transacción para la autorización/finalización del host a la aplicación POS, que gestiona las interacciones con el host.

{% @plantuml/diagram content="        @startuml
scale 300 width
scale 300 height

```
    component "Retailer ECR System\n" as ECR <<device>> #Ivory {
      rectangle "POS" #LightYellow {
        rectangle "Cross-Platform PSDK" #LightSkyBlue {
          rectangle "Payment Adapter" as PA
        }
      }
    }

    cloud "Payment Host" as HOST #ivory
    PA <<-d->> HOST

    component "Engage Payment Device\n" as Engage <<device>> 

    Engage -[hidden]> ECR
    hide Engage

    component "Android Payment Device\n" as Android <<device>> #Ivory {
      rectangle "POS Application" as POSAPP {
        rectangle "PSDK" as PSDKAND #LightSkyBlue
      }
      rectangle "Android Payment\nApplication" as AndroidAPP
      rectangle "Card Reader\nService" as CRS
      rectangle "Headless SDI" as HeadlessSDI #LightSalmon
      POSAPP <<-d->> AndroidAPP
      AndroidAPP <<-d->> CRS
      CRS <<-d->> HeadlessSDI 
      PA <<-r->> AndroidAPP
    }
   
    @enduml" %}
```

## Diseño Android totalmente integrado

{% @plantuml/diagram content="    @startuml

```
actor "Cashier"

component "BYOD\n" as byod <<device>> {
  rectangle "POS"
  rectangle "PSDK" as PSDK <<highlight>> {
    rectangle "Payment App\nProtocol Adapter" as ProtocolAdapter <<highlight>>
    rectangle "Host Module Adapter" as HostAdapter <<highlight>>
    ProtocolAdapter -[hidden]- HostAdapter
  }
  POS <<-d->> PSDK
  POS <<-l->> Cashier
}

component "POI\n" as POI <<device>> {
  rectangle "Payment App" as PaymentApp <<highlight>>
  rectangle "Host Module Proxy" as HostModule <<highlight>>
  PaymentApp <<-d->> HostModule
  ProtocolAdapter <<-r->> PaymentApp
  HostAdapter <<-r->> HostModule
}

actor "Customer"
PaymentApp <<-r->> Customer

cloud "Payment Host" as Host
POS <<-r->> Host

@enduml" %}
```

## Diseño Engage totalmente integrado

{% @plantuml/diagram content="    @startuml

```
actor "Cashier"

component "BYOD\n" as byod <<device>> {
  rectangle "POS"
  rectangle "PSDK" as PSDK <<highlight>> {
    rectangle "SDI\nProtocol Adapter" as ProtocolAdapter <<highlight>>
  }
  POS <<-d->> PSDK
  POS <<-l->> Cashier
}

component "POI\n" as POI <<device>> {
  rectangle "SDI Server" as PaymentApp <<highlight>>
  ProtocolAdapter <<-r->> PaymentApp
}

actor "Customer"
PaymentApp <<-r->> Customer

cloud "Payment Host" as Host
POS <<-r->> Host


@enduml" %}
```


---

# 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.verifone.com/psdk/psdk-es/no-estas-seguro-de-donde-se-encuentran-estos/integration_types.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.
