Importe el SDK en la clase

import ReconoSerSDK

el servicio recibe un objeto de tipo SaveDocumentBothSidesRequest y estas son sus propiedades:

		public struct SaveDocumentBothSidesRequest {
		    public let agreementGuid: String
		    public let processGuid: String
		    public let citizenGuid: String
		    public let additionalData: String
		    public let front: DocumentMode 
		    public let back: DocumentMode
		    public let user: String
		    public let traceability: Traceability?
		    public let logsOcrBarcode: LogsOcrBarcode?
		    public let specialConfiguration: [String]
    }

y su respuesta es un objeto tipo SaveDocumentBothSidesResponse y estas son sus propiedades:

public struct SaveDocumentBothSidesResponse {
    public let biometricFrontGuid: String?
    public let biometricBackGuid: String?
    public let frontSuccess: Bool?
    public let backSuccess: Bool?
    public let frontMessage: String?
    public let backMessage: String?
    public let transactionResponse: TransactionResponse?
 }

para tener acceso al llamado del servicio tiene que utilizar la intancia del SDK de esta forma:

ServiciosOlimpia.sharedInstance.documentService.saveDocumentBothSides(request: request)

este es un ejemplo de su implementacion:

func saveDocument() async {
      
        let request = SaveDocumentBothSidesRequest(agreementGuid: "agreementGuid",
                                                   processGuid: "processGuid",
                                                   citizenGuid: "citizenGuid",
                                                   additionalData: "CC",
                                                   front: DocumentMode(value: "documentFrontImage", format: "JPG_BASE64"),
                                                   back: DocumentMode(value: "documentBackImage", format: "JPG_BASE64"),
                                                   user: "user",
                                                   traceability: traceability,
                                                   logsOcrBarcode: nil,
                                                   specialConfiguration: [])
        
        
        
        do {
            let response = try await ServiciosOlimpia.sharedInstance.documentService.saveDocumentBothSides(request: request)
            
            if let error = response.error {
                //SU IMPLEMENTACION
                return
            }
            
            guard let response = response.data else {
                //SU IMPLEMENTACION
                return
            }
            
        } catch {
            //SU IMPLEMENTACION
        }
    }

este es un ejemplo del request:

{
  "guidCiu": "GUI-123",
  "usuario": "USUARIO-123",
  "reverso": {
    "valor": "FOTO",
    "formato": "JPG_BASE64"
  },
  "guidProcesoConvenio": "CONVENIO-123",
  "datosAdi": "CC",
  "convenioGuid": "GUI-123",
  "configuracionEspecial": [],
  "anverso": {
    "valor": "FOTO",
    "formato": "JPG_BASE64"
  }
}

este es un ejemplo del response:

{
  "datos": {
    "data": {
      "documentTypeDesc": "Identity Card",
      "documentType": "CC",
      "class": null,
      "subTipo": null,
      "numeroDocumento": "",
      "primerNombre": "",
      "segundoNombre": "",
      "primerApellido": "",
      "segundoApellido": "",
      "nombreCompleto": "",
      "sexo": "M",
      "rh": "O+",
      "lugarNacimiento": "BOGOTA D.C. (CUNDINAMARCA)",
      "lugarExpedicion": "BOGOTA D C",
      "nacionalidad": "COL",
      "isoCode": null,
      "mrzCode": null,
      "pais": "COL",
      "edad": 0,
      "numeroPersonal": null,
      "claveElector": null,
      "ocrNumber": null,
      "codigoCic": null,
      "numeroEmision": null,
      "fechaDeRegistro": null,
      "fechaNacimiento": "1989-09-01T00:00:00",
      "fechaNacimientoMRZ": null,
      "fechaNacimientoBarcode": null,
      "fechaExpedicionDoc": "2000-00-00T00:00:00",
      "fechaExpedicionDocMRZ": null,
      "fechaExpedicionDocBarcode": null,
      "fechaExpiracionDoc": null
    },
    "ocrList": [
      {
        "idType": "DocumentNumber",
        "descripcion": "Número de documento",
        "valor": ""
      }
    ],
    "barcodeList": [
      {
        "idType": "DocumentNumber",
        "descripcion": "Numero de documento",
        "valor": ""
      },
      
    ],
    "mrzList": []
  },
  "guidBioAnv": "6e77b366-25d8-4a3d-a356-8ea1f3130f10",
  "guidBioRev": "29e01a9f-5ccc-46dc-942c-fcb485f85030",
  "anvExitoso": true,
  "revExitoso": true,
  "anvMensaje": "Se validó Anverso CC correctamente",
  "revMensaje": "Se validó Reverso CC correctamente",
  "respuestaTransaccion": {
    "isHomologacion": false,
    "esExitosa": true,
    "errorEntransaccion": []
  }
}