Compartir vía


API de conciliación de facturas facturadas v2 (GA)

Se aplica a: Centro de partners (no disponible en la nube soberana)

Nuestra nueva API asincrónica ofrece una manera más rápida y eficaz de acceder a los datos de facturación y conciliación a través de blobs de Azure. En lugar de mantener abierta una conexión durante horas o procesar lotes de 2000 elementos de línea, ahora puede simplificar el flujo de trabajo.

La nueva API de conciliación de facturas facturadas de comercio usa técnicas avanzadas, como la clave de valet y los patrones asincrónicos de solicitud-respuesta . Esta API proporciona un token de firma de acceso compartido (SAS) que puede usar para acceder a todos los atributos o a un subconjunto de los datos de conciliación de facturas facturados.

Nuestra API usa técnicas optimizadas para aumentar su eficiencia, por lo que puede lograr resultados más rápidos con menos esfuerzo. Adopte esta API para simplificar el acceso a los datos y mejorar la eficacia general.

Nota:

La nueva API no se hospeda en el host de la API del Centro de partners. En su lugar, puede encontrarlo en MS Graph en Uso de Microsoft Graph API para exportar datos de facturación de asociados: Microsoft Graph v1.0. Para acceder a esta API, consulte los detalles siguientes.

Importante

Para permitir que la aplicación acceda a los datos de facturación de asociados, siga este vínculo y familiarícese con los conceptos básicos de autenticación y autorización de Microsoft Graph.

Puede asignar el permiso "PartnerBilling.Read.All" mediante Azure Portal o el Centro de administración de Entra. A continuación, se indica cómo puede hacerlo.

  • Registre la aplicación en la página principal de Microsoft Entra en la sección Registros de aplicaciones.
  • Para conceder el permiso necesario, vaya a la página Aplicación de Microsoft Entra en la sección Permisos de API. Seleccione "Agregar un permiso" y elija el ámbito "PartnerBilling.Read.All".

Al completar estos pasos, asegúrese de que la aplicación tiene el acceso necesario a los datos de facturación de asociados.

Introducción a la API

Para ayudarle a recuperar los nuevos elementos de línea de conciliación de factura comercial facturados de forma asincrónica, ofrecemos dos puntos de conexión de API clave. Esta es una guía simplificada para empezar a trabajar:

Punto de conexión de conciliación de facturas facturadas

En primer lugar, use esta API para capturar nuevos elementos de línea de conciliación de facturas facturadas de comercio . Al realizar una solicitud, recibirá un estado HTTP 202 y un encabezado de ubicación con una dirección URL. Sondee esta dirección URL con regularidad hasta que obtenga un estado correcto y una dirección URL de manifiesto.

Punto de conexión de estado de la operación

A continuación, siga comprobando el estado de la operación llamando a esta API a intervalos regulares. Si los datos no están listos, la respuesta incluye un encabezado Retry-After que indica cuánto tiempo debe esperar antes de volver a intentarlo. Una vez completada la operación, recibirá un recurso de manifiesto con un vínculo de carpeta de almacenamiento para descargar los datos de uso. La respuesta segmenta los archivos para mejorar el rendimiento y permitir el paralelismo de E/S.

Siguiendo estos pasos, puede administrar eficazmente el proceso de conciliación de facturas.

Diagrama de secuencia

Este es un diagrama de secuencia que muestra los pasos para descargar nuevos datos de conciliación de facturas comerciales.

Diagrama que muestra los pasos para descargar datos de conciliación.

Secuencia de acciones del usuario

Para recuperar los datos de conciliación de facturas facturadas, siga estos pasos:

Paso 1: Enviar solicitud

Envíe una solicitud POST al punto de conexión de API.

Obtención de elementos de línea de conciliación de facturas facturados

Solicitud a la API

POST https://graph.microsoft.com/v1.0/reports/partners/billing/reconciliation/billed/export

Accept: application/json

Content-Type: application/json

{

"invoiceId": "G016907411",

"attributeSet": "basic"

}

Parámetros de consulta

N/D

Cuerpo de la solicitud

Atributo Obligatorio Type Descripción
attributeSet False Cadena Elija "full" para todos los atributos o "básico" para un conjunto limitado. Si no se especifica, "full" es el valor predeterminado. Compruebe la lista de atributos de esta sección. Opcional.
invoiceId True String Un identificador único para cada factura. Necesario.

Encabezados de solicitud

Solicite encabezados para la API mediante los pasos que se enumeran en Procedimientos recomendados para usar Microsoft Graph. Al seguir estas instrucciones, se garantiza la confiabilidad y la compatibilidad con la aplicación. Su atención a los detalles de este paso es fundamental para una integración sin problemas y un rendimiento óptimo.

Respuesta de la API

HTTP/1.1 202 Accepted  
Location: <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

Normalmente, la API responde con un estado HTTP 202. También puede encontrar otros estados en función de las solicitudes. Estos estados se enumeran en la sección Estados de respuesta de api estándar .

Código Descripción
202 – Aceptado Se aceptó la solicitud. Para comprobar el estado de la solicitud, consulte la dirección URL proporcionada en el encabezado de ubicación.

Paso 2: Comprobar el estado de la solicitud

Para realizar un seguimiento del estado de una solicitud, asegúrese de recibir una respuesta HTTP 200 que indica "correcto" o "error". Si se ejecuta correctamente, encontrará la dirección URL del manifiesto en el atributo "resourceLocation". Este atributo proporciona un punto de conexión para acceder a la información necesaria.

Obtener el estado de la operación

Recupera el estado de una solicitud.

Solicitud a la API

GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

Parámetros de solicitud

Nombre Incluir en Obligatorio Type Descripción
operationId URI de solicitud True String Identificador único para comprobar el estado de la solicitud. Necesario.

Encabezado de solicitud

Solicite encabezados para la API mediante los pasos que se enumeran en Procedimientos recomendados para usar Microsoft Graph. Al seguir estas instrucciones, se garantiza la confiabilidad y la compatibilidad con la aplicación. Su atención a los detalles de este paso es fundamental para una integración sin problemas y un rendimiento óptimo.

Cuerpo de la solicitud

N/A.

Estado de respuesta

Además de los estados HTTP estándar enumerados en los estados de respuesta de la API estándar, la API también puede devolver el siguiente estado HTTP:

Código Descripción
410 – Desaparecido El vínculo de manifiesto expira después de una hora establecida. Para obtener de nuevo el vínculo del manifiesto, envíe una nueva solicitud.

Carga de respuesta

La carga de respuesta de la API incluye los siguientes atributos:

Atributo Obligatorio Descripción
id True Un identificador único para cada respuesta
Necesario.
status True Valores y acciones: obligatorio.
notstarted: espere el tiempo especificado en el encabezado "Retry-After" y, a continuación, realice otra llamada para comprobar el estado.
running: espere el tiempo especificado en el encabezado "Retry-After" y, a continuación, realice otra llamada para comprobar el estado.
correcto: los datos están listos. Recupere la carga del manifiesto mediante el URI especificado en resourceLocation.
failed: la operación no se pudo realizar de forma permanente. Reinícielo.
createdDateTime True Hora a la que se realizó la solicitud.
Necesario.
lastActionDateTime True La última vez que cambió el estado.
Necesario.
resourceLocation False Identificador URI de la carga del manifiesto.
Opcional.
error False Detalles sobre los errores, proporcionados en formato JSON.
Opcional.
Atributos incluidos:
message: Descripción del error.
code: el tipo de error.

Objeto de ubicación de recursos

Atributo Descripción
id Identificador único del manifiesto.
schemaVersion Versión del esquema del manifiesto.
dataFormat Formato del archivo de datos de facturación.
compressedJSON: formato de datos donde cada blob es un archivo comprimido que contiene datos en formato de líneas JSON . Para recuperar los datos de cada blob, descomprima.
createdDateTime Fecha y hora en que se creó el archivo de manifiesto.
eTag Versión de los datos del manifiesto. Se genera un nuevo valor cada vez que se produce un cambio en la información de facturación.
partnerTenantId Id. de Microsoft Entra del inquilino del asociado.
rootDirectory Directorio raíz del archivo.
sasToken Token de SAS (firma de acceso compartido) que le permite leer todos los archivos del directorio.
partitionType Divide los datos en varios blobs en función del atributo partitionValue . El sistema divide las particiones que superan el número admitido. De forma predeterminada, los datos se particionan en función del número de elementos de línea del archivo. No establezca un número fijo de elementos de línea o tamaño de archivo en el código, ya que estos valores pueden cambiar.
blobCount Número total de archivos para este identificador de inquilino del asociado.
blobs Matriz JSON de objetos "blob" que contienen los detalles del archivo para el identificador de inquilino del asociado.
objeto de blob Objeto que contiene los detalles siguientes:
name y partitionValue
nombre Nombre del blob.
partitionValue Partición que contiene el archivo. Partición que contiene el archivo. Las particiones grandes se dividen en varios archivos, cada uno que contiene el mismo "partitionValue".

Solicitud a la API

GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

Respuesta de la API

La respuesta recomienda esperar 10 segundos antes de intentarlo de nuevo cuando los datos siguen procesando.

HTTP/1.1 200 OK  
Retry-After: 10  
{  
"id": "9ab9cb54-d07f-4f52-9ea6-a09d7de52c14",  
"createdDateTime": "2022-06-1T10-01-03.4Z",  
"lastActionDateTime": "2022-06-1T10-01-05Z",  
"status": "running"  
}

Solicitud a la API

(10 segundos después de la solicitud anterior...)

GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

Respuesta de la API

La API devuelve el estado "correcto" y el URI de "resourceLocation".

HTTP/1.1 200 OK  
Content-Type: application/json  
{

    "@odata.context": "https://graph.microsoft.com/v1.0/\$metadata#reports/partners/billing/operations/\$entity",

    "@odata.type": "#microsoft.graph.partners.billing.exportSuccessOperation",

    "id": "f2170b13-6a8e-47d6-b481-6988490dc0cb",

    "createdDateTime": "2023-12-05T21:17:29Z",

    "lastActionDateTime": "2023-12-05T21:18:00.8897902Z",

    "status": "succeeded",

    "resourceLocation": {

        "id": "44e8500b-ab92-490e-8ac3-90500a1d3427",

        "createdDateTime": "2023-11-06T19:58:47.513Z",

        "schemaVersion": "2",

        "dataFormat": "compressedJSON",

        "partitionType": "default",

        "eTag": "RwDrn7fbiTXy6UULE",

        "partnerTenantId": "0e195b37-4574-4539-bc42-0e539b9684c0",

        "rootDirectory": "https://adlsreconbuprodeastus201.blob.core.windows.net/path_id",

        "sasToken": "{token}",

        "blobCount": 1,

        "blobs": \[

            {

                "name": "part-00123-5a93fa5d-749f-48bc-a372-9b021d93c3fa.c000.json.gz",

                "partitionValue": "default"

            }

        \]

    }

}

Paso 3: Descarga de los elementos de línea de conciliación de facturas facturados de Azure Blob Storage

En primer lugar, debe obtener el token de firma de acceso compartido (SAS) y la ubicación de Blob Storage. Puede encontrar estos detalles en las propiedades "sasToken" y "rootDirectory" de la respuesta de la API de carga de manifiesto. Después, para descargar y descomprimir el archivo de blob, use el SDK o la herramienta de Azure Storage. Está en el formato JSONLines .

Sugerencia

Asegúrese de consultar nuestro código de ejemplo. Muestra cómo descargar y descomprimir el archivo de blob de Azure en la base de datos local.

Estados de respuesta de API estándar

Es posible que obtenga estos estados HTTP de la respuesta de la API:

Código Descripción
400: Solicitud incorrecta Falta la solicitud o contiene datos incorrectos. Compruebe el cuerpo de la respuesta para obtener los detalles del error.
401 - No autorizado Se requiere autenticación antes de realizar la primera llamada. Autentíquese con el servicio de API del asociado.
403 - Prohibido No tiene la autorización necesaria para realizar la solicitud.
404 – Not Found Los recursos solicitados no están disponibles con los parámetros de entrada proporcionados.
410 – Desaparecido El vínculo del manifiesto ya no es válido ni activo. Envíe una nueva solicitud.
500: Error interno del servidor La API o sus dependencias no pueden cumplir la solicitud en este momento. Vuelva a intentarlo más tarde.
5000: sin datos disponibles El sistema no tiene datos para los parámetros de entrada proporcionados.

Atributos de elemento de línea de conciliación de facturas facturadas

Para comparar los atributos devueltos por la API de conciliación de facturas facturadas para los conjuntos de atributos "completos" o "básicos", consulte la tabla siguiente. Para obtener más información sobre estos atributos, consulte Uso del archivo de conciliación.

Attribute Completo Básico
PartnerId
CustomerId
CustomerName
CustomerDomainName no
CustomerCountry no
InvoiceNumber
MpnId no
Tier2MpnId
OrderId
OrderDate
ProductId
SkuId
AvailabilityId
SkuName no
ProductName
ChargeType
UnitPrice
Cantidad no
Subtotal
TaxTotal
Total
Moneda
PriceAdjustmentDescription
PublisherName
PublisherId no
SubscriptionDescription no
SubscriptionId
ChargeStartDate
ChargeEndDate
TermAndBillingCycle
EffectiveUnitPrice
UnitType no
AlternateId no
BillableQuantity
BillingFrequency no
PricingCurrency
PCToBCExchangeRate
PCToBCExchangeRateDate no
MeterDescription no
ReservationOrderId
CreditReasonCode
SubscriptionStartDate
SubscriptionEndDate
ReferenceId
ProductQualifiers no
PromotionId
ProductCategory

Código de ejemplo

Para usar esta API, consulte el vínculo siguiente, que incluye código de ejemplo de C#.

Partner-Center-Billing-Recon-Samples: ejemplos de API para obtener datos de conciliación de facturación del Centro de partners (github.com).