Los metadatos que se han establecido en un objeto no se suelen copiar en los objetos asociados que se crean a la vez, y estos últimos tampoco suelen «heredar» esos metadatos. Por ejemplo, un objeto Balance Transaction no heredará los metadatos que se hubieran establecido en el objeto Charge que lo haya creado.
Hay algunas excepciones importantes: cuando se confirme un PaymentIntent, Stripe copiará sus metadatos y algunos otros campos en el objeto Charge que se haya creado. Sin embargo, se trata de un evento único y las posteriores actualizaciones que se hagan en los metadatos del PaymentIntent no actualizarán los del objeto Charge (deberá hacerse por separado).
Además, los metadatos de los objetos Line Item de una factura se copiarán de los metadatos del objeto Subscription al que pertenezca la factura en aquellos objetos Line Item que tengan el tipo «subscription».
También hay algunos objetos de Stripe que tienen parámetros específicos para establecer los metadatos de los objetos asociados. Estos son algunos ejemplos:
Para establecer los metadatos de un objeto Subscription que se haya creado para un objeto Checkout Session en el modo de suscripción, utiliza subscription_data.metadata. Cualquier actualización que se haga después en los metadatos debe hacerse en el objeto Subscription. También se pueden modificar las fases del objeto Subscription Schedule.
Se pueden utilizar objetos Subscription Schedule para actualizar los metadatos del objeto Subscription subyacente si se establece phases.metadata.[0] Como el objeto Schedule cambia cada fase, Stripe actualizará los metadatos del objeto Subscription según el contenido de phases.metadata. Puedes encontrar más información sobre su funcionamiento en nuestra guía de la documentación.