Stripe te da payment_intent, charge_id, identificadores de transferencia, comisiones y movimientos netos. FreshBooks te da números de factura, nombres de clientes, fechas de pago, totales y estados. Esos campos pueden describir el mismo pago de un cliente y aun así no tener ninguna columna en común para un cruce directo.
Ahí es donde la conciliación se rompe para los consultores que revisan el mes de un cliente. El cliente dice que FreshBooks muestra la factura como pagada. Stripe confirma que el pago existe. El banco muestra un depósito neto que llegó dos días después, por un monto menor. Ninguna de esas tres afirmaciones prueba que la factura se concilió correctamente.
La respuesta a nivel de archivos es construir el vínculo tú mismo: identificar qué registro de Stripe corresponde al pago, identificar qué fila de FreshBooks corresponde a la factura o al cobro, decidir si estás conciliando el importe bruto de la factura o el efectivo neto de la transferencia, y luego producir una lista de excepciones que explique cada fila sin coincidencia.
Identifica qué archivo de Stripe tienes
Los archivos de Stripe pueden verse iguales en pantalla pero responder preguntas distintas. Un archivo de pagos, un archivo de transacciones de saldo, un informe de transferencias y un archivo de comisiones no se concilian contra FreshBooks de la misma manera.
| Archivo o vista de Stripe | Qué muestra | Archivo de FreshBooks que puede apoyar |
|---|---|---|
| Archivo de pagos o cargos | Pagos individuales de clientes antes del cobro de la transferencia | Cobros de facturas o filas de facturas pagadas |
| Archivo de transacciones de saldo | Importe bruto, comisión, neto, reembolsos y ajustes | Cobros de facturas más revisión de comisiones o ajustes |
| Informe de conciliación de transferencias | El lote que llegó al banco | Conciliación bancaria o de efectivo, no cruce de facturas por sí solo |
| Archivo de comisiones | Filas de comisiones del procesador | Registro de gastos o explicación bruto-neto |
| Archivo de reembolsos | Actividad de pago negativa | Notas de crédito, reembolsos o correcciones de facturas |
El archivo equivocado produce la respuesta equivocada. Si comparas el total de una transferencia de Stripe con los totales de facturas de FreshBooks, el resultado va a quedar corto: las comisiones, los reembolsos y los tiempos de liquidación se interponen entre el valor de la factura y el efectivo. Si comparas un archivo de pagos de Stripe con el extracto bancario, el resultado va a quedar alto: el banco recibe el efectivo neto de la transferencia, no las filas de pagos brutos de los clientes.
Para el cruce de facturas de FreshBooks, empieza con los registros de pagos de Stripe. Incorpora los datos de transferencias y comisiones solo después de que el cruce a nivel de factura esté claro.
Esa distinción importa cuando la infraestructura del cliente es mixta. Un cliente puede tener una conexión activa con Stripe. Otro exporta FreshBooks manualmente porque la integración dejó de sincronizar las referencias de pago. El consultor igual necesita una capa de verificación que funcione desde los archivos en bruto.
Lee el archivo de FreshBooks como datos de facturación, no de efectivo
Los archivos de facturas de FreshBooks están organizados en torno a los registros de facturación. Según el informe, el CSV puede mostrar fecha de emisión, fecha de vencimiento, fecha de pago, nombre del cliente, número de factura, estado, total, saldo y detalles del cobro. Esos campos son útiles, pero no convierten el archivo en un libro de caja.
Empieza por separar las filas de factura de las filas de cobro.
| Campo de FreshBooks | Cómo usarlo en el cruce |
|---|---|
| Número de factura | La referencia más sólida del lado de FreshBooks cuando los metadatos de Stripe la contienen |
| Nombre del cliente | Verificación secundaria cuando no existe un número de factura compartido |
| Fecha de factura | Contexto de facturación solamente; no es la fecha de cruce de efectivo |
| Fecha de pago | Fecha útil para cruzar con el momento del pago en Stripe |
| Total de la factura | Importe bruto esperado del cliente |
| Monto pagado | Importe a comparar con el valor del pago en Stripe |
| Saldo pendiente | Indica si la diferencia es un pago parcial |
| Estado | Mantiene las facturas borrador, impagadas y anuladas fuera del cruce de efectivo |
| Moneda | Obligatorio antes de comparar cualquier importe |
No compares todas las facturas del archivo contra Stripe. Filtra las facturas pagadas, parcialmente pagadas o relevantes para el período bajo revisión. Las facturas impagadas pertenecen a cuentas por cobrar. No tienen lugar en el cruce de pagos de Stripe, salvo que la pregunta sea si FreshBooks omitió un cobro.
Si el archivo de FreshBooks también se compara contra la actividad bancaria, el flujo adyacente es cruzar los CSV de facturas de FreshBooks con extractos bancarios mensuales. Para el cruce Stripe-FreshBooks, quédate un nivel antes: cobro de factura contra pago de Stripe.
Construye la clave de cruce con la mejor evidencia disponible
La mejor clave de cruce es un número de factura guardado en los metadatos de Stripe. Eso ocurre cuando el pago se creó desde el flujo de facturación o cuando el cliente pasó el número de factura a Stripe en la descripción, el descriptor de estado de cuenta o un campo de metadatos.
Cuando existe, úsala primero.
| Campo de Stripe | Campo de FreshBooks | Solidez del cruce |
|---|---|---|
metadata.invoice_number | Número de factura | Fuerte |
description que contiene el número de factura | Número de factura | Fuerte si el texto es consistente |
| Correo del cliente | Correo o contacto del cliente | Útil, no suficiente solo |
| Nombre del cliente | Nombre del cliente | Útil, débil con clientes repetidos |
| Monto | Monto pagado | Útil, débil cuando los montos se repiten |
| Fecha de creación | Fecha de pago | Útil dentro de una ventana de fechas |
| ID de pago o de cargo | Referencia de pago | Fuerte solo si FreshBooks lo almacena |
Si el número de factura no está en Stripe, construye una clave compuesta. Una clave compuesta combina campos que no son confiables solos pero que juntos sí lo son.
Usa este orden:
- Número de factura o referencia de pago, si están disponibles.
- Correo del cliente + monto + ventana de fechas.
- Nombre del cliente + monto + ventana de fechas.
- Monto + ventana de fechas + fragmento de descripción.
- Cruce solo por monto, únicamente como lista provisional de candidatos.
El cruce solo por monto no es una conciliación terminada. Dos clientes pueden pagar 1,500.00 en la misma semana. Un mismo cliente puede pagar dos facturas por el mismo importe. Una factura de consultoría recurrente puede repetirse cada mes. El monto acota el campo; no prueba el cruce.
La ventana de fechas también requiere disciplina. El timestamp created de Stripe es el momento en que ocurrió el evento de pago. La fecha de pago en FreshBooks puede ser cuando se marcó la factura como pagada. La fecha de la transferencia bancaria es posterior. Tratar las tres como si fueran la misma fecha genera excepciones falsas.
Para el cruce de cobros de facturas, permite una ventana pequeña entre la fecha de creación del pago en Stripe y la fecha de pago en FreshBooks. Para el trabajo de transferencia-banco, usa la fecha de la transferencia y la fecha de acreditación bancaria. Son dos pruebas distintas.
Normaliza los campos antes de confiar en cualquier búsqueda
El primer paso es hacer que los dos archivos sean comparables sin modificar los registros originales.
Crea una copia de trabajo o columnas auxiliares para:
| Campo auxiliar | Qué corrige |
|---|---|
| Número de factura normalizado | Elimina espacios, diferencias de mayúsculas, prefijos y puntuación |
| Nombre del cliente normalizado | Reduce diferencias de ortografía y mayúsculas |
| Correo del cliente | Da un identificador más estable que el nombre del cliente |
| Monto con signo | Alinea los signos de débito y crédito entre Stripe y FreshBooks |
| Base del monto | Distingue pago bruto, comisión, reembolso, pago parcial o efectivo neto de transferencia |
| Ventana de fechas | Evita discrepancias falsas por desfases de uno o dos días |
| Moneda | Bloquea cruces accidentales entre monedas distintas |
Para Número de factura normalizado, elimina el prefijo para que «INV-1048» en FreshBooks y «Invoice 1048» en una descripción de Stripe queden como el mismo identificador:
=ESPACIOS(SUSTITUIR(MAYUSC(A2),"INV-",""))La columna A es el campo de número de factura o descripción de Stripe. Para Monto con signo, convierte el texto y elimina la dirección del signo:
=ABS(VALOR(B2))La columna B es el campo de monto. VALOR convierte montos en texto; ABS normaliza el signo cuando Stripe muestra cargos positivos y FreshBooks puede mostrar créditos negativos.
Aquí es donde la búsqueda normal en una hoja de cálculo falla. Asume que la clave de cruce ya existe. En este flujo, generalmente no existe. El trabajo no es «encontrar la columna en común». Es «acumular suficiente evidencia para demostrar que dos filas representan el mismo pago».
Por ejemplo:
| Campo de Stripe | Valor |
|---|---|
| charge_id | ch_3R81K2 |
| created | 2026-05-08 22:41:19 UTC |
| customer_email | ops@exampleclient.com |
| description | Payment for Invoice 1048 |
| amount | 2500.00 |
| fee | -76.50 |
| net | 2423.50 |
FreshBooks puede mostrar:
| Campo de FreshBooks | Valor |
|---|---|
| invoice number | INV-1048 |
| client | Example Client LLC |
| paid date | 2026-05-09 |
| invoice total | 2500.00 |
| paid amount | 2500.00 |
| status | Paid |
Esas filas coinciden por número de factura e importe bruto. No coinciden por fecha exacta ni por monto neto. Si comparas el neto de Stripe con el monto pagado de FreshBooks, creas una diferencia falsa de 76.50. Esa diferencia es la comisión de Stripe, no un cobro de factura faltante.
Separa el cruce de facturas de la explicación de transferencias
Stripe agrega una segunda capa después del cobro de la factura: la liquidación. El pago puede coincidir perfectamente con la factura de FreshBooks mientras que el efectivo que llega al banco es menor o más tardío.
Mantén las capas separadas:
| Capa | Fuente de Stripe | Fuente de FreshBooks | Resultado esperado |
|---|---|---|---|
| Cobro de factura | Archivo de pagos o cargos | Facturas pagadas o registros de cobro | El importe bruto debe coincidir |
| Explicación de comisiones | Archivo de transacciones de saldo o comisiones | Revisión del registro de gastos | La comisión debe explicar la brecha bruto-neto |
| Reembolso o crédito | Archivo de reembolsos o transacción de saldo | Nota de crédito, reembolso o factura ajustada | La actividad negativa debe clasificarse |
| Efectivo de la transferencia | Informe de transferencias | Extracto bancario o cuenta de efectivo | La transferencia neta debe coincidir con el banco |
Si un cliente pagó una factura de 2,500.00 con tarjeta, FreshBooks puede mostrar una factura pagada por 2,500.00. Stripe puede mostrar:
| Categoría de Stripe | Monto |
|---|---|
| Pago bruto | 2,500.00 |
| Comisión de Stripe | -76.50 |
| Neto a transferir | 2,423.50 |
La factura de FreshBooks no está incompleta. El depósito bancario es neto de comisiones. Eso es una pregunta de conciliación de transferencia o bancaria. El cruce de la factura ya está resuelto.
Es la misma separación que al cruzar un CSV de transferencia de Stripe con el extracto bancario: primero confirma el pago o la transferencia que estás comparando, luego explica las transacciones dentro del movimiento de efectivo.
Trabaja las excepciones en el orden correcto
Una vez retiradas las coincidencias directas, las filas restantes necesitan etiquetas. No las dejes como «sin conciliar». Eso no le dice nada al cliente y no te da ningún rastro de auditoría para el mes siguiente.
Usa esta secuencia de excepciones:
Número de factura existe en FreshBooks pero no en Stripe.
Verifica si la factura se pagó fuera de Stripe, se marcó como pagada manualmente, se cobró por transferencia bancaria o proviene de otro procesador. Si la vía de pago no fue Stripe, retírala del cruce de Stripe y clasifícala por separado.
Pago de Stripe existe pero ninguna factura de FreshBooks coincide.
Verifica si el número de factura faltaba en los metadatos, si el nombre del cliente cambió, si el pago era un anticipo o si la factura se creó después del pago. Si no existe ningún registro en FreshBooks, es una excepción contable real.
Mismo cliente y mismo monto, fecha fuera de la ventana.
Revisa el desfase de UTC, ediciones manuales de la fecha de pago y cierres de fin de mes. Un desfase de un día suele ser timing. Una brecha de dos semanas necesita explicación.
Misma factura, monto diferente.
Busca pago parcial, pago en exceso, descuento, tratamiento fiscal, conversión de moneda o una comisión descontada incorrectamente. No fuerces que el total de la factura sea igual al monto pagado cuando FreshBooks todavía muestra un saldo pendiente.
Reembolso aparece en Stripe pero FreshBooks sigue mostrando la factura como pagada.
Verifica si se registró una nota de crédito o reembolso. Si no, el cruce de la factura está incompleto porque el pago fue revertido o reducido después.
Candidatos duplicados persisten después del cruce.
Usa primero el número de factura, luego el correo, luego la descripción, luego la secuencia de fechas. Si dos filas todavía no se pueden distinguir, déjalas abiertas como candidatos duplicados en lugar de elegir uno por intuición.
El resultado debe decirle al próximo revisor qué pasó:
| Estado | Significado | Acción |
|---|---|---|
| Conciliado | El pago de Stripe y la factura de FreshBooks coinciden en referencia e importe bruto | Sin acción |
| Diferencia de fecha | Mismo pago, fecha distinta dentro de la ventana esperada | Anotar el desfase |
| Explicación de comisión | El bruto de la factura coincide, el neto de Stripe es menor por la comisión | Registrar o verificar el tratamiento de la comisión |
| Pago parcial | El pago de Stripe cubre solo parte de la factura | Dejar el saldo abierto |
| Solo en FreshBooks | Factura pagada sin pago de Stripe | Verificar otra vía de pago o registro manual |
| Solo en Stripe | Pago de Stripe sin factura | Buscar la factura faltante o clasificar el cobro |
| Reembolso faltante | Reembolso de Stripe sin nota de crédito ni reembolso en FreshBooks | Registrar o investigar el reembolso |
Un consultor no necesita un libro de trabajo impecable en esta etapa. Necesita una respuesta defendible: qué facturas se conciliaron, qué pagos de Stripe no tienen factura, qué facturas pagadas de FreshBooks no pasaron por Stripe, y qué diferencias son de timing, comisiones, reembolsos o pagos parciales.
Un ejemplo práctico
Supón que el archivo de pagos de Stripe muestra:
| Pago de Stripe | Correo | Descripción | Creado | Bruto | Comisión | Neto |
|---|---|---|---|---|---|---|
ch_1001 | ops@northco.test | Invoice 1048 | 2026-05-08 | 2,500.00 | -76.50 | 2,423.50 |
ch_1002 | ap@northco.test | Invoice 1051 | 2026-05-10 | 1,200.00 | -37.20 | 1,162.80 |
ch_1003 | finance@eastco.test | Deposit | 2026-05-12 | 800.00 | -25.10 | 774.90 |
re_2001 | ops@northco.test | Refund INV-1048 | 2026-05-20 | -500.00 | 0.00 | -500.00 |
FreshBooks muestra:
| Factura | Cliente | Fecha de pago | Monto pagado | Saldo | Estado |
|---|---|---|---|---|---|
INV-1048 | North Co | 2026-05-09 | 2,500.00 | 0.00 | Paid |
INV-1051 | North Co | 2026-05-10 | 1,200.00 | 0.00 | Paid |
INV-1059 | East Co | 2026-05-12 | 1,600.00 | 800.00 | Partly paid |
Los cruces son:
| Factura de FreshBooks | Registro de Stripe | Resultado | Motivo |
|---|---|---|---|
INV-1048 | ch_1001 | Conciliado | Número de factura, cliente e importe bruto coinciden |
INV-1051 | ch_1002 | Conciliado | Número de factura e importe bruto coinciden |
INV-1059 | ch_1003 | Pago parcial | El pago de Stripe cubre 800.00; el saldo de FreshBooks sigue siendo 800.00 |
Reembolso INV-1048 | re_2001 | Revisar | Stripe muestra un reembolso posterior; FreshBooks necesita una nota de crédito o reembolso correspondiente |
Los montos netos no son iguales a los montos de las facturas porque hay comisiones de Stripe. Eso no afecta el cruce de facturas. Crea una segunda tarea: verificar que las comisiones se registraron y que la transferencia concuerda después con el banco.
El resumen final debe verse así:
| Categoría | Cantidad | Monto |
|---|---|---|
| Facturas pagadas conciliadas | 2 | 3,700.00 |
| Pagos parciales conciliados | 1 | 800.00 |
| Comisiones de Stripe a verificar | 3 | -138.80 |
| Reembolsos que requieren tratamiento en FreshBooks | 1 | -500.00 |
| Diferencia sin explicar | 0 | 0.00 |
Ese es un resultado de conciliación utilizable. Le dice al cliente que los registros de pago coinciden con las facturas, que una factura sigue parcialmente pagada, que las comisiones son una verificación de registro separada y que un reembolso necesita tratamiento en FreshBooks.
Usa el mismo proceso de verificación el mes siguiente
El proceso que dura no depende del formato de exportación de un cliente en particular. Es una secuencia:
- Identifica el tipo de archivo de Stripe.
- Identifica si el archivo de FreshBooks muestra facturas, cobros o ambos.
- Filtra FreshBooks a los registros pagados y parcialmente pagados.
- Normaliza números de factura, nombres de clientes, correos, fechas, monedas y signos.
- Cruza primero por número de factura o referencia de pago.
- Cruza después por correo, monto y ventana de fechas.
- Separa el cruce bruto de facturas de las comisiones de Stripe y el efectivo de las transferencias.
- Etiqueta cada excepción por causa.
- Produce un resumen que otro revisor pueda entender sin volver a abrir los dos archivos.
Así es como los consultores independientes concilian los pagos de Stripe con las facturas de FreshBooks sin depender de que la integración del cliente esté bien configurada. El cliente puede cambiar las columnas de su archivo. FreshBooks puede omitir el ID de Stripe. Stripe puede liquidar el pago dos días después. El proceso se mantiene porque prueba el evento de negocio, no una búsqueda frágil en una sola columna.
