Problemas com jQuery e Datatable

Estou tendo problemas para fazer uma chamada de um método por um DataTable de jQuery. Estou fazendo isso com Spring Boot e Angularjs 1.
Esse método contém um parâmetro que é um objeto (uma classe), e estou tentando fazer a chamada mas estou encontrando o seguinte erro:

{“timestamp”:1496935566527,“status”:400,“error”:“Bad Request”,“exception”:“org.springframework.http.converter.HttpMessageNotReadableException”,“message”:“Could not read JSON document: Unexpected character (’=’ (code 61)): Expected space separating root-level values\n at [Source: java.io.PushbackInputStream@43e333c8; line: 1, column: 3]; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character (’=’ (code 61)): Expected space separating root-level values\n at [Source: java.io.PushbackInputStream@43e333c8; line: 1, column: 3]”,“path”:"/getRequisicoes"}

Meu RestController:

@RestController(value = "/requisicoes")
public class RequisicaoController {

    @Autowired
    LogisticaGLGLDocumentosServices logisticaGLGLDocumentosServices;

    @Autowired
    SistemaUsuariosFiliaisServices sistemaUsuariosFiliaisServices;

    @RequestMapping(method = RequestMethod.PUT,
            value = "/getRequisicoes",
            produces = org.springframework.http.MediaType.APPLICATION_JSON_VALUE,
            consumes = org.springframework.http.MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Collection<TblLogisticaGlgldocumentos>> getRequisicoes(@RequestBody final FiltroRequisicao filtroRequisicao) {
        Collection<TblLogisticaGlgldocumentos> lista = logisticaGLGLDocumentosServices.load();

        return new ResponseEntity<>(lista, HttpStatus.OK);
    }

    @RequestMapping(method = RequestMethod.PUT, value = "/getFiliaisCooperados", produces = org.springframework.http.MediaType.APPLICATION_JSON_VALUE, consumes = org.springframework.http.MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Collection<TblSistemaUsuariosFiliais>> getFiliaisCooperados(@RequestBody SistemaUsuarios sistemaUsuarios) {
        Collection<TblSistemaUsuariosFiliais> lista = sistemaUsuariosFiliaisServices.loadFiliais(sistemaUsuarios);

        return new ResponseEntity<>(lista, HttpStatus.OK);
    }

Minha classe que recebe os filtros:

public class FiltroRequisicao implements Serializable {
    private Integer CodigoSistemaUsuariosFiliais;
    private String DataInicial;
    private String DataFinal;
    private String ChaveDocumento;

    public FiltroRequisicao() {
    }


    public Integer getCodigoSistemaUsuariosFiliais() {
        return CodigoSistemaUsuariosFiliais;
    }

    public void setCodigoSistemaUsuariosFiliais(Integer codigoSistemaUsuariosFiliais) {
        CodigoSistemaUsuariosFiliais = codigoSistemaUsuariosFiliais;
    }

    public String getDataInicial() {
        return DataInicial;
    }

    public void setDataInicial(String dataInicial) {
        DataInicial = dataInicial;
    }

    public String getDataFinal() {
        return DataFinal;
    }

    public void setDataFinal(String dataFinal) {
        DataFinal = dataFinal;
    }

    public String getChaveDocumento() {
        return ChaveDocumento;
    }

    public void setChaveDocumento(String chaveDocumento) {
        ChaveDocumento = chaveDocumento;
    }
}

Meu js Controller (Angular):

function requisicoesController($scope, $http) {
    $scope.listaCooperados = [{}];
    $scope.cooperadosSelecionados = [{}];
    $scope.filtroRequisicao = {
        codigoSistemaUsuariosFiliais: 0,
        dataInicial: "",
        dataFinal: "",
        chaveDocumento: ""
    }


    $scope.loadTable = function () {
        $(document).ready(function () {
            $('#tableDocumentos').DataTable({
                //"sAjaxSource": "/getRequisicoes",
                ajax: {
                    url: "/getRequisicoes",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    type: "PUT",
                    data : JSON.stringify($scope.filtroRequisicao)
                },
                language: {
                    url: "//cdn.datatables.net/plug-ins/1.10.15/i18n/Portuguese-Brasil.json",
                    decimal: ",",
                    thousands: "."
                },
                sAjaxDataProp: "",
                bDestroy: true,
                order: [[0, "asc"]],
                aoColumns: [
                    {mData: "cnpj"},
                    {
                        mData: "data", "type": "date", "render": function (data) {
                        if (data !== null) {
                            var javascriptDate = new Date(data);
                            var day = javascriptDate.getDate().toString();
                            var month = (javascriptDate.getMonth() + 1).toString();
                            month = ('00' + month).substring(month.length);
                            var year = javascriptDate.getFullYear().toString();
                            javascriptDate = day + "/" + month + "/" + year;
                            return javascriptDate;
                        } else {
                            return "";
                        }
                    }
                    },
                    {mData: "tblGnpessoas.nome"},
                    {mData: "numero"},
                    {mData: "serie"},
                    {mData: "valor", "type": "decimal"}
                ]
            })
        });
    };

}

angular
    .module('app')
    .controller('requisicoesController', ['$scope', '$http', requisicoesController]);

Fiz a mesma requisição pelo Postman e ocorreu tudo certo, agora fazendo pela chamada ajax do datatable do jquery não consigo fazer funcionar.